mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-31 13:58:09 +08:00 
			
		
		
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			a222d11a61
			...
			dependabot
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | a6b6acc11a | 
							
								
								
									
										20
									
								
								.github/workflows/publish-immutable-actions.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								.github/workflows/publish-immutable-actions.yml
									
									
									
									
										vendored
									
									
								
							| @@ -1,20 +0,0 @@ | |||||||
| 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 |  | ||||||
							
								
								
									
										12
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								CHANGELOG.md
									
									
									
									
									
								
							| @@ -1,17 +1,5 @@ | |||||||
| # 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 |  | ||||||
|  |  | ||||||
| * Add Ref and Commit outputs by @lucacome in https://github.com/actions/checkout/pull/1180 |  | ||||||
| * Dependency updates by @dependabot- https://github.com/actions/checkout/pull/1777, https://github.com/actions/checkout/pull/1872 |  | ||||||
|  |  | ||||||
| ## v4.1.7 | ## v4.1.7 | ||||||
| * Bump the minor-npm-dependencies group across 1 directory with 4 updates by @dependabot in https://github.com/actions/checkout/pull/1739 | * Bump the minor-npm-dependencies group across 1 directory with 4 updates by @dependabot in https://github.com/actions/checkout/pull/1739 | ||||||
| * Bump actions/checkout from 3 to 4 by @dependabot in https://github.com/actions/checkout/pull/1697 | * Bump actions/checkout from 3 to 4 by @dependabot in https://github.com/actions/checkout/pull/1697 | ||||||
|   | |||||||
							
								
								
									
										14
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								README.md
									
									
									
									
									
								
							| @@ -126,11 +126,6 @@ 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 --> | ||||||
|  |  | ||||||
| @@ -148,7 +143,6 @@ 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 | ||||||
|  |  | ||||||
| @@ -294,14 +288,6 @@ 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,8 +824,7 @@ async function setup(testName: string): Promise<void> { | |||||||
|     sshUser: '', |     sshUser: '', | ||||||
|     workflowOrganizationId: 123456, |     workflowOrganizationId: 123456, | ||||||
|     setSafeDirectory: true, |     setSafeDirectory: true, | ||||||
|     githubServerUrl: githubServerUrl, |     githubServerUrl: githubServerUrl | ||||||
|     objectFormat: undefined |  | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -375,31 +375,4 @@ 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,16 +77,6 @@ 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 | ||||||
|   | |||||||
| @@ -1,92 +0,0 @@ | |||||||
| 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') |  | ||||||
|   }) |  | ||||||
| }) |  | ||||||
							
								
								
									
										143
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										143
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @@ -30,7 +30,9 @@ var __importStar = (this && this.__importStar) || function (mod) { | |||||||
|     return result; |     return result; | ||||||
| }; | }; | ||||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||||
| exports.fileExistsSync = exports.existsSync = exports.directoryExistsSync = void 0; | exports.directoryExistsSync = directoryExistsSync; | ||||||
|  | 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; | ||||||
| @@ -58,7 +60,6 @@ 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) { | ||||||
| @@ -75,7 +76,6 @@ 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,7 +96,6 @@ function fileExistsSync(path) { | |||||||
|     } |     } | ||||||
|     return false; |     return false; | ||||||
| } | } | ||||||
| exports.fileExistsSync = fileExistsSync; |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /***/ }), | /***/ }), | ||||||
| @@ -139,7 +138,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 = void 0; | exports.createAuthHelper = createAuthHelper; | ||||||
| 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)); | ||||||
| @@ -156,7 +155,6 @@ 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 = []; | ||||||
| @@ -475,7 +473,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge | |||||||
|     }); |     }); | ||||||
| }; | }; | ||||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||||
| exports.createCommandManager = exports.MinimumGitSparseCheckoutVersion = exports.MinimumGitVersion = void 0; | 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)); | ||||||
| @@ -496,7 +495,6 @@ 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() { | ||||||
| @@ -711,13 +709,9 @@ class GitCommandManager { | |||||||
|     getWorkingDirectory() { |     getWorkingDirectory() { | ||||||
|         return this.workingDirectory; |         return this.workingDirectory; | ||||||
|     } |     } | ||||||
|     init(options) { |     init() { | ||||||
|         return __awaiter(this, void 0, void 0, function* () { |         return __awaiter(this, void 0, void 0, function* () { | ||||||
|             yield this.execGit([ |             yield this.execGit(['init', this.workingDirectory]); | ||||||
|                 'init', |  | ||||||
|                 ...((options === null || options === void 0 ? void 0 : options.objectFormat) ? [`--object-format=${options.objectFormat}`] : []), |  | ||||||
|                 this.workingDirectory |  | ||||||
|             ]); |  | ||||||
|         }); |         }); | ||||||
|     } |     } | ||||||
|     isDetached() { |     isDetached() { | ||||||
| @@ -1024,7 +1018,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 = void 0; | exports.prepareExistingDirectory = prepareExistingDirectory; | ||||||
| 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)); | ||||||
| @@ -1128,7 +1122,6 @@ function prepareExistingDirectory(git, repositoryPath, repositoryUrl, clean, ref | |||||||
|         } |         } | ||||||
|     }); |     }); | ||||||
| } | } | ||||||
| exports.prepareExistingDirectory = prepareExistingDirectory; |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /***/ }), | /***/ }), | ||||||
| @@ -1171,7 +1164,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge | |||||||
|     }); |     }); | ||||||
| }; | }; | ||||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||||
| exports.cleanup = exports.getSource = void 0; | exports.getSource = getSource; | ||||||
|  | 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)); | ||||||
| @@ -1242,7 +1236,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({ objectFormat: settings.objectFormat }); |                 yield git.init(); | ||||||
|                 yield git.remoteAdd('origin', repositoryUrl); |                 yield git.remoteAdd('origin', repositoryUrl); | ||||||
|                 core.endGroup(); |                 core.endGroup(); | ||||||
|             } |             } | ||||||
| @@ -1377,7 +1371,6 @@ 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?
 | ||||||
| @@ -1413,7 +1406,6 @@ 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}'`); | ||||||
| @@ -1552,7 +1544,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge | |||||||
|     }); |     }); | ||||||
| }; | }; | ||||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||||
| exports.getDefaultBranch = exports.downloadRepository = void 0; | exports.downloadRepository = downloadRepository; | ||||||
|  | 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)); | ||||||
| @@ -1616,7 +1609,6 @@ 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 | ||||||
|  */ |  */ | ||||||
| @@ -1655,7 +1647,6 @@ 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, { | ||||||
| @@ -1714,7 +1705,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 = void 0; | exports.getInputs = getInputs; | ||||||
| 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)); | ||||||
| @@ -1840,18 +1831,9 @@ 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; |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /***/ }), | /***/ }), | ||||||
| @@ -1983,7 +1965,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge | |||||||
|     }); |     }); | ||||||
| }; | }; | ||||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||||
| exports.checkCommitInfo = exports.testRef = exports.getRefSpec = exports.getRefSpecForAllHistory = exports.getCheckoutInfo = exports.tagsRefSpec = void 0; | 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); | ||||||
| @@ -2018,8 +2005,8 @@ function getCheckoutInfo(git, ref, commit) { | |||||||
|             result.ref = ref; |             result.ref = ref; | ||||||
|         } |         } | ||||||
|         // refs/
 |         // refs/
 | ||||||
|         else if (upperRef.startsWith('REFS/')) { |         else if (upperRef.startsWith('REFS/') && commit) { | ||||||
|             result.ref = commit ? commit : ref; |             result.ref = commit; | ||||||
|         } |         } | ||||||
|         // Unqualified ref, check for a matching branch or tag
 |         // Unqualified ref, check for a matching branch or tag
 | ||||||
|         else { |         else { | ||||||
| @@ -2037,7 +2024,6 @@ 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/')) { | ||||||
| @@ -2046,7 +2032,6 @@ 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'); | ||||||
| @@ -2095,7 +2080,6 @@ 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 | ||||||
|  */ |  */ | ||||||
| @@ -2139,7 +2123,6 @@ 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; | ||||||
| @@ -2205,7 +2188,6 @@ 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); | ||||||
| } | } | ||||||
| @@ -2230,13 +2212,12 @@ function select(obj, path) { | |||||||
| "use strict"; | "use strict"; | ||||||
| 
 | 
 | ||||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||||
| exports.escape = void 0; | exports.escape = escape; | ||||||
| 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; |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /***/ }), | /***/ }), | ||||||
| @@ -2279,7 +2260,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge | |||||||
|     }); |     }); | ||||||
| }; | }; | ||||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||||
| exports.execute = exports.RetryHelper = void 0; | 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; | ||||||
| @@ -2331,7 +2313,6 @@ function execute(action) { | |||||||
|         return yield retryHelper.execute(action); |         return yield retryHelper.execute(action); | ||||||
|     }); |     }); | ||||||
| } | } | ||||||
| exports.execute = execute; |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /***/ }), | /***/ }), | ||||||
| @@ -2365,7 +2346,11 @@ var __importStar = (this && this.__importStar) || function (mod) { | |||||||
|     return result; |     return result; | ||||||
| }; | }; | ||||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||||
| exports.setSafeDirectory = exports.setSshKnownHostsPath = exports.setSshKeyPath = exports.setRepositoryPath = exports.SshKnownHostsPath = exports.SshKeyPath = exports.PostSetSafeDirectory = exports.RepositoryPath = exports.IsPost = void 0; | 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 | ||||||
| @@ -2393,28 +2378,24 @@ 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) { | ||||||
| @@ -2453,7 +2434,10 @@ var __importStar = (this && this.__importStar) || function (mod) { | |||||||
|     return result; |     return result; | ||||||
| }; | }; | ||||||
| Object.defineProperty(exports, "__esModule", ({ value: true })); | Object.defineProperty(exports, "__esModule", ({ value: true })); | ||||||
| exports.isGhes = exports.getServerApiUrl = exports.getServerUrl = exports.getFetchUrl = void 0; | exports.getFetchUrl = getFetchUrl; | ||||||
|  | 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) { | ||||||
| @@ -2469,56 +2453,24 @@ 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 resolvedUrl = process.env['GITHUB_SERVER_URL'] || 'https://github.com'; |     let urlValue = url && url.trim().length > 0 | ||||||
|     if (hasContent(url, WhitespaceMode.Trim)) { |         ? url | ||||||
|         resolvedUrl = url; |         : process.env['GITHUB_SERVER_URL'] || 'https://github.com'; | ||||||
|     } |     return new url_1.URL(urlValue); | ||||||
|     return new url_1.URL(resolvedUrl); |  | ||||||
| } | } | ||||||
| exports.getServerUrl = getServerUrl; |  | ||||||
| function getServerApiUrl(url) { | function getServerApiUrl(url) { | ||||||
|     if (hasContent(url, WhitespaceMode.Trim)) { |     let apiUrl = 'https://api.github.com'; | ||||||
|         let serverUrl = getServerUrl(url); |     if (isGhes(url)) { | ||||||
|         if (isGhes(url)) { |         const serverUrl = getServerUrl(url); | ||||||
|             serverUrl.pathname = 'api/v3'; |         apiUrl = new url_1.URL(`${serverUrl.origin}/api/v3`).toString(); | ||||||
|         } |  | ||||||
|         else { |  | ||||||
|             serverUrl.hostname = 'api.' + serverUrl.hostname; |  | ||||||
|         } |  | ||||||
|         return pruneSuffix(serverUrl.toString(), '/'); |  | ||||||
|     } |     } | ||||||
|     return process.env['GITHUB_API_URL'] || 'https://api.github.com'; |     return apiUrl; | ||||||
| } | } | ||||||
| exports.getServerApiUrl = getServerApiUrl; |  | ||||||
| function isGhes(url) { | function isGhes(url) { | ||||||
|     const ghUrl = new url_1.URL(url || process.env['GITHUB_SERVER_URL'] || 'https://github.com'); |     const ghUrl = getServerUrl(url); | ||||||
|     const hostname = ghUrl.hostname.trimEnd().toUpperCase(); |     return ghUrl.hostname.toUpperCase() !== 'GITHUB.COM'; | ||||||
|     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; |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /***/ }), | /***/ }), | ||||||
| @@ -2561,7 +2513,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 = void 0; | exports.getOrganizationId = getOrganizationId; | ||||||
| const core = __importStar(__nccwpck_require__(2186)); | const core = __importStar(__nccwpck_require__(2186)); | ||||||
| const fs = __importStar(__nccwpck_require__(7147)); | const fs = __importStar(__nccwpck_require__(7147)); | ||||||
| /** | /** | ||||||
| @@ -2590,7 +2542,6 @@ function getOrganizationId() { | |||||||
|         } |         } | ||||||
|     }); |     }); | ||||||
| } | } | ||||||
| exports.getOrganizationId = getOrganizationId; |  | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| /***/ }), | /***/ }), | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										20
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -1,12 +1,12 @@ | |||||||
| { | { | ||||||
|   "name": "checkout", |   "name": "checkout", | ||||||
|   "version": "4.2.2", |   "version": "4.1.7", | ||||||
|   "lockfileVersion": 3, |   "lockfileVersion": 3, | ||||||
|   "requires": true, |   "requires": true, | ||||||
|   "packages": { |   "packages": { | ||||||
|     "": { |     "": { | ||||||
|       "name": "checkout", |       "name": "checkout", | ||||||
|       "version": "4.2.2", |       "version": "4.1.7", | ||||||
|       "license": "MIT", |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@actions/core": "^1.10.1", |         "@actions/core": "^1.10.1", | ||||||
| @@ -14,12 +14,12 @@ | |||||||
|         "@actions/github": "^6.0.0", |         "@actions/github": "^6.0.0", | ||||||
|         "@actions/io": "^1.1.3", |         "@actions/io": "^1.1.3", | ||||||
|         "@actions/tool-cache": "^2.0.1", |         "@actions/tool-cache": "^2.0.1", | ||||||
|         "uuid": "^9.0.1" |         "uuid": "^10.0.0" | ||||||
|       }, |       }, | ||||||
|       "devDependencies": { |       "devDependencies": { | ||||||
|         "@types/jest": "^29.5.12", |         "@types/jest": "^29.5.12", | ||||||
|         "@types/node": "^20.12.12", |         "@types/node": "^20.12.12", | ||||||
|         "@types/uuid": "^9.0.8", |         "@types/uuid": "^10.0.0", | ||||||
|         "@typescript-eslint/eslint-plugin": "^7.9.0", |         "@typescript-eslint/eslint-plugin": "^7.9.0", | ||||||
|         "@typescript-eslint/parser": "^7.9.0", |         "@typescript-eslint/parser": "^7.9.0", | ||||||
|         "@vercel/ncc": "^0.38.1", |         "@vercel/ncc": "^0.38.1", | ||||||
| @@ -1603,9 +1603,9 @@ | |||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/@types/uuid": { |     "node_modules/@types/uuid": { | ||||||
|       "version": "9.0.8", |       "version": "10.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", |       "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-10.0.0.tgz", | ||||||
|       "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", |       "integrity": "sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "node_modules/@types/yargs": { |     "node_modules/@types/yargs": { | ||||||
| @@ -6991,9 +6991,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/uuid": { |     "node_modules/uuid": { | ||||||
|       "version": "9.0.1", |       "version": "10.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", |       "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", | ||||||
|       "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", |       "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", | ||||||
|       "funding": [ |       "funding": [ | ||||||
|         "https://github.com/sponsors/broofa", |         "https://github.com/sponsors/broofa", | ||||||
|         "https://github.com/sponsors/ctavan" |         "https://github.com/sponsors/ctavan" | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "checkout", |   "name": "checkout", | ||||||
|   "version": "4.2.2", |   "version": "4.1.7", | ||||||
|   "description": "checkout action", |   "description": "checkout action", | ||||||
|   "main": "lib/main.js", |   "main": "lib/main.js", | ||||||
|   "scripts": { |   "scripts": { | ||||||
| @@ -33,12 +33,12 @@ | |||||||
|     "@actions/github": "^6.0.0", |     "@actions/github": "^6.0.0", | ||||||
|     "@actions/io": "^1.1.3", |     "@actions/io": "^1.1.3", | ||||||
|     "@actions/tool-cache": "^2.0.1", |     "@actions/tool-cache": "^2.0.1", | ||||||
|     "uuid": "^9.0.1" |     "uuid": "^10.0.0" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@types/jest": "^29.5.12", |     "@types/jest": "^29.5.12", | ||||||
|     "@types/node": "^20.12.12", |     "@types/node": "^20.12.12", | ||||||
|     "@types/uuid": "^9.0.8", |     "@types/uuid": "^10.0.0", | ||||||
|     "@typescript-eslint/eslint-plugin": "^7.9.0", |     "@typescript-eslint/eslint-plugin": "^7.9.0", | ||||||
|     "@typescript-eslint/parser": "^7.9.0", |     "@typescript-eslint/parser": "^7.9.0", | ||||||
|     "@vercel/ncc": "^0.38.1", |     "@vercel/ncc": "^0.38.1", | ||||||
|   | |||||||
| @@ -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(options?: { objectFormat?: string }): Promise<void> |   init(): 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,12 +327,8 @@ class GitCommandManager { | |||||||
|     return this.workingDirectory |     return this.workingDirectory | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   async init(options?: { objectFormat?: string }): Promise<void> { |   async init(): Promise<void> { | ||||||
|     await this.execGit([ |     await this.execGit(['init', this.workingDirectory]) | ||||||
|       '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({ objectFormat: settings.objectFormat }) |       await git.init() | ||||||
|       await git.remoteAdd('origin', repositoryUrl) |       await git.remoteAdd('origin', repositoryUrl) | ||||||
|       core.endGroup() |       core.endGroup() | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -118,9 +118,4 @@ 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,14 +161,5 @@ 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/')) { |   else if (upperRef.startsWith('REFS/') && commit) { | ||||||
|     result.ref = commit ? commit : ref |     result.ref = commit | ||||||
|   } |   } | ||||||
|   // Unqualified ref, check for a matching branch or tag |   // Unqualified ref, check for a matching branch or tag | ||||||
|   else { |   else { | ||||||
|   | |||||||
| @@ -21,61 +21,26 @@ export function getFetchUrl(settings: IGitSourceSettings): string { | |||||||
| } | } | ||||||
|  |  | ||||||
| export function getServerUrl(url?: string): URL { | export function getServerUrl(url?: string): URL { | ||||||
|   let resolvedUrl = process.env['GITHUB_SERVER_URL'] || 'https://github.com' |   let urlValue = | ||||||
|   if (hasContent(url, WhitespaceMode.Trim)) { |     url && url.trim().length > 0 | ||||||
|     resolvedUrl = url! |       ? 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 { | ||||||
|   if (hasContent(url, WhitespaceMode.Trim)) { |   let apiUrl = 'https://api.github.com' | ||||||
|     let serverUrl = getServerUrl(url) |  | ||||||
|     if (isGhes(url)) { |  | ||||||
|       serverUrl.pathname = 'api/v3' |  | ||||||
|     } else { |  | ||||||
|       serverUrl.hostname = 'api.' + serverUrl.hostname |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     return pruneSuffix(serverUrl.toString(), '/') |   if (isGhes(url)) { | ||||||
|  |     const serverUrl = getServerUrl(url) | ||||||
|  |     apiUrl = new URL(`${serverUrl.origin}/api/v3`).toString() | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   return process.env['GITHUB_API_URL'] || 'https://api.github.com' |   return apiUrl | ||||||
| } | } | ||||||
|  |  | ||||||
| export function isGhes(url?: string): boolean { | export function isGhes(url?: string): boolean { | ||||||
|   const ghUrl = new URL( |   const ghUrl = getServerUrl(url) | ||||||
|     url || process.env['GITHUB_SERVER_URL'] || 'https://github.com' |  | ||||||
|   ) |  | ||||||
|  |  | ||||||
|   const hostname = ghUrl.hostname.trimEnd().toUpperCase() |   return ghUrl.hostname.toUpperCase() !== 'GITHUB.COM' | ||||||
|   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