mirror of
				https://github.com/actions/checkout.git
				synced 2025-11-04 13:29:15 +08: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
 | 
					    # 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]
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user