diff --git a/lib/manager/github-actions/__fixtures__/workflow_3.yml b/lib/manager/github-actions/__fixtures__/workflow_3.yml new file mode 100644 index 0000000000000000000000000000000000000000..781bec6781fb0c6c6e81e9632831f56004c176ae --- /dev/null +++ b/lib/manager/github-actions/__fixtures__/workflow_3.yml @@ -0,0 +1,9 @@ +jobs: + automerge: + runs-on: ubuntu-latest + steps: + - name: Auto merge + uses: "pascalgn/automerge-action@v0.13.1" + env: + GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + MERGE_METHOD: squash diff --git a/lib/manager/github-actions/__snapshots__/extract.spec.ts.snap b/lib/manager/github-actions/__snapshots__/extract.spec.ts.snap index 412c11f3e339de8b9877abcfbf1ce4b6e2607e2a..42abf7b049a52a2dda5d2fd92617ed6ad501506c 100644 --- a/lib/manager/github-actions/__snapshots__/extract.spec.ts.snap +++ b/lib/manager/github-actions/__snapshots__/extract.spec.ts.snap @@ -136,3 +136,18 @@ Array [ }, ] `; + +exports[`manager/github-actions/extract extractPackageFile() extracts tag line with double quotes 1`] = ` +Array [ + Object { + "autoReplaceStringTemplate": "{{depName}}@{{#if newDigest}}{{newDigest}}{{#if newValue}} # tag={{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}{{/unless}}", + "commitMessageTopic": "{{{depName}}} action", + "currentValue": "v0.13.1", + "datasource": "github-tags", + "depName": "pascalgn/automerge-action", + "depType": "action", + "replaceString": "\\"pascalgn/automerge-action@v0.13.1\\"", + "versioning": "docker", + }, +] +`; diff --git a/lib/manager/github-actions/extract.spec.ts b/lib/manager/github-actions/extract.spec.ts index cf3ec22966c1cb790da48e6776494e7dabbc7bb6..23a5511b3415d20b6600b17650eff62ae341d2a3 100644 --- a/lib/manager/github-actions/extract.spec.ts +++ b/lib/manager/github-actions/extract.spec.ts @@ -18,5 +18,18 @@ describe('manager/github-actions/extract', () => { res.deps.filter((d) => d.datasource === 'github-tags') ).toHaveLength(8); }); + it('extracts tag line with double quotes', () => { + const res = extractPackageFile(Fixtures.get('workflow_3.yml')); + expect(res.deps).toMatchSnapshot([ + { + currentValue: 'v0.13.1', + datasource: 'github-tags', + depName: 'pascalgn/automerge-action', + depType: 'action', + replaceString: '"pascalgn/automerge-action@v0.13.1"', + versioning: 'docker', + }, + ]); + }); }); }); diff --git a/lib/manager/github-actions/extract.ts b/lib/manager/github-actions/extract.ts index c322c1cb5dfe5b5c565474df5185f25c7920b6db..7e69c3416ef8cdf99ecb702e95c5f2de96a6e433 100644 --- a/lib/manager/github-actions/extract.ts +++ b/lib/manager/github-actions/extract.ts @@ -7,7 +7,7 @@ import type { PackageDependency, PackageFile } from '../types'; const dockerRe = regEx(/^\s+uses: docker:\/\/([^"]+)\s*$/); const actionRe = regEx( - /^\s+-?\s+?uses: (?<replaceString>(?<depName>[\w-]+\/[\w-]+)(?<path>\/.*)?@(?<currentValue>.+?)\s*(?:#\s+(?:renovate:\s+)?tag=(?<tag>.+?))?)\s*?$/ + /^\s+-?\s+?uses: (?<replaceString>['"]?(?<depName>[\w-]+\/[\w-]+)(?<path>\/.*)?@(?<currentValue>.+?)\s*['"]?(?:#\s+(?:renovate:\s+)?tag=(?<tag>.+?))?)\s*?$/ ); // SHA1 or SHA256, see https://github.blog/2020-10-19-git-2-29-released/