mirror of
				https://github.com/actions/checkout.git
				synced 2025-11-04 08:40:39 +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:
		@@ -62,6 +62,11 @@ Please refer to the [release page](https://github.com/actions/checkout/releases/
 | 
			
		||||
    # Default: true
 | 
			
		||||
    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
 | 
			
		||||
    # Default: true
 | 
			
		||||
    persist-credentials: ''
 | 
			
		||||
 
 | 
			
		||||
@@ -821,6 +821,7 @@ async function setup(testName: string): Promise<void> {
 | 
			
		||||
    sshKey: sshPath ? 'some ssh private key' : '',
 | 
			
		||||
    sshKnownHosts: '',
 | 
			
		||||
    sshStrict: true,
 | 
			
		||||
    sshUser: '',
 | 
			
		||||
    workflowOrganizationId: 123456,
 | 
			
		||||
    setSafeDirectory: true,
 | 
			
		||||
    githubServerUrl: githubServerUrl
 | 
			
		||||
 
 | 
			
		||||
@@ -45,6 +45,10 @@ inputs:
 | 
			
		||||
      and `CheckHostIP=no` to the SSH command line. Use the input `ssh-known-hosts` to
 | 
			
		||||
      configure additional hosts.
 | 
			
		||||
    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:
 | 
			
		||||
    description: 'Whether to configure the token or SSH key with the local git config'
 | 
			
		||||
    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.sshStrict =
 | 
			
		||||
            (core.getInput('ssh-strict') || 'true').toUpperCase() === 'TRUE';
 | 
			
		||||
        result.sshUser = core.getInput('ssh-user');
 | 
			
		||||
        // Persist credentials
 | 
			
		||||
        result.persistCredentials =
 | 
			
		||||
            (core.getInput('persist-credentials') || 'false').toUpperCase() === 'TRUE';
 | 
			
		||||
@@ -2400,7 +2401,8 @@ function getFetchUrl(settings) {
 | 
			
		||||
    const encodedOwner = encodeURIComponent(settings.repositoryOwner);
 | 
			
		||||
    const encodedName = encodeURIComponent(settings.repositoryName);
 | 
			
		||||
    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]
 | 
			
		||||
    return `${serviceUrl.origin}/${encodedOwner}/${encodedName}`;
 | 
			
		||||
 
 | 
			
		||||
@@ -94,6 +94,11 @@ export interface IGitSourceSettings {
 | 
			
		||||
   */
 | 
			
		||||
  sshStrict: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * The SSH user to login as
 | 
			
		||||
   */
 | 
			
		||||
  sshUser: string
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * 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.sshStrict =
 | 
			
		||||
    (core.getInput('ssh-strict') || 'true').toUpperCase() === 'TRUE'
 | 
			
		||||
  result.sshUser = core.getInput('ssh-user')
 | 
			
		||||
 | 
			
		||||
  // Persist credentials
 | 
			
		||||
  result.persistCredentials =
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,8 @@ export function getFetchUrl(settings: IGitSourceSettings): string {
 | 
			
		||||
  const encodedOwner = encodeURIComponent(settings.repositoryOwner)
 | 
			
		||||
  const encodedName = encodeURIComponent(settings.repositoryName)
 | 
			
		||||
  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]
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user