1
0
Fork 0
mirror of https://code.forgejo.org/actions/checkout.git synced 2024-12-23 04:05:59 +01:00

feat(git config): Set default user.name and user.email in git config

This commit is contained in:
Nicolas Schweitzer 2024-12-19 15:30:48 +01:00
parent cbb722410c
commit f3b199b7ed
No known key found for this signature in database
6 changed files with 26 additions and 4 deletions

View file

@ -281,8 +281,6 @@ jobs:
- run: |
date > generated.txt
# Note: the following account information will not work on GHES
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add .
git commit -m "generated"
git push
@ -305,8 +303,6 @@ jobs:
- run: |
date > generated.txt
# Note: the following account information will not work on GHES
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add .
git commit -m "generated"
git push

View file

@ -22,6 +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:
description: >
Whether to configure user.name and user.email in the local git config.
This is required to push a commit from a Github Action Workflow.
Set to `false` to disable the config.
default: true
ssh-key:
description: >
SSH key used to fetch the repository. The SSH key is configured with the local

3
dist/index.js vendored
View file

@ -1813,6 +1813,9 @@ function getInputs() {
core.debug(`recursive submodules = ${result.nestedSubmodules}`);
// Auth token
result.authToken = core.getInput('token', { required: true });
// Configure user
result.configureUser =
(core.getInput('configure-user') || 'true').toUpperCase() === 'TRUE'
// SSH
result.sshKey = core.getInput('ssh-key');
result.sshKnownHosts = core.getInput('ssh-known-hosts');

View file

@ -274,6 +274,14 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
settings.commit,
settings.githubServerUrl
)
if (settings.configureUser) {
if (!await git.configExists('user.name', true)) {
await git.config('user.name', 'github-action[bot]', true)
}
if (!await git.configExists('user.email', true)) {
await git.config('user.email', '41898282+github-actions[bot]@users.noreply.github.com', true)
}
}
} finally {
// Remove auth
if (authHelper) {

View file

@ -79,6 +79,11 @@ export interface IGitSourceSettings {
*/
authToken: string
/**
* Indicates whether to set a default user name and email in the local git config
*/
configureUser: boolean
/**
* The SSH key to configure
*/

View file

@ -138,6 +138,10 @@ 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'
// SSH
result.sshKey = core.getInput('ssh-key')
result.sshKnownHosts = core.getInput('ssh-known-hosts')