diff --git a/__test__/input-helper.test.ts b/__test__/input-helper.test.ts index ecd3cd1cc..778c6ebc3 100644 --- a/__test__/input-helper.test.ts +++ b/__test__/input-helper.test.ts @@ -75,6 +75,20 @@ describe('input-helper tests', () => { expect(settings.repositoryPath).toBe(gitHubWorkspace) }) + it('qualifies ref', () => { + let originalContext = mockGitHub.context + try { + mockGitHub.context = {...originalContext} // Shallow clone + mockGitHub.context.ref = 'some-unqualified-ref' + const settings: ISourceSettings = inputHelper.getInputs() + expect(settings).toBeTruthy() + expect(settings.commit).toBe('1234567890123456789012345678901234567890') + expect(settings.ref).toBe('refs/heads/some-unqualified-ref') + } finally { + mockGitHub.context = originalContext + } + }) + it('requires qualified repo', () => { inputs.repository = 'some-unqualified-repo' assert.throws(() => { diff --git a/dist/index.js b/dist/index.js index 19191939c..c58ef35e3 100644 --- a/dist/index.js +++ b/dist/index.js @@ -12757,6 +12757,11 @@ function getInputs() { if (isWorkflowRepository) { result.ref = github.context.ref; result.commit = github.context.sha; + // Some events have an unqualifed ref. For example when a PR is merged (pull_request closed event), + // the ref is unqualifed like "master" instead of "refs/heads/master". + if (result.commit && result.ref && !result.ref.startsWith('refs/')) { + result.ref = `refs/heads/${result.ref}`; + } } if (!result.ref && !result.commit) { result.ref = 'refs/heads/master'; diff --git a/src/input-helper.ts b/src/input-helper.ts index 56b58f2ab..54339dab8 100644 --- a/src/input-helper.ts +++ b/src/input-helper.ts @@ -61,6 +61,12 @@ export function getInputs(): ISourceSettings { if (isWorkflowRepository) { result.ref = github.context.ref result.commit = github.context.sha + + // Some events have an unqualifed ref. For example when a PR is merged (pull_request closed event), + // the ref is unqualifed like "master" instead of "refs/heads/master". + if (result.commit && result.ref && !result.ref.startsWith('refs/')) { + result.ref = `refs/heads/${result.ref}` + } } if (!result.ref && !result.commit) {