mirror of
https://code.forgejo.org/actions/checkout
synced 2024-11-21 23:29:45 +00:00
Add SSH user parameter (#1685)
* Add a configurable SSH user * Update docs with param * Indentation of readme * formatting woes * Update src/url-helper.ts Co-authored-by: Josh Gross <joshmgross@github.com> * Update action.yml Co-authored-by: Josh Gross <joshmgross@github.com> * Update genfiles --------- Co-authored-by: Josh Gross <joshmgross@github.com>
This commit is contained in:
parent
cd7d8d697e
commit
1d96c772d1
7 changed files with 21 additions and 2 deletions
|
@ -62,6 +62,11 @@ Please refer to the [release page](https://github.com/actions/checkout/releases/
|
||||||
# Default: true
|
# Default: true
|
||||||
ssh-strict: ''
|
ssh-strict: ''
|
||||||
|
|
||||||
|
# The user to use when connecting to the remote SSH host. By default 'git' is
|
||||||
|
# used.
|
||||||
|
# Default: git
|
||||||
|
ssh-user: ''
|
||||||
|
|
||||||
# Whether to configure the token or SSH key with the local git config
|
# Whether to configure the token or SSH key with the local git config
|
||||||
# Default: true
|
# Default: true
|
||||||
persist-credentials: ''
|
persist-credentials: ''
|
||||||
|
|
|
@ -821,6 +821,7 @@ async function setup(testName: string): Promise<void> {
|
||||||
sshKey: sshPath ? 'some ssh private key' : '',
|
sshKey: sshPath ? 'some ssh private key' : '',
|
||||||
sshKnownHosts: '',
|
sshKnownHosts: '',
|
||||||
sshStrict: true,
|
sshStrict: true,
|
||||||
|
sshUser: '',
|
||||||
workflowOrganizationId: 123456,
|
workflowOrganizationId: 123456,
|
||||||
setSafeDirectory: true,
|
setSafeDirectory: true,
|
||||||
githubServerUrl: githubServerUrl
|
githubServerUrl: githubServerUrl
|
||||||
|
|
|
@ -45,6 +45,10 @@ inputs:
|
||||||
and `CheckHostIP=no` to the SSH command line. Use the input `ssh-known-hosts` to
|
and `CheckHostIP=no` to the SSH command line. Use the input `ssh-known-hosts` to
|
||||||
configure additional hosts.
|
configure additional hosts.
|
||||||
default: true
|
default: true
|
||||||
|
ssh-user:
|
||||||
|
description: >
|
||||||
|
The user to use when connecting to the remote SSH host. By default 'git' is used.
|
||||||
|
default: git
|
||||||
persist-credentials:
|
persist-credentials:
|
||||||
description: 'Whether to configure the token or SSH key with the local git config'
|
description: 'Whether to configure the token or SSH key with the local git config'
|
||||||
default: true
|
default: true
|
||||||
|
|
4
dist/index.js
vendored
4
dist/index.js
vendored
|
@ -1798,6 +1798,7 @@ function getInputs() {
|
||||||
result.sshKnownHosts = core.getInput('ssh-known-hosts');
|
result.sshKnownHosts = core.getInput('ssh-known-hosts');
|
||||||
result.sshStrict =
|
result.sshStrict =
|
||||||
(core.getInput('ssh-strict') || 'true').toUpperCase() === 'TRUE';
|
(core.getInput('ssh-strict') || 'true').toUpperCase() === 'TRUE';
|
||||||
|
result.sshUser = core.getInput('ssh-user');
|
||||||
// Persist credentials
|
// Persist credentials
|
||||||
result.persistCredentials =
|
result.persistCredentials =
|
||||||
(core.getInput('persist-credentials') || 'false').toUpperCase() === 'TRUE';
|
(core.getInput('persist-credentials') || 'false').toUpperCase() === 'TRUE';
|
||||||
|
@ -2400,7 +2401,8 @@ function getFetchUrl(settings) {
|
||||||
const encodedOwner = encodeURIComponent(settings.repositoryOwner);
|
const encodedOwner = encodeURIComponent(settings.repositoryOwner);
|
||||||
const encodedName = encodeURIComponent(settings.repositoryName);
|
const encodedName = encodeURIComponent(settings.repositoryName);
|
||||||
if (settings.sshKey) {
|
if (settings.sshKey) {
|
||||||
return `git@${serviceUrl.hostname}:${encodedOwner}/${encodedName}.git`;
|
const user = settings.sshUser.length > 0 ? settings.sshUser : 'git';
|
||||||
|
return `${user}@${serviceUrl.hostname}:${encodedOwner}/${encodedName}.git`;
|
||||||
}
|
}
|
||||||
// "origin" is SCHEME://HOSTNAME[:PORT]
|
// "origin" is SCHEME://HOSTNAME[:PORT]
|
||||||
return `${serviceUrl.origin}/${encodedOwner}/${encodedName}`;
|
return `${serviceUrl.origin}/${encodedOwner}/${encodedName}`;
|
||||||
|
|
|
@ -94,6 +94,11 @@ export interface IGitSourceSettings {
|
||||||
*/
|
*/
|
||||||
sshStrict: boolean
|
sshStrict: boolean
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The SSH user to login as
|
||||||
|
*/
|
||||||
|
sshUser: string
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indicates whether to persist the credentials on disk to enable scripting authenticated git commands
|
* Indicates whether to persist the credentials on disk to enable scripting authenticated git commands
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -143,6 +143,7 @@ export async function getInputs(): Promise<IGitSourceSettings> {
|
||||||
result.sshKnownHosts = core.getInput('ssh-known-hosts')
|
result.sshKnownHosts = core.getInput('ssh-known-hosts')
|
||||||
result.sshStrict =
|
result.sshStrict =
|
||||||
(core.getInput('ssh-strict') || 'true').toUpperCase() === 'TRUE'
|
(core.getInput('ssh-strict') || 'true').toUpperCase() === 'TRUE'
|
||||||
|
result.sshUser = core.getInput('ssh-user')
|
||||||
|
|
||||||
// Persist credentials
|
// Persist credentials
|
||||||
result.persistCredentials =
|
result.persistCredentials =
|
||||||
|
|
|
@ -12,7 +12,8 @@ export function getFetchUrl(settings: IGitSourceSettings): string {
|
||||||
const encodedOwner = encodeURIComponent(settings.repositoryOwner)
|
const encodedOwner = encodeURIComponent(settings.repositoryOwner)
|
||||||
const encodedName = encodeURIComponent(settings.repositoryName)
|
const encodedName = encodeURIComponent(settings.repositoryName)
|
||||||
if (settings.sshKey) {
|
if (settings.sshKey) {
|
||||||
return `git@${serviceUrl.hostname}:${encodedOwner}/${encodedName}.git`
|
const user = settings.sshUser.length > 0 ? settings.sshUser : 'git'
|
||||||
|
return `${user}@${serviceUrl.hostname}:${encodedOwner}/${encodedName}.git`
|
||||||
}
|
}
|
||||||
|
|
||||||
// "origin" is SCHEME://HOSTNAME[:PORT]
|
// "origin" is SCHEME://HOSTNAME[:PORT]
|
||||||
|
|
Loading…
Reference in a new issue