mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-31 19:23:36 +00:00 
			
		
		
		
	Add support for SHA256 repositories
New input parameter to specify the git object format when initializing a git repository.
This commit is contained in:
		
							parent
							
								
									85e6279cec
								
							
						
					
					
						commit
						488933c971
					
				| @ -126,6 +126,9 @@ Please refer to the [release page](https://github.com/actions/checkout/releases/ | ||||
|     # running from unless specified. Example URLs are https://github.com or | ||||
|     # https://my-ghes-server.example.com | ||||
|     github-server-url: '' | ||||
| 
 | ||||
|     # Specify the Git object format for repository initialization (sha1, sha256). | ||||
|     object-format: '' | ||||
| ``` | ||||
| <!-- end usage --> | ||||
| 
 | ||||
|  | ||||
| @ -824,7 +824,8 @@ async function setup(testName: string): Promise<void> { | ||||
|     sshUser: '', | ||||
|     workflowOrganizationId: 123456, | ||||
|     setSafeDirectory: true, | ||||
|     githubServerUrl: githubServerUrl | ||||
|     githubServerUrl: githubServerUrl, | ||||
|     objectFormat: undefined | ||||
|   } | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -98,6 +98,9 @@ inputs: | ||||
|   github-server-url: | ||||
|     description: The base URL for the GitHub instance that you are trying to clone from, will use environment defaults to fetch from the same instance that the workflow is running from unless specified. Example URLs are https://github.com or https://my-ghes-server.example.com | ||||
|     required: false | ||||
|   object-format: | ||||
|     description: 'Specify the Git object format for repository initialization (sha1, sha256).' | ||||
|     required: false | ||||
| outputs: | ||||
|   ref: | ||||
|     description: 'The branch, tag or SHA that was checked out' | ||||
|  | ||||
							
								
								
									
										14
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @ -709,9 +709,14 @@ class GitCommandManager { | ||||
|     getWorkingDirectory() { | ||||
|         return this.workingDirectory; | ||||
|     } | ||||
|     init() { | ||||
|     init(objectFormat) { | ||||
|         return __awaiter(this, void 0, void 0, function* () { | ||||
|             yield this.execGit(['init', this.workingDirectory]); | ||||
|             const args = ['init']; | ||||
|             if (objectFormat) { | ||||
|                 args.push(`--object-format=${objectFormat}`); | ||||
|             } | ||||
|             args.push(this.workingDirectory); | ||||
|             yield this.execGit(args); | ||||
|         }); | ||||
|     } | ||||
|     isDetached() { | ||||
| @ -1236,7 +1241,7 @@ function getSource(settings) { | ||||
|             // Initialize the repository
 | ||||
|             if (!fsHelper.directoryExistsSync(path.join(settings.repositoryPath, '.git'))) { | ||||
|                 core.startGroup('Initializing the repository'); | ||||
|                 yield git.init(); | ||||
|                 yield git.init(settings.objectFormat); | ||||
|                 yield git.remoteAdd('origin', repositoryUrl); | ||||
|                 core.endGroup(); | ||||
|             } | ||||
| @ -1831,6 +1836,9 @@ function getInputs() { | ||||
|         // Determine the GitHub URL that the repository is being hosted from
 | ||||
|         result.githubServerUrl = core.getInput('github-server-url'); | ||||
|         core.debug(`GitHub Host URL = ${result.githubServerUrl}`); | ||||
|         // Retrieve the Git object format for initializing a Git repository.
 | ||||
|         result.objectFormat = core.getInput('object-format'); | ||||
|         core.debug(`git object format = ${result.objectFormat}`); | ||||
|         return result; | ||||
|     }); | ||||
| } | ||||
|  | ||||
| @ -42,7 +42,7 @@ export interface IGitCommandManager { | ||||
|   ): Promise<void> | ||||
|   getDefaultBranch(repositoryUrl: string): Promise<string> | ||||
|   getWorkingDirectory(): string | ||||
|   init(): Promise<void> | ||||
|   init(objectFormat?: string): Promise<void> | ||||
|   isDetached(): Promise<boolean> | ||||
|   lfsFetch(ref: string): Promise<void> | ||||
|   lfsInstall(): Promise<void> | ||||
| @ -327,8 +327,13 @@ class GitCommandManager { | ||||
|     return this.workingDirectory | ||||
|   } | ||||
| 
 | ||||
|   async init(): Promise<void> { | ||||
|     await this.execGit(['init', this.workingDirectory]) | ||||
|   async init(objectFormat?: string): Promise<void> { | ||||
|     const args = ['init'] | ||||
|     if (objectFormat) { | ||||
|       args.push(`--object-format=${objectFormat}`) | ||||
|     } | ||||
|     args.push(this.workingDirectory) | ||||
|     await this.execGit(args) | ||||
|   } | ||||
| 
 | ||||
|   async isDetached(): Promise<boolean> { | ||||
|  | ||||
| @ -110,7 +110,7 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> { | ||||
|       !fsHelper.directoryExistsSync(path.join(settings.repositoryPath, '.git')) | ||||
|     ) { | ||||
|       core.startGroup('Initializing the repository') | ||||
|       await git.init() | ||||
|       await git.init(settings.objectFormat) | ||||
|       await git.remoteAdd('origin', repositoryUrl) | ||||
|       core.endGroup() | ||||
|     } | ||||
|  | ||||
| @ -118,4 +118,9 @@ export interface IGitSourceSettings { | ||||
|    * User override on the GitHub Server/Host URL that hosts the repository to be cloned | ||||
|    */ | ||||
|   githubServerUrl: string | undefined | ||||
| 
 | ||||
|   /** | ||||
|    * Specify the Git object format for repository initialization (sha1, sha256). | ||||
|    */ | ||||
|   objectFormat: string | undefined | ||||
| } | ||||
|  | ||||
| @ -161,5 +161,9 @@ export async function getInputs(): Promise<IGitSourceSettings> { | ||||
|   result.githubServerUrl = core.getInput('github-server-url') | ||||
|   core.debug(`GitHub Host URL = ${result.githubServerUrl}`) | ||||
| 
 | ||||
|   // Retrieve the Git object format for initializing a Git repository.
 | ||||
|   result.objectFormat = core.getInput('object-format') | ||||
|   core.debug(`git object format = ${result.objectFormat}`) | ||||
| 
 | ||||
|   return result | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user