mirror of
				https://kkgithub.com/actions/checkout
				synced 2025-10-31 14:21:50 +08:00 
			
		
		
		
	.
This commit is contained in:
		
							
								
								
									
										20
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @ -5822,7 +5822,9 @@ function getSource(settings) { | ||||
|             yield io.mkdirP(settings.repositoryPath); | ||||
|         } | ||||
|         // Git command manager | ||||
|         core.startGroup('Getting Git version info'); | ||||
|         const git = yield getGitCommandManager(settings); | ||||
|         core.endGroup(); | ||||
|         // Prepare existing directory, otherwise recreate | ||||
|         if (isExisting) { | ||||
|             yield gitDirectoryHelper.prepareExistingDirectory(git, settings.repositoryPath, initialRemoteUrl, [httpsUrl, sshUrl], settings.clean); | ||||
| @ -5854,21 +5856,27 @@ function getSource(settings) { | ||||
|         const authHelper = gitAuthHelper.createAuthHelper(git, settings); | ||||
|         try { | ||||
|             // Configure auth | ||||
|             core.startGroup('Setting up auth'); | ||||
|             yield authHelper.configureAuth(); | ||||
|             core.endGroup(); | ||||
|             // LFS install | ||||
|             if (settings.lfs) { | ||||
|                 yield git.lfsInstall(); | ||||
|             } | ||||
|             // Fetch | ||||
|             core.startGroup('Fetching the repository'); | ||||
|             const refSpec = refHelper.getRefSpec(settings.ref, settings.commit); | ||||
|             yield git.fetch(settings.fetchDepth, refSpec); | ||||
|             core.endGroup(); | ||||
|             // Checkout info | ||||
|             const checkoutInfo = yield refHelper.getCheckoutInfo(git, settings.ref, settings.commit); | ||||
|             // LFS fetch | ||||
|             // Explicit lfs-fetch to avoid slow checkout (fetches one lfs object at a time). | ||||
|             // Explicit lfs fetch will fetch lfs objects in parallel. | ||||
|             if (settings.lfs) { | ||||
|                 core.startGroup('Fetching LFS objects'); | ||||
|                 yield git.lfsFetch(checkoutInfo.startPoint || checkoutInfo.ref); | ||||
|                 core.endGroup(); | ||||
|             } | ||||
|             // Fix URL when using SSH | ||||
|             if (settings.sshKey && initialRemoteUrl !== sshUrl) { | ||||
| @ -5880,14 +5888,20 @@ function getSource(settings) { | ||||
|             if (settings.submodules) { | ||||
|                 try { | ||||
|                     // Temporarily override global config | ||||
|                     core.startGroup('Setting up auth for fetching submodules'); | ||||
|                     yield authHelper.configureGlobalAuth(); | ||||
|                     core.endGroup(); | ||||
|                     // Checkout submodules | ||||
|                     core.startGroup('Fetching submodules'); | ||||
|                     yield git.submoduleSync(settings.nestedSubmodules); | ||||
|                     yield git.submoduleUpdate(settings.fetchDepth, settings.nestedSubmodules); | ||||
|                     yield git.submoduleForeach('git config --local gc.auto 0', settings.nestedSubmodules); | ||||
|                     core.endGroup(); | ||||
|                     // Persist credentials | ||||
|                     if (settings.persistCredentials) { | ||||
|                         core.startGroup('Persisting credentials for submodules'); | ||||
|                         yield authHelper.configureSubmoduleAuth(); | ||||
|                         core.endGroup(); | ||||
|                     } | ||||
|                 } | ||||
|                 finally { | ||||
| @ -5901,7 +5915,9 @@ function getSource(settings) { | ||||
|         finally { | ||||
|             // Remove auth | ||||
|             if (!settings.persistCredentials) { | ||||
|                 core.startGroup('Removing auth'); | ||||
|                 yield authHelper.removeAuth(); | ||||
|                 core.endGroup(); | ||||
|             } | ||||
|         } | ||||
|     }); | ||||
| @ -7241,6 +7257,7 @@ function prepareExistingDirectory(git, repositoryPath, preferredRemoteUrl, allow | ||||
|                 } | ||||
|             } | ||||
|             try { | ||||
|                 core.startGroup('Removing previously created refs, to avoid conflicts'); | ||||
|                 // Checkout detached HEAD | ||||
|                 if (!(yield git.isDetached())) { | ||||
|                     yield git.checkoutDetach(); | ||||
| @ -7255,8 +7272,10 @@ function prepareExistingDirectory(git, repositoryPath, preferredRemoteUrl, allow | ||||
|                 for (const branch of branches) { | ||||
|                     yield git.branchDelete(true, branch); | ||||
|                 } | ||||
|                 core.endGroup(); | ||||
|                 // Clean | ||||
|                 if (clean) { | ||||
|                     core.startGroup('Cleaning the repository'); | ||||
|                     if (!(yield git.tryClean())) { | ||||
|                         core.debug(`The clean command failed. This might be caused by: 1) path too long, 2) permission issue, or 3) file in use. For futher investigation, manually run 'git clean -ffdx' on the directory '${repositoryPath}'.`); | ||||
|                         remove = true; | ||||
| @ -7264,6 +7283,7 @@ function prepareExistingDirectory(git, repositoryPath, preferredRemoteUrl, allow | ||||
|                     else if (!(yield git.tryReset())) { | ||||
|                         remove = true; | ||||
|                     } | ||||
|                     core.endGroup(); | ||||
|                     if (remove) { | ||||
|                         core.warning(`Unable to clean or reset the repository. The repository will be recreated instead.`); | ||||
|                     } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 eric sciple
					eric sciple