mirror of
				https://github.com/actions/checkout.git
				synced 2025-10-31 19:23:36 +00:00 
			
		
		
		
	codereview: define a git-user slug instead of a true/false config
This commit is contained in:
		
							parent
							
								
									f3b199b7ed
								
							
						
					
					
						commit
						5fba9eb899
					
				| @ -40,6 +40,12 @@ Please refer to the [release page](https://github.com/actions/checkout/releases/ | ||||
|     # | ||||
|     # Default: ${{ github.token }} | ||||
|     token: '' | ||||
|      | ||||
|     # Github slug used to configure local user.name and user.email for git. | ||||
|     # This is required to push a commit from a Github Action Workflow | ||||
|     # Set to '' to disable this configuration | ||||
|     # Default: "github-action[bot] | ||||
|     git-config: '' | ||||
| 
 | ||||
|     # SSH key used to fetch the repository. The SSH key is configured with the local | ||||
|     # git config, which enables your scripts to run authenticated git commands. The | ||||
|  | ||||
| @ -22,12 +22,12 @@ inputs: | ||||
| 
 | ||||
|       [Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets) | ||||
|     default: ${{ github.token }} | ||||
|   configure-user: | ||||
|   git-user: | ||||
|     description: > | ||||
|       Whether to configure user.name and user.email in the local git config. | ||||
|       Github slug used to configure local user.name and user.email for git. | ||||
|       This is required to push a commit from a Github Action Workflow. | ||||
|       Set to `false` to disable the config. | ||||
|     default: true | ||||
|       Set to '' to disable this configuration. | ||||
|     default: "github-action[bot]" | ||||
|   ssh-key: | ||||
|     description: > | ||||
|       SSH key used to fetch the repository. The SSH key is configured with the local | ||||
|  | ||||
							
								
								
									
										3
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| @ -1814,8 +1814,7 @@ function getInputs() { | ||||
|         // Auth token
 | ||||
|         result.authToken = core.getInput('token', { required: true }); | ||||
|         // Configure user
 | ||||
|         result.configureUser =  | ||||
|             (core.getInput('configure-user') || 'true').toUpperCase() === 'TRUE' | ||||
|         result.gitUser = (core.getInput('git-user') || 'github-action[bot]') | ||||
|         // SSH
 | ||||
|         result.sshKey = core.getInput('ssh-key'); | ||||
|         result.sshKnownHosts = core.getInput('ssh-known-hosts'); | ||||
|  | ||||
| @ -274,12 +274,14 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> { | ||||
|       settings.commit, | ||||
|       settings.githubServerUrl | ||||
|     ) | ||||
|     if (settings.configureUser) { | ||||
|     if (settings.gitUser) { | ||||
|       if (!await git.configExists('user.name', true)) { | ||||
|         await git.config('user.name', 'github-action[bot]', true) | ||||
|         await git.config('user.name', settings.gitUser, true) | ||||
|       } | ||||
|       if (!await git.configExists('user.email', true)) { | ||||
|         await git.config('user.email', '41898282+github-actions[bot]@users.noreply.github.com', true) | ||||
| 
 | ||||
|         const userId = await githubApiHelper.getUserId(settings.gitUser, settings.authToken, settings.githubServerUrl); | ||||
|         await git.config('user.email', `${userId}+${settings.gitUser}@users.noreply.github.com`, true) | ||||
|       }  | ||||
|     } | ||||
|   } finally { | ||||
|  | ||||
| @ -80,9 +80,9 @@ export interface IGitSourceSettings { | ||||
|   authToken: string | ||||
| 
 | ||||
|   /** | ||||
|    * Indicates whether to set a default user name and email in the local git config | ||||
|    * A github user slug to set a default user name and email in the local git config | ||||
|    */ | ||||
|   configureUser: boolean | ||||
|   gitUser: string | ||||
| 
 | ||||
|   /** | ||||
|    * The SSH key to configure | ||||
|  | ||||
| @ -143,3 +143,15 @@ async function downloadArchive( | ||||
|   }) | ||||
|   return Buffer.from(response.data as ArrayBuffer) // response.data is ArrayBuffer
 | ||||
| } | ||||
| 
 | ||||
| export async function getUserId( | ||||
|   username: string, | ||||
|   authToken: string, | ||||
|   baseUrl?: string | ||||
| ): Promise<number> { | ||||
|   const octokit = github.getOctokit(authToken, { | ||||
|     baseUrl: getServerApiUrl(baseUrl) | ||||
|   }) | ||||
|   const user = await octokit.rest.users.getByUsername({username,}); | ||||
|   return user.data.id | ||||
| } | ||||
|  | ||||
| @ -138,9 +138,8 @@ export async function getInputs(): Promise<IGitSourceSettings> { | ||||
|   // Auth token
 | ||||
|   result.authToken = core.getInput('token', {required: true}) | ||||
| 
 | ||||
|   // Configure user
 | ||||
|   result.configureUser =  | ||||
|     (core.getInput('configure-user') || 'true').toUpperCase() === 'TRUE' | ||||
|   // Git user
 | ||||
|   result.gitUser = core.getInput('git-user') || 'github-action[bot]' | ||||
| 
 | ||||
|   // SSH
 | ||||
|   result.sshKey = core.getInput('ssh-key') | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user