mirror of
https://github.com/actions/checkout.git
synced 2024-11-13 23:50:24 +00:00
Merge 0865c4bfce
into 6d193bf280
This commit is contained in:
commit
9e95ff66fe
@ -29,6 +29,11 @@ Please refer to the [release page](https://github.com/actions/checkout/releases/
|
||||
# Otherwise, uses the default branch.
|
||||
ref: ''
|
||||
|
||||
# The commit SHA to checkout. Used when ref is not specified or is ambiguous. This
|
||||
# can be used as a replacement for ref, or alongside it to checkout a specific
|
||||
# commit of the ref.
|
||||
commit: ''
|
||||
|
||||
# Personal access token (PAT) used to fetch the repository. The PAT is configured
|
||||
# with the local git config, which enables your scripts to run authenticated git
|
||||
# commands. The post-job step removes the PAT.
|
||||
|
@ -144,4 +144,30 @@ describe('input-helper tests', () => {
|
||||
const settings: IGitSourceSettings = await inputHelper.getInputs()
|
||||
expect(settings.workflowOrganizationId).toBe(123456)
|
||||
})
|
||||
|
||||
it('accepts ref and commit', async () => {
|
||||
inputs.ref = 'refs/pull/123/merge'
|
||||
inputs.commit = '0123456789012345678901234567890123456789'
|
||||
const settings: IGitSourceSettings = await inputHelper.getInputs()
|
||||
expect(settings).toBeTruthy()
|
||||
expect(settings.ref).toBeTruthy()
|
||||
expect(settings.ref).toStrictEqual('refs/pull/123/merge')
|
||||
expect(settings.commit).toBeTruthy()
|
||||
expect(settings.commit).toStrictEqual(
|
||||
'0123456789012345678901234567890123456789'
|
||||
)
|
||||
})
|
||||
|
||||
it('ref fallbacks to commit if ref is empty but commit is specified', async () => {
|
||||
inputs.ref = ''
|
||||
inputs.commit = '0123456789012345678901234567890123456789'
|
||||
const settings: IGitSourceSettings = await inputHelper.getInputs()
|
||||
expect(settings).toBeTruthy()
|
||||
expect(settings.ref).toBeFalsy()
|
||||
expect(settings.ref).toStrictEqual('')
|
||||
expect(settings.commit).toBeTruthy()
|
||||
expect(settings.commit).toStrictEqual(
|
||||
'0123456789012345678901234567890123456789'
|
||||
)
|
||||
})
|
||||
})
|
||||
|
@ -9,6 +9,11 @@ inputs:
|
||||
The branch, tag or SHA to checkout. When checking out the repository that
|
||||
triggered a workflow, this defaults to the reference or SHA for that
|
||||
event. Otherwise, uses the default branch.
|
||||
commit:
|
||||
description: >
|
||||
The commit SHA to checkout. Used when ref is not specified or is ambiguous.
|
||||
This can be used as a replacement for ref, or alongside it to checkout a
|
||||
specific commit of the ref.
|
||||
token:
|
||||
description: >
|
||||
Personal access token (PAT) used to fetch the repository. The PAT is configured
|
||||
|
6
dist/index.js
vendored
6
dist/index.js
vendored
@ -1744,7 +1744,11 @@ function getInputs() {
|
||||
const isWorkflowRepository = qualifiedRepository.toUpperCase() ===
|
||||
`${github.context.repo.owner}/${github.context.repo.repo}`.toUpperCase();
|
||||
// Source branch, source version
|
||||
result.ref = core.getInput('ref');
|
||||
result.commit = core.getInput('commit');
|
||||
if (result.commit && !result.commit.match(/^[0-9a-fA-F]{40}$/)) {
|
||||
throw new Error(`The commit SHA '${result.commit}' is not a valid SHA.`);
|
||||
}
|
||||
result.ref = core.getInput('ref') || result.commit;
|
||||
if (!result.ref) {
|
||||
if (isWorkflowRepository) {
|
||||
result.ref = github.context.ref;
|
||||
|
@ -57,7 +57,12 @@ export async function getInputs(): Promise<IGitSourceSettings> {
|
||||
`${github.context.repo.owner}/${github.context.repo.repo}`.toUpperCase()
|
||||
|
||||
// Source branch, source version
|
||||
result.ref = core.getInput('ref')
|
||||
result.commit = core.getInput('commit')
|
||||
if (result.commit && !result.commit.match(/^[0-9a-fA-F]{40}$/)) {
|
||||
throw new Error(`The commit SHA '${result.commit}' is not a valid SHA.`)
|
||||
}
|
||||
|
||||
result.ref = core.getInput('ref') || result.commit
|
||||
if (!result.ref) {
|
||||
if (isWorkflowRepository) {
|
||||
result.ref = github.context.ref
|
||||
|
Loading…
Reference in New Issue
Block a user