mirror of
				https://github.com/actions/checkout.git
				synced 2025-11-04 05:58:40 +08:00 
			
		
		
		
	Add ability to configure core.longpaths
This commit is contained in:
		
							parent
							
								
									afee87ec84
								
							
						
					
					
						commit
						925b9fdcfa
					
				| 
						 | 
					@ -109,6 +109,10 @@ When Git 2.18 or higher is not in your PATH, falls back to the REST API to downl
 | 
				
			||||||
    # running from unless specified. Example URLs are https://github.com or
 | 
					    # running from unless specified. Example URLs are https://github.com or
 | 
				
			||||||
    # https://my-ghes-server.example.com
 | 
					    # https://my-ghes-server.example.com
 | 
				
			||||||
    github-server-url: ''
 | 
					    github-server-url: ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Enable core.longpath support
 | 
				
			||||||
 | 
					    # Default: true
 | 
				
			||||||
 | 
					    long-paths: ''
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
<!-- end usage -->
 | 
					<!-- end usage -->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -80,6 +80,9 @@ inputs:
 | 
				
			||||||
  github-server-url:
 | 
					  github-server-url:
 | 
				
			||||||
    description: The base URL for the GitHub instance that you are trying to clone from, will use environment defaults to fetch from the same instance that the workflow is running from unless specified. Example URLs are https://github.com or https://my-ghes-server.example.com
 | 
					    description: The base URL for the GitHub instance that you are trying to clone from, will use environment defaults to fetch from the same instance that the workflow is running from unless specified. Example URLs are https://github.com or https://my-ghes-server.example.com
 | 
				
			||||||
    required: false
 | 
					    required: false
 | 
				
			||||||
 | 
					  long-paths:
 | 
				
			||||||
 | 
					    description: Enable core.longpath support
 | 
				
			||||||
 | 
					    default: true
 | 
				
			||||||
runs:
 | 
					runs:
 | 
				
			||||||
  using: node16
 | 
					  using: node16
 | 
				
			||||||
  main: dist/index.js
 | 
					  main: dist/index.js
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										11
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								dist/index.js
									
									
									
									
										vendored
									
									
								
							| 
						 | 
					@ -18489,6 +18489,8 @@ function getInputs() {
 | 
				
			||||||
        // Determine the GitHub URL that the repository is being hosted from
 | 
					        // Determine the GitHub URL that the repository is being hosted from
 | 
				
			||||||
        result.githubServerUrl = core.getInput('github-server-url');
 | 
					        result.githubServerUrl = core.getInput('github-server-url');
 | 
				
			||||||
        core.debug(`GitHub Host URL = ${result.githubServerUrl}`);
 | 
					        core.debug(`GitHub Host URL = ${result.githubServerUrl}`);
 | 
				
			||||||
 | 
					        // config
 | 
				
			||||||
 | 
					        result.longpaths = core.getInput('long-paths').toUpperCase() == 'TRUE';
 | 
				
			||||||
        return result;
 | 
					        return result;
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -31919,6 +31921,15 @@ function getSource(settings) {
 | 
				
			||||||
                yield git.fetch(refSpec, settings.fetchDepth);
 | 
					                yield git.fetch(refSpec, settings.fetchDepth);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            core.endGroup();
 | 
					            core.endGroup();
 | 
				
			||||||
 | 
					            if (settings.longpaths) {
 | 
				
			||||||
 | 
					                core.startGroup('Setting core.longpaths to true');
 | 
				
			||||||
 | 
					                yield git
 | 
				
			||||||
 | 
					                    .config('core.longpaths', 'true', false, false)
 | 
				
			||||||
 | 
					                    .catch(error => {
 | 
				
			||||||
 | 
					                    core.warning(`Failed to set core.longpaths with error: ${error}`);
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					                core.endGroup();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            // Checkout info
 | 
					            // Checkout info
 | 
				
			||||||
            core.startGroup('Determining the checkout info');
 | 
					            core.startGroup('Determining the checkout info');
 | 
				
			||||||
            const checkoutInfo = yield refHelper.getCheckoutInfo(git, settings.ref, settings.commit);
 | 
					            const checkoutInfo = yield refHelper.getCheckoutInfo(git, settings.ref, settings.commit);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -174,6 +174,18 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    core.endGroup()
 | 
					    core.endGroup()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (settings.longpaths) {
 | 
				
			||||||
 | 
					      core.startGroup('Setting core.longpaths to true')
 | 
				
			||||||
 | 
					      await git
 | 
				
			||||||
 | 
					        .config('core.longpaths', 'true', false, false)
 | 
				
			||||||
 | 
					        .catch(error => {
 | 
				
			||||||
 | 
					          core.warning(
 | 
				
			||||||
 | 
					            `Failed to set core.longpaths with error: ${error}`
 | 
				
			||||||
 | 
					          )
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					      core.endGroup()
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Checkout info
 | 
					    // Checkout info
 | 
				
			||||||
    core.startGroup('Determining the checkout info')
 | 
					    core.startGroup('Determining the checkout info')
 | 
				
			||||||
    const checkoutInfo = await refHelper.getCheckoutInfo(
 | 
					    const checkoutInfo = await refHelper.getCheckoutInfo(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -98,4 +98,9 @@ export interface IGitSourceSettings {
 | 
				
			||||||
   * User override on the GitHub Server/Host URL that hosts the repository to be cloned
 | 
					   * User override on the GitHub Server/Host URL that hosts the repository to be cloned
 | 
				
			||||||
   */
 | 
					   */
 | 
				
			||||||
  githubServerUrl: string | undefined
 | 
					  githubServerUrl: string | undefined
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * Indicates wheter to set core.longpaths in the git config
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  longpaths: boolean
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -132,5 +132,8 @@ export async function getInputs(): Promise<IGitSourceSettings> {
 | 
				
			||||||
  result.githubServerUrl = core.getInput('github-server-url')
 | 
					  result.githubServerUrl = core.getInput('github-server-url')
 | 
				
			||||||
  core.debug(`GitHub Host URL = ${result.githubServerUrl}`)
 | 
					  core.debug(`GitHub Host URL = ${result.githubServerUrl}`)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  // config
 | 
				
			||||||
 | 
					  result.longpaths = core.getInput('long-paths').toUpperCase() == 'TRUE'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return result
 | 
					  return result
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user