mirror of
				https://code.forgejo.org/actions/checkout.git
				synced 2025-11-03 22:29:11 +00:00 
			
		
		
		
	Merge 0865c4bfce into 8edcb1bdb4
				
					
				
			This commit is contained in:
		
						commit
						0539876ac1
					
				
					 5 changed files with 47 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -47,6 +47,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…
	
	Add table
		Add a link
		
	
		Reference in a new issue