mirror of
				https://github.com/actions/checkout.git
				synced 2025-11-03 15:28:08 +08:00 
			
		
		
		
	Compare commits
	
		
			8 Commits
		
	
	
		
			v4.2.0
			...
			a222d11a61
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					a222d11a61 | ||
| 
						 | 
					11bd71901b | ||
| 
						 | 
					e3d2460bbb | ||
| 
						 | 
					163217dfcd | ||
| 
						 | 
					68a03db899 | ||
| 
						 | 
					eef61447b9 | ||
| 
						 | 
					6b42224f41 | ||
| 
						 | 
					de5a000abf | 
							
								
								
									
										20
									
								
								.github/workflows/publish-immutable-actions.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								.github/workflows/publish-immutable-actions.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					name: 'Publish Immutable Action Version'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					on:
 | 
				
			||||||
 | 
					  release:
 | 
				
			||||||
 | 
					    types: [published]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  publish:
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    permissions:
 | 
				
			||||||
 | 
					      contents: read
 | 
				
			||||||
 | 
					      id-token: write
 | 
				
			||||||
 | 
					      packages: write
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - name: Checking out
 | 
				
			||||||
 | 
					        uses: actions/checkout@v4
 | 
				
			||||||
 | 
					      - name: Publish
 | 
				
			||||||
 | 
					        id: publish
 | 
				
			||||||
 | 
					        uses: actions/publish-immutable-action@0.0.3
 | 
				
			||||||
@@ -1,5 +1,12 @@
 | 
				
			|||||||
# Changelog
 | 
					# Changelog
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## v4.2.2
 | 
				
			||||||
 | 
					* `url-helper.ts` now leverages well-known environment variables by @jww3 in https://github.com/actions/checkout/pull/1941
 | 
				
			||||||
 | 
					* Expand unit test coverage for `isGhes` by @jww3 in https://github.com/actions/checkout/pull/1946
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## v4.2.1
 | 
				
			||||||
 | 
					* Check out other refs/* by commit if provided, fall back to ref by @orhantoy in https://github.com/actions/checkout/pull/1924
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## v4.2.0
 | 
					## v4.2.0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Add Ref and Commit outputs by @lucacome in https://github.com/actions/checkout/pull/1180
 | 
					* Add Ref and Commit outputs by @lucacome in https://github.com/actions/checkout/pull/1180
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								README.md
									
									
									
									
									
								
							@@ -126,6 +126,11 @@ Please refer to the [release page](https://github.com/actions/checkout/releases/
 | 
				
			|||||||
    # running from unless specified. Example URLs are https://github.com or
 | 
					    # running from unless specified. Example URLs are https://github.com or
 | 
				
			||||||
    # https://my-ghes-server.example.com
 | 
					    # https://my-ghes-server.example.com
 | 
				
			||||||
    github-server-url: ''
 | 
					    github-server-url: ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Use the given object format when creating local repository.  Specifically, use
 | 
				
			||||||
 | 
					    # 'sha256' to checkout a SHA-256 repository.
 | 
				
			||||||
 | 
					    # Defualt: null
 | 
				
			||||||
 | 
					    object-format: ''
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
<!-- end usage -->
 | 
					<!-- end usage -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -143,6 +148,7 @@ Please refer to the [release page](https://github.com/actions/checkout/releases/
 | 
				
			|||||||
- [Checkout pull request HEAD commit instead of merge commit](#Checkout-pull-request-HEAD-commit-instead-of-merge-commit)
 | 
					- [Checkout pull request HEAD commit instead of merge commit](#Checkout-pull-request-HEAD-commit-instead-of-merge-commit)
 | 
				
			||||||
- [Checkout pull request on closed event](#Checkout-pull-request-on-closed-event)
 | 
					- [Checkout pull request on closed event](#Checkout-pull-request-on-closed-event)
 | 
				
			||||||
- [Push a commit using the built-in token](#Push-a-commit-using-the-built-in-token)
 | 
					- [Push a commit using the built-in token](#Push-a-commit-using-the-built-in-token)
 | 
				
			||||||
 | 
					- [Checkout SHA-256 repository](#checkout-sha-256-repository)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Fetch only the root files
 | 
					## Fetch only the root files
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -288,6 +294,14 @@ jobs:
 | 
				
			|||||||
```
 | 
					```
 | 
				
			||||||
*NOTE:* The user email is `{user.id}+{user.login}@users.noreply.github.com`. See users API: https://api.github.com/users/github-actions%5Bbot%5D
 | 
					*NOTE:* The user email is `{user.id}+{user.login}@users.noreply.github.com`. See users API: https://api.github.com/users/github-actions%5Bbot%5D
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Checkout SHA-256 repository
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					- uses: actions/checkout@v4
 | 
				
			||||||
 | 
					  with:
 | 
				
			||||||
 | 
					    object-format: sha256
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# License
 | 
					# License
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The scripts and documentation in this project are released under the [MIT License](LICENSE)
 | 
					The scripts and documentation in this project are released under the [MIT License](LICENSE)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -824,7 +824,8 @@ async function setup(testName: string): Promise<void> {
 | 
				
			|||||||
    sshUser: '',
 | 
					    sshUser: '',
 | 
				
			||||||
    workflowOrganizationId: 123456,
 | 
					    workflowOrganizationId: 123456,
 | 
				
			||||||
    setSafeDirectory: true,
 | 
					    setSafeDirectory: true,
 | 
				
			||||||
    githubServerUrl: githubServerUrl
 | 
					    githubServerUrl: githubServerUrl,
 | 
				
			||||||
 | 
					    objectFormat: undefined
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -375,4 +375,31 @@ describe('Test fetchDepth and fetchTags options', () => {
 | 
				
			|||||||
      expect.any(Object)
 | 
					      expect.any(Object)
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('should call execGit wiwth the correct arguments when sha256 is used', async () => {
 | 
				
			||||||
 | 
					    jest.spyOn(exec, 'exec').mockImplementation(mockExec)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const workingDirectory = 'test'
 | 
				
			||||||
 | 
					    const lfs = false
 | 
				
			||||||
 | 
					    const doSparseCheckout = false
 | 
				
			||||||
 | 
					    git = await commandManager.createCommandManager(
 | 
				
			||||||
 | 
					      workingDirectory,
 | 
				
			||||||
 | 
					      lfs,
 | 
				
			||||||
 | 
					      doSparseCheckout
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    await git.init({objectFormat: 'sha256'})
 | 
				
			||||||
 | 
					    // await git.init({objectFormat: undefined})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    expect(mockExec).toHaveBeenCalledWith(
 | 
				
			||||||
 | 
					      expect.any(String),
 | 
				
			||||||
 | 
					      [
 | 
				
			||||||
 | 
					        'init',
 | 
				
			||||||
 | 
					        '--object-format=sha256',
 | 
				
			||||||
 | 
					        'test'
 | 
				
			||||||
 | 
					      ],
 | 
				
			||||||
 | 
					      expect.any(Object)
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -77,6 +77,16 @@ describe('ref-helper tests', () => {
 | 
				
			|||||||
    expect(checkoutInfo.startPoint).toBeFalsy()
 | 
					    expect(checkoutInfo.startPoint).toBeFalsy()
 | 
				
			||||||
  })
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('getCheckoutInfo refs/ without commit', async () => {
 | 
				
			||||||
 | 
					    const checkoutInfo = await refHelper.getCheckoutInfo(
 | 
				
			||||||
 | 
					      git,
 | 
				
			||||||
 | 
					      'refs/non-standard-ref',
 | 
				
			||||||
 | 
					      ''
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    expect(checkoutInfo.ref).toBe('refs/non-standard-ref')
 | 
				
			||||||
 | 
					    expect(checkoutInfo.startPoint).toBeFalsy()
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  it('getCheckoutInfo unqualified branch only', async () => {
 | 
					  it('getCheckoutInfo unqualified branch only', async () => {
 | 
				
			||||||
    git.branchExists = jest.fn(async (remote: boolean, pattern: string) => {
 | 
					    git.branchExists = jest.fn(async (remote: boolean, pattern: string) => {
 | 
				
			||||||
      return true
 | 
					      return true
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										92
									
								
								__test__/url-helper.test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								__test__/url-helper.test.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,92 @@
 | 
				
			|||||||
 | 
					import * as urlHelper from '../src/url-helper'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe('getServerUrl tests', () => {
 | 
				
			||||||
 | 
					  it('basics', async () => {
 | 
				
			||||||
 | 
					    // Note that URL::toString will append a trailing / when passed just a domain name ...
 | 
				
			||||||
 | 
					    expect(urlHelper.getServerUrl().toString()).toBe('https://github.com/')
 | 
				
			||||||
 | 
					    expect(urlHelper.getServerUrl(' ').toString()).toBe('https://github.com/')
 | 
				
			||||||
 | 
					    expect(urlHelper.getServerUrl('   ').toString()).toBe('https://github.com/')
 | 
				
			||||||
 | 
					    expect(urlHelper.getServerUrl('http://contoso.com').toString()).toBe(
 | 
				
			||||||
 | 
					      'http://contoso.com/'
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    expect(urlHelper.getServerUrl('https://contoso.com').toString()).toBe(
 | 
				
			||||||
 | 
					      'https://contoso.com/'
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    expect(urlHelper.getServerUrl('https://contoso.com/').toString()).toBe(
 | 
				
			||||||
 | 
					      'https://contoso.com/'
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // ... but can't make that same assumption when passed an URL that includes some deeper path.
 | 
				
			||||||
 | 
					    expect(urlHelper.getServerUrl('https://contoso.com/a/b').toString()).toBe(
 | 
				
			||||||
 | 
					      'https://contoso.com/a/b'
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe('isGhes tests', () => {
 | 
				
			||||||
 | 
					  const pristineEnv = process.env
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  beforeEach(() => {
 | 
				
			||||||
 | 
					    jest.resetModules()
 | 
				
			||||||
 | 
					    process.env = {...pristineEnv}
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  afterAll(() => {
 | 
				
			||||||
 | 
					    process.env = pristineEnv
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('basics', async () => {
 | 
				
			||||||
 | 
					    delete process.env['GITHUB_SERVER_URL']
 | 
				
			||||||
 | 
					    expect(urlHelper.isGhes()).toBeFalsy()
 | 
				
			||||||
 | 
					    expect(urlHelper.isGhes('https://github.com')).toBeFalsy()
 | 
				
			||||||
 | 
					    expect(urlHelper.isGhes('https://contoso.ghe.com')).toBeFalsy()
 | 
				
			||||||
 | 
					    expect(urlHelper.isGhes('https://test.github.localhost')).toBeFalsy()
 | 
				
			||||||
 | 
					    expect(urlHelper.isGhes('https://src.onpremise.fabrikam.com')).toBeTruthy()
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('returns false when the GITHUB_SERVER_URL environment variable is not defined', async () => {
 | 
				
			||||||
 | 
					    delete process.env['GITHUB_SERVER_URL']
 | 
				
			||||||
 | 
					    expect(urlHelper.isGhes()).toBeFalsy()
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('returns false when the GITHUB_SERVER_URL environment variable is set to github.com', async () => {
 | 
				
			||||||
 | 
					    process.env['GITHUB_SERVER_URL'] = 'https://github.com'
 | 
				
			||||||
 | 
					    expect(urlHelper.isGhes()).toBeFalsy()
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('returns false when the GITHUB_SERVER_URL environment variable is set to a GitHub Enterprise Cloud-style URL', async () => {
 | 
				
			||||||
 | 
					    process.env['GITHUB_SERVER_URL'] = 'https://contoso.ghe.com'
 | 
				
			||||||
 | 
					    expect(urlHelper.isGhes()).toBeFalsy()
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('returns false when the GITHUB_SERVER_URL environment variable has a .localhost suffix', async () => {
 | 
				
			||||||
 | 
					    process.env['GITHUB_SERVER_URL'] = 'https://mock-github.localhost'
 | 
				
			||||||
 | 
					    expect(urlHelper.isGhes()).toBeFalsy()
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  it('returns true when the GITHUB_SERVER_URL environment variable is set to some other URL', async () => {
 | 
				
			||||||
 | 
					    process.env['GITHUB_SERVER_URL'] = 'https://src.onpremise.fabrikam.com'
 | 
				
			||||||
 | 
					    expect(urlHelper.isGhes()).toBeTruthy()
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					describe('getServerApiUrl tests', () => {
 | 
				
			||||||
 | 
					  it('basics', async () => {
 | 
				
			||||||
 | 
					    expect(urlHelper.getServerApiUrl()).toBe('https://api.github.com')
 | 
				
			||||||
 | 
					    expect(urlHelper.getServerApiUrl('https://github.com')).toBe(
 | 
				
			||||||
 | 
					      'https://api.github.com'
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    expect(urlHelper.getServerApiUrl('https://GitHub.com')).toBe(
 | 
				
			||||||
 | 
					      'https://api.github.com'
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    expect(urlHelper.getServerApiUrl('https://contoso.ghe.com')).toBe(
 | 
				
			||||||
 | 
					      'https://api.contoso.ghe.com'
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    expect(urlHelper.getServerApiUrl('https://fabrikam.GHE.COM')).toBe(
 | 
				
			||||||
 | 
					      'https://api.fabrikam.ghe.com'
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    expect(
 | 
				
			||||||
 | 
					      urlHelper.getServerApiUrl('https://src.onpremise.fabrikam.com')
 | 
				
			||||||
 | 
					    ).toBe('https://src.onpremise.fabrikam.com/api/v3')
 | 
				
			||||||
 | 
					  })
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
							
								
								
									
										147
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										147
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							@@ -30,9 +30,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
 | 
				
			|||||||
    return result;
 | 
					    return result;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
					Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
				
			||||||
exports.directoryExistsSync = directoryExistsSync;
 | 
					exports.fileExistsSync = exports.existsSync = exports.directoryExistsSync = void 0;
 | 
				
			||||||
exports.existsSync = existsSync;
 | 
					 | 
				
			||||||
exports.fileExistsSync = fileExistsSync;
 | 
					 | 
				
			||||||
const fs = __importStar(__nccwpck_require__(7147));
 | 
					const fs = __importStar(__nccwpck_require__(7147));
 | 
				
			||||||
function directoryExistsSync(path, required) {
 | 
					function directoryExistsSync(path, required) {
 | 
				
			||||||
    var _a;
 | 
					    var _a;
 | 
				
			||||||
@@ -60,6 +58,7 @@ function directoryExistsSync(path, required) {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    throw new Error(`Directory '${path}' does not exist`);
 | 
					    throw new Error(`Directory '${path}' does not exist`);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.directoryExistsSync = directoryExistsSync;
 | 
				
			||||||
function existsSync(path) {
 | 
					function existsSync(path) {
 | 
				
			||||||
    var _a;
 | 
					    var _a;
 | 
				
			||||||
    if (!path) {
 | 
					    if (!path) {
 | 
				
			||||||
@@ -76,6 +75,7 @@ function existsSync(path) {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.existsSync = existsSync;
 | 
				
			||||||
function fileExistsSync(path) {
 | 
					function fileExistsSync(path) {
 | 
				
			||||||
    var _a;
 | 
					    var _a;
 | 
				
			||||||
    if (!path) {
 | 
					    if (!path) {
 | 
				
			||||||
@@ -96,6 +96,7 @@ function fileExistsSync(path) {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    return false;
 | 
					    return false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.fileExistsSync = fileExistsSync;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/***/ }),
 | 
					/***/ }),
 | 
				
			||||||
@@ -138,7 +139,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
					Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
				
			||||||
exports.createAuthHelper = createAuthHelper;
 | 
					exports.createAuthHelper = void 0;
 | 
				
			||||||
const assert = __importStar(__nccwpck_require__(9491));
 | 
					const assert = __importStar(__nccwpck_require__(9491));
 | 
				
			||||||
const core = __importStar(__nccwpck_require__(2186));
 | 
					const core = __importStar(__nccwpck_require__(2186));
 | 
				
			||||||
const exec = __importStar(__nccwpck_require__(1514));
 | 
					const exec = __importStar(__nccwpck_require__(1514));
 | 
				
			||||||
@@ -155,6 +156,7 @@ const SSH_COMMAND_KEY = 'core.sshCommand';
 | 
				
			|||||||
function createAuthHelper(git, settings) {
 | 
					function createAuthHelper(git, settings) {
 | 
				
			||||||
    return new GitAuthHelper(git, settings);
 | 
					    return new GitAuthHelper(git, settings);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.createAuthHelper = createAuthHelper;
 | 
				
			||||||
class GitAuthHelper {
 | 
					class GitAuthHelper {
 | 
				
			||||||
    constructor(gitCommandManager, gitSourceSettings) {
 | 
					    constructor(gitCommandManager, gitSourceSettings) {
 | 
				
			||||||
        this.insteadOfValues = [];
 | 
					        this.insteadOfValues = [];
 | 
				
			||||||
@@ -473,8 +475,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
					Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
				
			||||||
exports.MinimumGitSparseCheckoutVersion = exports.MinimumGitVersion = void 0;
 | 
					exports.createCommandManager = exports.MinimumGitSparseCheckoutVersion = exports.MinimumGitVersion = void 0;
 | 
				
			||||||
exports.createCommandManager = createCommandManager;
 | 
					 | 
				
			||||||
const core = __importStar(__nccwpck_require__(2186));
 | 
					const core = __importStar(__nccwpck_require__(2186));
 | 
				
			||||||
const exec = __importStar(__nccwpck_require__(1514));
 | 
					const exec = __importStar(__nccwpck_require__(1514));
 | 
				
			||||||
const fs = __importStar(__nccwpck_require__(7147));
 | 
					const fs = __importStar(__nccwpck_require__(7147));
 | 
				
			||||||
@@ -495,6 +496,7 @@ function createCommandManager(workingDirectory, lfs, doSparseCheckout) {
 | 
				
			|||||||
        return yield GitCommandManager.createCommandManager(workingDirectory, lfs, doSparseCheckout);
 | 
					        return yield GitCommandManager.createCommandManager(workingDirectory, lfs, doSparseCheckout);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.createCommandManager = createCommandManager;
 | 
				
			||||||
class GitCommandManager {
 | 
					class GitCommandManager {
 | 
				
			||||||
    // Private constructor; use createCommandManager()
 | 
					    // Private constructor; use createCommandManager()
 | 
				
			||||||
    constructor() {
 | 
					    constructor() {
 | 
				
			||||||
@@ -709,9 +711,13 @@ class GitCommandManager {
 | 
				
			|||||||
    getWorkingDirectory() {
 | 
					    getWorkingDirectory() {
 | 
				
			||||||
        return this.workingDirectory;
 | 
					        return this.workingDirectory;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    init() {
 | 
					    init(options) {
 | 
				
			||||||
        return __awaiter(this, void 0, void 0, function* () {
 | 
					        return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
            yield this.execGit(['init', this.workingDirectory]);
 | 
					            yield this.execGit([
 | 
				
			||||||
 | 
					                'init',
 | 
				
			||||||
 | 
					                ...((options === null || options === void 0 ? void 0 : options.objectFormat) ? [`--object-format=${options.objectFormat}`] : []),
 | 
				
			||||||
 | 
					                this.workingDirectory
 | 
				
			||||||
 | 
					            ]);
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    isDetached() {
 | 
					    isDetached() {
 | 
				
			||||||
@@ -1018,7 +1024,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
					Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
				
			||||||
exports.prepareExistingDirectory = prepareExistingDirectory;
 | 
					exports.prepareExistingDirectory = void 0;
 | 
				
			||||||
const assert = __importStar(__nccwpck_require__(9491));
 | 
					const assert = __importStar(__nccwpck_require__(9491));
 | 
				
			||||||
const core = __importStar(__nccwpck_require__(2186));
 | 
					const core = __importStar(__nccwpck_require__(2186));
 | 
				
			||||||
const fs = __importStar(__nccwpck_require__(7147));
 | 
					const fs = __importStar(__nccwpck_require__(7147));
 | 
				
			||||||
@@ -1122,6 +1128,7 @@ function prepareExistingDirectory(git, repositoryPath, repositoryUrl, clean, ref
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.prepareExistingDirectory = prepareExistingDirectory;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/***/ }),
 | 
					/***/ }),
 | 
				
			||||||
@@ -1164,8 +1171,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
					Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
				
			||||||
exports.getSource = getSource;
 | 
					exports.cleanup = exports.getSource = void 0;
 | 
				
			||||||
exports.cleanup = cleanup;
 | 
					 | 
				
			||||||
const core = __importStar(__nccwpck_require__(2186));
 | 
					const core = __importStar(__nccwpck_require__(2186));
 | 
				
			||||||
const fsHelper = __importStar(__nccwpck_require__(7219));
 | 
					const fsHelper = __importStar(__nccwpck_require__(7219));
 | 
				
			||||||
const gitAuthHelper = __importStar(__nccwpck_require__(2565));
 | 
					const gitAuthHelper = __importStar(__nccwpck_require__(2565));
 | 
				
			||||||
@@ -1236,7 +1242,7 @@ function getSource(settings) {
 | 
				
			|||||||
            // Initialize the repository
 | 
					            // Initialize the repository
 | 
				
			||||||
            if (!fsHelper.directoryExistsSync(path.join(settings.repositoryPath, '.git'))) {
 | 
					            if (!fsHelper.directoryExistsSync(path.join(settings.repositoryPath, '.git'))) {
 | 
				
			||||||
                core.startGroup('Initializing the repository');
 | 
					                core.startGroup('Initializing the repository');
 | 
				
			||||||
                yield git.init();
 | 
					                yield git.init({ objectFormat: settings.objectFormat });
 | 
				
			||||||
                yield git.remoteAdd('origin', repositoryUrl);
 | 
					                yield git.remoteAdd('origin', repositoryUrl);
 | 
				
			||||||
                core.endGroup();
 | 
					                core.endGroup();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@@ -1371,6 +1377,7 @@ function getSource(settings) {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.getSource = getSource;
 | 
				
			||||||
function cleanup(repositoryPath) {
 | 
					function cleanup(repositoryPath) {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        // Repo exists?
 | 
					        // Repo exists?
 | 
				
			||||||
@@ -1406,6 +1413,7 @@ function cleanup(repositoryPath) {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.cleanup = cleanup;
 | 
				
			||||||
function getGitCommandManager(settings) {
 | 
					function getGitCommandManager(settings) {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        core.info(`Working directory is '${settings.repositoryPath}'`);
 | 
					        core.info(`Working directory is '${settings.repositoryPath}'`);
 | 
				
			||||||
@@ -1544,8 +1552,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
					Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
				
			||||||
exports.downloadRepository = downloadRepository;
 | 
					exports.getDefaultBranch = exports.downloadRepository = void 0;
 | 
				
			||||||
exports.getDefaultBranch = getDefaultBranch;
 | 
					 | 
				
			||||||
const assert = __importStar(__nccwpck_require__(9491));
 | 
					const assert = __importStar(__nccwpck_require__(9491));
 | 
				
			||||||
const core = __importStar(__nccwpck_require__(2186));
 | 
					const core = __importStar(__nccwpck_require__(2186));
 | 
				
			||||||
const fs = __importStar(__nccwpck_require__(7147));
 | 
					const fs = __importStar(__nccwpck_require__(7147));
 | 
				
			||||||
@@ -1609,6 +1616,7 @@ function downloadRepository(authToken, owner, repo, ref, commit, repositoryPath,
 | 
				
			|||||||
        yield io.rmRF(extractPath);
 | 
					        yield io.rmRF(extractPath);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.downloadRepository = downloadRepository;
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Looks up the default branch name
 | 
					 * Looks up the default branch name
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@@ -1647,6 +1655,7 @@ function getDefaultBranch(authToken, owner, repo, baseUrl) {
 | 
				
			|||||||
        }));
 | 
					        }));
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.getDefaultBranch = getDefaultBranch;
 | 
				
			||||||
function downloadArchive(authToken, owner, repo, ref, commit, baseUrl) {
 | 
					function downloadArchive(authToken, owner, repo, ref, commit, baseUrl) {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        const octokit = github.getOctokit(authToken, {
 | 
					        const octokit = github.getOctokit(authToken, {
 | 
				
			||||||
@@ -1705,7 +1714,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
					Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
				
			||||||
exports.getInputs = getInputs;
 | 
					exports.getInputs = void 0;
 | 
				
			||||||
const core = __importStar(__nccwpck_require__(2186));
 | 
					const core = __importStar(__nccwpck_require__(2186));
 | 
				
			||||||
const fsHelper = __importStar(__nccwpck_require__(7219));
 | 
					const fsHelper = __importStar(__nccwpck_require__(7219));
 | 
				
			||||||
const github = __importStar(__nccwpck_require__(5438));
 | 
					const github = __importStar(__nccwpck_require__(5438));
 | 
				
			||||||
@@ -1831,9 +1840,18 @@ function getInputs() {
 | 
				
			|||||||
        // Determine the GitHub URL that the repository is being hosted from
 | 
					        // Determine the GitHub URL that the repository is being hosted from
 | 
				
			||||||
        result.githubServerUrl = core.getInput('github-server-url');
 | 
					        result.githubServerUrl = core.getInput('github-server-url');
 | 
				
			||||||
        core.debug(`GitHub Host URL = ${result.githubServerUrl}`);
 | 
					        core.debug(`GitHub Host URL = ${result.githubServerUrl}`);
 | 
				
			||||||
 | 
					        // Object format
 | 
				
			||||||
 | 
					        const objectFormat = core.getInput('object-format');
 | 
				
			||||||
 | 
					        if (objectFormat) {
 | 
				
			||||||
 | 
					            if (objectFormat != 'sha1' && objectFormat != 'sha256') {
 | 
				
			||||||
 | 
					                throw Error(`Invalid object format '${objectFormat}'`);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            result.objectFormat = objectFormat;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        return result;
 | 
					        return result;
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.getInputs = getInputs;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/***/ }),
 | 
					/***/ }),
 | 
				
			||||||
@@ -1965,12 +1983,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
					Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
				
			||||||
exports.tagsRefSpec = void 0;
 | 
					exports.checkCommitInfo = exports.testRef = exports.getRefSpec = exports.getRefSpecForAllHistory = exports.getCheckoutInfo = exports.tagsRefSpec = void 0;
 | 
				
			||||||
exports.getCheckoutInfo = getCheckoutInfo;
 | 
					 | 
				
			||||||
exports.getRefSpecForAllHistory = getRefSpecForAllHistory;
 | 
					 | 
				
			||||||
exports.getRefSpec = getRefSpec;
 | 
					 | 
				
			||||||
exports.testRef = testRef;
 | 
					 | 
				
			||||||
exports.checkCommitInfo = checkCommitInfo;
 | 
					 | 
				
			||||||
const core = __importStar(__nccwpck_require__(2186));
 | 
					const core = __importStar(__nccwpck_require__(2186));
 | 
				
			||||||
const github = __importStar(__nccwpck_require__(5438));
 | 
					const github = __importStar(__nccwpck_require__(5438));
 | 
				
			||||||
const url_helper_1 = __nccwpck_require__(9437);
 | 
					const url_helper_1 = __nccwpck_require__(9437);
 | 
				
			||||||
@@ -2005,8 +2018,8 @@ function getCheckoutInfo(git, ref, commit) {
 | 
				
			|||||||
            result.ref = ref;
 | 
					            result.ref = ref;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        // refs/
 | 
					        // refs/
 | 
				
			||||||
        else if (upperRef.startsWith('REFS/') && commit) {
 | 
					        else if (upperRef.startsWith('REFS/')) {
 | 
				
			||||||
            result.ref = commit;
 | 
					            result.ref = commit ? commit : ref;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        // Unqualified ref, check for a matching branch or tag
 | 
					        // Unqualified ref, check for a matching branch or tag
 | 
				
			||||||
        else {
 | 
					        else {
 | 
				
			||||||
@@ -2024,6 +2037,7 @@ function getCheckoutInfo(git, ref, commit) {
 | 
				
			|||||||
        return result;
 | 
					        return result;
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.getCheckoutInfo = getCheckoutInfo;
 | 
				
			||||||
function getRefSpecForAllHistory(ref, commit) {
 | 
					function getRefSpecForAllHistory(ref, commit) {
 | 
				
			||||||
    const result = ['+refs/heads/*:refs/remotes/origin/*', exports.tagsRefSpec];
 | 
					    const result = ['+refs/heads/*:refs/remotes/origin/*', exports.tagsRefSpec];
 | 
				
			||||||
    if (ref && ref.toUpperCase().startsWith('REFS/PULL/')) {
 | 
					    if (ref && ref.toUpperCase().startsWith('REFS/PULL/')) {
 | 
				
			||||||
@@ -2032,6 +2046,7 @@ function getRefSpecForAllHistory(ref, commit) {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    return result;
 | 
					    return result;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.getRefSpecForAllHistory = getRefSpecForAllHistory;
 | 
				
			||||||
function getRefSpec(ref, commit) {
 | 
					function getRefSpec(ref, commit) {
 | 
				
			||||||
    if (!ref && !commit) {
 | 
					    if (!ref && !commit) {
 | 
				
			||||||
        throw new Error('Args ref and commit cannot both be empty');
 | 
					        throw new Error('Args ref and commit cannot both be empty');
 | 
				
			||||||
@@ -2080,6 +2095,7 @@ function getRefSpec(ref, commit) {
 | 
				
			|||||||
        return [`+${ref}:${ref}`];
 | 
					        return [`+${ref}:${ref}`];
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.getRefSpec = getRefSpec;
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Tests whether the initial fetch created the ref at the expected commit
 | 
					 * Tests whether the initial fetch created the ref at the expected commit
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@@ -2123,6 +2139,7 @@ function testRef(git, ref, commit) {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.testRef = testRef;
 | 
				
			||||||
function checkCommitInfo(token, commitInfo, repositoryOwner, repositoryName, ref, commit, baseUrl) {
 | 
					function checkCommitInfo(token, commitInfo, repositoryOwner, repositoryName, ref, commit, baseUrl) {
 | 
				
			||||||
    return __awaiter(this, void 0, void 0, function* () {
 | 
					    return __awaiter(this, void 0, void 0, function* () {
 | 
				
			||||||
        var _a;
 | 
					        var _a;
 | 
				
			||||||
@@ -2188,6 +2205,7 @@ function checkCommitInfo(token, commitInfo, repositoryOwner, repositoryName, ref
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.checkCommitInfo = checkCommitInfo;
 | 
				
			||||||
function fromPayload(path) {
 | 
					function fromPayload(path) {
 | 
				
			||||||
    return select(github.context.payload, path);
 | 
					    return select(github.context.payload, path);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -2212,12 +2230,13 @@ function select(obj, path) {
 | 
				
			|||||||
"use strict";
 | 
					"use strict";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
					Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
				
			||||||
exports.escape = escape;
 | 
					exports.escape = void 0;
 | 
				
			||||||
function escape(value) {
 | 
					function escape(value) {
 | 
				
			||||||
    return value.replace(/[^a-zA-Z0-9_]/g, x => {
 | 
					    return value.replace(/[^a-zA-Z0-9_]/g, x => {
 | 
				
			||||||
        return `\\${x}`;
 | 
					        return `\\${x}`;
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.escape = escape;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/***/ }),
 | 
					/***/ }),
 | 
				
			||||||
@@ -2260,8 +2279,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
					Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
				
			||||||
exports.RetryHelper = void 0;
 | 
					exports.execute = exports.RetryHelper = void 0;
 | 
				
			||||||
exports.execute = execute;
 | 
					 | 
				
			||||||
const core = __importStar(__nccwpck_require__(2186));
 | 
					const core = __importStar(__nccwpck_require__(2186));
 | 
				
			||||||
const defaultMaxAttempts = 3;
 | 
					const defaultMaxAttempts = 3;
 | 
				
			||||||
const defaultMinSeconds = 10;
 | 
					const defaultMinSeconds = 10;
 | 
				
			||||||
@@ -2313,6 +2331,7 @@ function execute(action) {
 | 
				
			|||||||
        return yield retryHelper.execute(action);
 | 
					        return yield retryHelper.execute(action);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.execute = execute;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/***/ }),
 | 
					/***/ }),
 | 
				
			||||||
@@ -2346,11 +2365,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
 | 
				
			|||||||
    return result;
 | 
					    return result;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
					Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
				
			||||||
exports.SshKnownHostsPath = exports.SshKeyPath = exports.PostSetSafeDirectory = exports.RepositoryPath = exports.IsPost = void 0;
 | 
					exports.setSafeDirectory = exports.setSshKnownHostsPath = exports.setSshKeyPath = exports.setRepositoryPath = exports.SshKnownHostsPath = exports.SshKeyPath = exports.PostSetSafeDirectory = exports.RepositoryPath = exports.IsPost = void 0;
 | 
				
			||||||
exports.setRepositoryPath = setRepositoryPath;
 | 
					 | 
				
			||||||
exports.setSshKeyPath = setSshKeyPath;
 | 
					 | 
				
			||||||
exports.setSshKnownHostsPath = setSshKnownHostsPath;
 | 
					 | 
				
			||||||
exports.setSafeDirectory = setSafeDirectory;
 | 
					 | 
				
			||||||
const core = __importStar(__nccwpck_require__(2186));
 | 
					const core = __importStar(__nccwpck_require__(2186));
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Indicates whether the POST action is running
 | 
					 * Indicates whether the POST action is running
 | 
				
			||||||
@@ -2378,24 +2393,28 @@ exports.SshKnownHostsPath = core.getState('sshKnownHostsPath');
 | 
				
			|||||||
function setRepositoryPath(repositoryPath) {
 | 
					function setRepositoryPath(repositoryPath) {
 | 
				
			||||||
    core.saveState('repositoryPath', repositoryPath);
 | 
					    core.saveState('repositoryPath', repositoryPath);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.setRepositoryPath = setRepositoryPath;
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Save the SSH key path so the POST action can retrieve the value.
 | 
					 * Save the SSH key path so the POST action can retrieve the value.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
function setSshKeyPath(sshKeyPath) {
 | 
					function setSshKeyPath(sshKeyPath) {
 | 
				
			||||||
    core.saveState('sshKeyPath', sshKeyPath);
 | 
					    core.saveState('sshKeyPath', sshKeyPath);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.setSshKeyPath = setSshKeyPath;
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Save the SSH known hosts path so the POST action can retrieve the value.
 | 
					 * Save the SSH known hosts path so the POST action can retrieve the value.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
function setSshKnownHostsPath(sshKnownHostsPath) {
 | 
					function setSshKnownHostsPath(sshKnownHostsPath) {
 | 
				
			||||||
    core.saveState('sshKnownHostsPath', sshKnownHostsPath);
 | 
					    core.saveState('sshKnownHostsPath', sshKnownHostsPath);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.setSshKnownHostsPath = setSshKnownHostsPath;
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Save the set-safe-directory input so the POST action can retrieve the value.
 | 
					 * Save the set-safe-directory input so the POST action can retrieve the value.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
function setSafeDirectory() {
 | 
					function setSafeDirectory() {
 | 
				
			||||||
    core.saveState('setSafeDirectory', 'true');
 | 
					    core.saveState('setSafeDirectory', 'true');
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.setSafeDirectory = setSafeDirectory;
 | 
				
			||||||
// Publish a variable so that when the POST action runs, it can determine it should run the cleanup logic.
 | 
					// Publish a variable so that when the POST action runs, it can determine it should run the cleanup logic.
 | 
				
			||||||
// This is necessary since we don't have a separate entry point.
 | 
					// This is necessary since we don't have a separate entry point.
 | 
				
			||||||
if (!exports.IsPost) {
 | 
					if (!exports.IsPost) {
 | 
				
			||||||
@@ -2434,10 +2453,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
 | 
				
			|||||||
    return result;
 | 
					    return result;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
					Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
				
			||||||
exports.getFetchUrl = getFetchUrl;
 | 
					exports.isGhes = exports.getServerApiUrl = exports.getServerUrl = exports.getFetchUrl = void 0;
 | 
				
			||||||
exports.getServerUrl = getServerUrl;
 | 
					 | 
				
			||||||
exports.getServerApiUrl = getServerApiUrl;
 | 
					 | 
				
			||||||
exports.isGhes = isGhes;
 | 
					 | 
				
			||||||
const assert = __importStar(__nccwpck_require__(9491));
 | 
					const assert = __importStar(__nccwpck_require__(9491));
 | 
				
			||||||
const url_1 = __nccwpck_require__(7310);
 | 
					const url_1 = __nccwpck_require__(7310);
 | 
				
			||||||
function getFetchUrl(settings) {
 | 
					function getFetchUrl(settings) {
 | 
				
			||||||
@@ -2453,24 +2469,56 @@ function getFetchUrl(settings) {
 | 
				
			|||||||
    // "origin" is SCHEME://HOSTNAME[:PORT]
 | 
					    // "origin" is SCHEME://HOSTNAME[:PORT]
 | 
				
			||||||
    return `${serviceUrl.origin}/${encodedOwner}/${encodedName}`;
 | 
					    return `${serviceUrl.origin}/${encodedOwner}/${encodedName}`;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.getFetchUrl = getFetchUrl;
 | 
				
			||||||
function getServerUrl(url) {
 | 
					function getServerUrl(url) {
 | 
				
			||||||
    let urlValue = url && url.trim().length > 0
 | 
					    let resolvedUrl = process.env['GITHUB_SERVER_URL'] || 'https://github.com';
 | 
				
			||||||
        ? url
 | 
					    if (hasContent(url, WhitespaceMode.Trim)) {
 | 
				
			||||||
        : process.env['GITHUB_SERVER_URL'] || 'https://github.com';
 | 
					        resolvedUrl = url;
 | 
				
			||||||
    return new url_1.URL(urlValue);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
function getServerApiUrl(url) {
 | 
					 | 
				
			||||||
    let apiUrl = 'https://api.github.com';
 | 
					 | 
				
			||||||
    if (isGhes(url)) {
 | 
					 | 
				
			||||||
        const serverUrl = getServerUrl(url);
 | 
					 | 
				
			||||||
        apiUrl = new url_1.URL(`${serverUrl.origin}/api/v3`).toString();
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    return apiUrl;
 | 
					    return new url_1.URL(resolvedUrl);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.getServerUrl = getServerUrl;
 | 
				
			||||||
 | 
					function getServerApiUrl(url) {
 | 
				
			||||||
 | 
					    if (hasContent(url, WhitespaceMode.Trim)) {
 | 
				
			||||||
 | 
					        let serverUrl = getServerUrl(url);
 | 
				
			||||||
 | 
					        if (isGhes(url)) {
 | 
				
			||||||
 | 
					            serverUrl.pathname = 'api/v3';
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        else {
 | 
				
			||||||
 | 
					            serverUrl.hostname = 'api.' + serverUrl.hostname;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return pruneSuffix(serverUrl.toString(), '/');
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return process.env['GITHUB_API_URL'] || 'https://api.github.com';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.getServerApiUrl = getServerApiUrl;
 | 
				
			||||||
function isGhes(url) {
 | 
					function isGhes(url) {
 | 
				
			||||||
    const ghUrl = getServerUrl(url);
 | 
					    const ghUrl = new url_1.URL(url || process.env['GITHUB_SERVER_URL'] || 'https://github.com');
 | 
				
			||||||
    return ghUrl.hostname.toUpperCase() !== 'GITHUB.COM';
 | 
					    const hostname = ghUrl.hostname.trimEnd().toUpperCase();
 | 
				
			||||||
 | 
					    const isGitHubHost = hostname === 'GITHUB.COM';
 | 
				
			||||||
 | 
					    const isGitHubEnterpriseCloudHost = hostname.endsWith('.GHE.COM');
 | 
				
			||||||
 | 
					    const isLocalHost = hostname.endsWith('.LOCALHOST');
 | 
				
			||||||
 | 
					    return !isGitHubHost && !isGitHubEnterpriseCloudHost && !isLocalHost;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					function pruneSuffix(text, suffix) {
 | 
				
			||||||
 | 
					    if (hasContent(suffix, WhitespaceMode.Preserve) && (text === null || text === void 0 ? void 0 : text.endsWith(suffix))) {
 | 
				
			||||||
 | 
					        return text.substring(0, text.length - suffix.length);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return text;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					var WhitespaceMode;
 | 
				
			||||||
 | 
					(function (WhitespaceMode) {
 | 
				
			||||||
 | 
					    WhitespaceMode[WhitespaceMode["Trim"] = 0] = "Trim";
 | 
				
			||||||
 | 
					    WhitespaceMode[WhitespaceMode["Preserve"] = 1] = "Preserve";
 | 
				
			||||||
 | 
					})(WhitespaceMode || (WhitespaceMode = {}));
 | 
				
			||||||
 | 
					function hasContent(text, whitespaceMode) {
 | 
				
			||||||
 | 
					    let refinedText = text !== null && text !== void 0 ? text : '';
 | 
				
			||||||
 | 
					    if (whitespaceMode == WhitespaceMode.Trim) {
 | 
				
			||||||
 | 
					        refinedText = refinedText.trim();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return refinedText.length > 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					exports.isGhes = isGhes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/***/ }),
 | 
					/***/ }),
 | 
				
			||||||
@@ -2513,7 +2561,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
					Object.defineProperty(exports, "__esModule", ({ value: true }));
 | 
				
			||||||
exports.getOrganizationId = getOrganizationId;
 | 
					exports.getOrganizationId = void 0;
 | 
				
			||||||
const core = __importStar(__nccwpck_require__(2186));
 | 
					const core = __importStar(__nccwpck_require__(2186));
 | 
				
			||||||
const fs = __importStar(__nccwpck_require__(7147));
 | 
					const fs = __importStar(__nccwpck_require__(7147));
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@@ -2542,6 +2590,7 @@ function getOrganizationId() {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					exports.getOrganizationId = getOrganizationId;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/***/ }),
 | 
					/***/ }),
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										4
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -1,12 +1,12 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "checkout",
 | 
					  "name": "checkout",
 | 
				
			||||||
  "version": "4.2.0",
 | 
					  "version": "4.2.2",
 | 
				
			||||||
  "lockfileVersion": 3,
 | 
					  "lockfileVersion": 3,
 | 
				
			||||||
  "requires": true,
 | 
					  "requires": true,
 | 
				
			||||||
  "packages": {
 | 
					  "packages": {
 | 
				
			||||||
    "": {
 | 
					    "": {
 | 
				
			||||||
      "name": "checkout",
 | 
					      "name": "checkout",
 | 
				
			||||||
      "version": "4.2.0",
 | 
					      "version": "4.2.2",
 | 
				
			||||||
      "license": "MIT",
 | 
					      "license": "MIT",
 | 
				
			||||||
      "dependencies": {
 | 
					      "dependencies": {
 | 
				
			||||||
        "@actions/core": "^1.10.1",
 | 
					        "@actions/core": "^1.10.1",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "checkout",
 | 
					  "name": "checkout",
 | 
				
			||||||
  "version": "4.2.0",
 | 
					  "version": "4.2.2",
 | 
				
			||||||
  "description": "checkout action",
 | 
					  "description": "checkout action",
 | 
				
			||||||
  "main": "lib/main.js",
 | 
					  "main": "lib/main.js",
 | 
				
			||||||
  "scripts": {
 | 
					  "scripts": {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -42,7 +42,7 @@ export interface IGitCommandManager {
 | 
				
			|||||||
  ): Promise<void>
 | 
					  ): Promise<void>
 | 
				
			||||||
  getDefaultBranch(repositoryUrl: string): Promise<string>
 | 
					  getDefaultBranch(repositoryUrl: string): Promise<string>
 | 
				
			||||||
  getWorkingDirectory(): string
 | 
					  getWorkingDirectory(): string
 | 
				
			||||||
  init(): Promise<void>
 | 
					  init(options?: { objectFormat?: string }): Promise<void>
 | 
				
			||||||
  isDetached(): Promise<boolean>
 | 
					  isDetached(): Promise<boolean>
 | 
				
			||||||
  lfsFetch(ref: string): Promise<void>
 | 
					  lfsFetch(ref: string): Promise<void>
 | 
				
			||||||
  lfsInstall(): Promise<void>
 | 
					  lfsInstall(): Promise<void>
 | 
				
			||||||
@@ -327,8 +327,12 @@ class GitCommandManager {
 | 
				
			|||||||
    return this.workingDirectory
 | 
					    return this.workingDirectory
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  async init(): Promise<void> {
 | 
					  async init(options?: { objectFormat?: string }): Promise<void> {
 | 
				
			||||||
    await this.execGit(['init', this.workingDirectory])
 | 
					    await this.execGit([
 | 
				
			||||||
 | 
					      'init',
 | 
				
			||||||
 | 
					      ...(options?.objectFormat ? [`--object-format=${options.objectFormat}`] : []),
 | 
				
			||||||
 | 
					      this.workingDirectory
 | 
				
			||||||
 | 
					    ])
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  async isDetached(): Promise<boolean> {
 | 
					  async isDetached(): Promise<boolean> {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -110,7 +110,7 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
 | 
				
			|||||||
      !fsHelper.directoryExistsSync(path.join(settings.repositoryPath, '.git'))
 | 
					      !fsHelper.directoryExistsSync(path.join(settings.repositoryPath, '.git'))
 | 
				
			||||||
    ) {
 | 
					    ) {
 | 
				
			||||||
      core.startGroup('Initializing the repository')
 | 
					      core.startGroup('Initializing the repository')
 | 
				
			||||||
      await git.init()
 | 
					      await git.init({ objectFormat: settings.objectFormat })
 | 
				
			||||||
      await git.remoteAdd('origin', repositoryUrl)
 | 
					      await git.remoteAdd('origin', repositoryUrl)
 | 
				
			||||||
      core.endGroup()
 | 
					      core.endGroup()
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -118,4 +118,9 @@ export interface IGitSourceSettings {
 | 
				
			|||||||
   * User override on the GitHub Server/Host URL that hosts the repository to be cloned
 | 
					   * User override on the GitHub Server/Host URL that hosts the repository to be cloned
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
  githubServerUrl: string | undefined
 | 
					  githubServerUrl: string | undefined
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Object format used for the repo, if it is not default
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  objectFormat: 'sha1' | 'sha256' | undefined
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -161,5 +161,14 @@ export async function getInputs(): Promise<IGitSourceSettings> {
 | 
				
			|||||||
  result.githubServerUrl = core.getInput('github-server-url')
 | 
					  result.githubServerUrl = core.getInput('github-server-url')
 | 
				
			||||||
  core.debug(`GitHub Host URL = ${result.githubServerUrl}`)
 | 
					  core.debug(`GitHub Host URL = ${result.githubServerUrl}`)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // Object format
 | 
				
			||||||
 | 
					  const objectFormat = core.getInput('object-format')
 | 
				
			||||||
 | 
					  if (objectFormat) {
 | 
				
			||||||
 | 
					    if (objectFormat != 'sha1' && objectFormat != 'sha256') {
 | 
				
			||||||
 | 
					      throw Error(`Invalid object format '${objectFormat}'`)
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    result.objectFormat = objectFormat
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return result
 | 
					  return result
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,8 +46,8 @@ export async function getCheckoutInfo(
 | 
				
			|||||||
    result.ref = ref
 | 
					    result.ref = ref
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  // refs/
 | 
					  // refs/
 | 
				
			||||||
  else if (upperRef.startsWith('REFS/') && commit) {
 | 
					  else if (upperRef.startsWith('REFS/')) {
 | 
				
			||||||
    result.ref = commit
 | 
					    result.ref = commit ? commit : ref
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  // Unqualified ref, check for a matching branch or tag
 | 
					  // Unqualified ref, check for a matching branch or tag
 | 
				
			||||||
  else {
 | 
					  else {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,26 +21,61 @@ export function getFetchUrl(settings: IGitSourceSettings): string {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function getServerUrl(url?: string): URL {
 | 
					export function getServerUrl(url?: string): URL {
 | 
				
			||||||
  let urlValue =
 | 
					  let resolvedUrl = process.env['GITHUB_SERVER_URL'] || 'https://github.com'
 | 
				
			||||||
    url && url.trim().length > 0
 | 
					  if (hasContent(url, WhitespaceMode.Trim)) {
 | 
				
			||||||
      ? url
 | 
					    resolvedUrl = url!
 | 
				
			||||||
      : process.env['GITHUB_SERVER_URL'] || 'https://github.com'
 | 
					  }
 | 
				
			||||||
  return new URL(urlValue)
 | 
					
 | 
				
			||||||
 | 
					  return new URL(resolvedUrl)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function getServerApiUrl(url?: string): string {
 | 
					export function getServerApiUrl(url?: string): string {
 | 
				
			||||||
  let apiUrl = 'https://api.github.com'
 | 
					  if (hasContent(url, WhitespaceMode.Trim)) {
 | 
				
			||||||
 | 
					    let serverUrl = getServerUrl(url)
 | 
				
			||||||
 | 
					    if (isGhes(url)) {
 | 
				
			||||||
 | 
					      serverUrl.pathname = 'api/v3'
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      serverUrl.hostname = 'api.' + serverUrl.hostname
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (isGhes(url)) {
 | 
					    return pruneSuffix(serverUrl.toString(), '/')
 | 
				
			||||||
    const serverUrl = getServerUrl(url)
 | 
					 | 
				
			||||||
    apiUrl = new URL(`${serverUrl.origin}/api/v3`).toString()
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return apiUrl
 | 
					  return process.env['GITHUB_API_URL'] || 'https://api.github.com'
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function isGhes(url?: string): boolean {
 | 
					export function isGhes(url?: string): boolean {
 | 
				
			||||||
  const ghUrl = getServerUrl(url)
 | 
					  const ghUrl = new URL(
 | 
				
			||||||
 | 
					    url || process.env['GITHUB_SERVER_URL'] || 'https://github.com'
 | 
				
			||||||
 | 
					  )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return ghUrl.hostname.toUpperCase() !== 'GITHUB.COM'
 | 
					  const hostname = ghUrl.hostname.trimEnd().toUpperCase()
 | 
				
			||||||
 | 
					  const isGitHubHost = hostname === 'GITHUB.COM'
 | 
				
			||||||
 | 
					  const isGitHubEnterpriseCloudHost = hostname.endsWith('.GHE.COM')
 | 
				
			||||||
 | 
					  const isLocalHost = hostname.endsWith('.LOCALHOST')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return !isGitHubHost && !isGitHubEnterpriseCloudHost && !isLocalHost
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function pruneSuffix(text: string, suffix: string) {
 | 
				
			||||||
 | 
					  if (hasContent(suffix, WhitespaceMode.Preserve) && text?.endsWith(suffix)) {
 | 
				
			||||||
 | 
					    return text.substring(0, text.length - suffix.length)
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return text
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum WhitespaceMode {
 | 
				
			||||||
 | 
					  Trim,
 | 
				
			||||||
 | 
					  Preserve
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function hasContent(
 | 
				
			||||||
 | 
					  text: string | undefined,
 | 
				
			||||||
 | 
					  whitespaceMode: WhitespaceMode
 | 
				
			||||||
 | 
					): boolean {
 | 
				
			||||||
 | 
					  let refinedText = text ?? ''
 | 
				
			||||||
 | 
					  if (whitespaceMode == WhitespaceMode.Trim) {
 | 
				
			||||||
 | 
					    refinedText = refinedText.trim()
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return refinedText.length > 0
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user