mirror of
https://code.forgejo.org/actions/checkout.git
synced 2025-04-20 17:00:15 +03:00
Merge 5fba9eb899
into 85e6279cec
This commit is contained in:
commit
fed14465db
7 changed files with 44 additions and 4 deletions
10
README.md
10
README.md
|
@ -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
|
||||
|
@ -281,8 +287,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 +309,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
|
||||
|
|
|
@ -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 }}
|
||||
git-user:
|
||||
description: >
|
||||
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]"
|
||||
ssh-key:
|
||||
description: >
|
||||
SSH key used to fetch the repository. The SSH key is configured with the local
|
||||
|
|
2
dist/index.js
vendored
2
dist/index.js
vendored
|
@ -1813,6 +1813,8 @@ function getInputs() {
|
|||
core.debug(`recursive submodules = ${result.nestedSubmodules}`);
|
||||
// Auth token
|
||||
result.authToken = core.getInput('token', { required: true });
|
||||
// Configure user
|
||||
result.gitUser = (core.getInput('git-user') || 'github-action[bot]')
|
||||
// SSH
|
||||
result.sshKey = core.getInput('ssh-key');
|
||||
result.sshKnownHosts = core.getInput('ssh-known-hosts');
|
||||
|
|
|
@ -274,6 +274,16 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
|
|||
settings.commit,
|
||||
settings.githubServerUrl
|
||||
)
|
||||
if (settings.gitUser) {
|
||||
if (!await git.configExists('user.name', true)) {
|
||||
await git.config('user.name', settings.gitUser, true)
|
||||
}
|
||||
if (!await git.configExists('user.email', 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 {
|
||||
// Remove auth
|
||||
if (authHelper) {
|
||||
|
|
|
@ -79,6 +79,11 @@ export interface IGitSourceSettings {
|
|||
*/
|
||||
authToken: string
|
||||
|
||||
/**
|
||||
* A github user slug to set a default user name and email in the local git config
|
||||
*/
|
||||
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,6 +138,9 @@ export async function getInputs(): Promise<IGitSourceSettings> {
|
|||
// Auth token
|
||||
result.authToken = core.getInput('token', {required: true})
|
||||
|
||||
// Git user
|
||||
result.gitUser = core.getInput('git-user') || 'github-action[bot]'
|
||||
|
||||
// SSH
|
||||
result.sshKey = core.getInput('ssh-key')
|
||||
result.sshKnownHosts = core.getInput('ssh-known-hosts')
|
||||
|
|
Loading…
Reference in a new issue