mirror of
				https://code.forgejo.org/actions/checkout.git
				synced 2025-11-03 22:29:11 +00:00 
			
		
		
		
	Merge 2449f8bb0b into ff7abcd0c3
				
					
				
			This commit is contained in:
		
						commit
						957fb011a5
					
				
					 8 changed files with 57 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -121,6 +121,9 @@ Please refer to the [release page](https://github.com/actions/checkout/releases/
 | 
			
		|||
    # Default: 1
 | 
			
		||||
    fetch-depth: ''
 | 
			
		||||
 | 
			
		||||
    # Date like `2days` or `1970-01-01`. Fetch a history after the specified time.
 | 
			
		||||
    shallow-since: ''
 | 
			
		||||
 | 
			
		||||
    # Whether to fetch tags, even if fetch-depth > 0.
 | 
			
		||||
    # Default: false
 | 
			
		||||
    fetch-tags: ''
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -808,6 +808,7 @@ async function setup(testName: string): Promise<void> {
 | 
			
		|||
    sparseCheckout: [],
 | 
			
		||||
    sparseCheckoutConeMode: true,
 | 
			
		||||
    fetchDepth: 1,
 | 
			
		||||
    shallowSince: '',
 | 
			
		||||
    fetchTags: false,
 | 
			
		||||
    showProgress: true,
 | 
			
		||||
    lfs: false,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -74,6 +74,8 @@ inputs:
 | 
			
		|||
  fetch-depth:
 | 
			
		||||
    description: 'Number of commits to fetch. 0 indicates all history for all branches and tags.'
 | 
			
		||||
    default: 1
 | 
			
		||||
  shallow-since:
 | 
			
		||||
    description: 'Date like `2days` or `1970-01-01`. Fetch a history after the specified time.'
 | 
			
		||||
  fetch-tags:
 | 
			
		||||
    description: 'Whether to fetch tags, even if fetch-depth > 0.'
 | 
			
		||||
    default: false
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -72,6 +72,8 @@ We want to take this opportunity to make behavioral changes, from v1. This docum
 | 
			
		|||
  fetch-depth:
 | 
			
		||||
    description: 'Number of commits to fetch. 0 indicates all history for all tags and branches.'
 | 
			
		||||
    default: 1
 | 
			
		||||
  shallow-since:
 | 
			
		||||
    description: 'Date like `2days` or `1970-01-01`. Fetch a history after the specified time.'
 | 
			
		||||
  lfs:
 | 
			
		||||
    description: 'Whether to download Git-LFS files'
 | 
			
		||||
    default: false
 | 
			
		||||
| 
						 | 
				
			
			@ -155,7 +157,7 @@ Fetch only the SHA being built and set depth=1. This significantly reduces the f
 | 
			
		|||
 | 
			
		||||
If a SHA isn't available (e.g. multi repo), then fetch only the specified ref with depth=1.
 | 
			
		||||
 | 
			
		||||
The input `fetch-depth` can be used to control the depth.
 | 
			
		||||
The input `fetch-depth` and `shallow-since` can be used to control the depth.
 | 
			
		||||
 | 
			
		||||
Note:
 | 
			
		||||
- Fetching a single commit is supported by Git wire protocol version 2. The git client uses protocol version 0 by default. The desired protocol version can be overridden in the git config or on the fetch command line invocation (`-c protocol.version=2`). We will override on the fetch command line, for transparency.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										14
									
								
								dist/index.js
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								dist/index.js
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -663,6 +663,9 @@ class GitCommandManager {
 | 
			
		|||
            if (options.filter) {
 | 
			
		||||
                args.push(`--filter=${options.filter}`);
 | 
			
		||||
            }
 | 
			
		||||
            if (options.shallowSince) {
 | 
			
		||||
                args.push(`--shallow-since=${options.shallowSince}`);
 | 
			
		||||
            }
 | 
			
		||||
            if (options.fetchDepth && options.fetchDepth > 0) {
 | 
			
		||||
                args.push(`--depth=${options.fetchDepth}`);
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -793,13 +796,16 @@ class GitCommandManager {
 | 
			
		|||
            yield this.execGit(args);
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
    submoduleUpdate(fetchDepth, recursive) {
 | 
			
		||||
    submoduleUpdate(fetchDepth, recursive, shallowSince) {
 | 
			
		||||
        return __awaiter(this, void 0, void 0, function* () {
 | 
			
		||||
            const args = ['-c', 'protocol.version=2'];
 | 
			
		||||
            args.push('submodule', 'update', '--init', '--force');
 | 
			
		||||
            if (fetchDepth > 0) {
 | 
			
		||||
                args.push(`--depth=${fetchDepth}`);
 | 
			
		||||
            }
 | 
			
		||||
            if (shallowSince) {
 | 
			
		||||
                args.push(`--shallow-since=${shallowSince}`);
 | 
			
		||||
            }
 | 
			
		||||
            if (recursive) {
 | 
			
		||||
                args.push('--recursive');
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -1787,6 +1793,12 @@ function getInputs() {
 | 
			
		|||
            result.fetchDepth = 0;
 | 
			
		||||
        }
 | 
			
		||||
        core.debug(`fetch depth = ${result.fetchDepth}`);
 | 
			
		||||
        // Shallow since
 | 
			
		||||
        if (core.getInput('fetch-depth') && core.getInput('shallow-since')) {
 | 
			
		||||
            throw new Error('`fetch-depth` and `shallow-since` cannot be used at the same time');
 | 
			
		||||
        }
 | 
			
		||||
        result.shallowSince = core.getInput('shallow-since');
 | 
			
		||||
        core.debug(`shallow since = ${result.shallowSince}`);
 | 
			
		||||
        // Fetch tags
 | 
			
		||||
        result.fetchTags =
 | 
			
		||||
            (core.getInput('fetch-tags') || 'false').toUpperCase() === 'TRUE';
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,6 +36,7 @@ export interface IGitCommandManager {
 | 
			
		|||
    options: {
 | 
			
		||||
      filter?: string
 | 
			
		||||
      fetchDepth?: number
 | 
			
		||||
      shallowSince?: string
 | 
			
		||||
      fetchTags?: boolean
 | 
			
		||||
      showProgress?: boolean
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -54,8 +55,12 @@ export interface IGitCommandManager {
 | 
			
		|||
  shaExists(sha: string): Promise<boolean>
 | 
			
		||||
  submoduleForeach(command: string, recursive: boolean): Promise<string>
 | 
			
		||||
  submoduleSync(recursive: boolean): Promise<void>
 | 
			
		||||
  submoduleUpdate(fetchDepth: number, recursive: boolean): Promise<void>
 | 
			
		||||
  submoduleStatus(): Promise<boolean>
 | 
			
		||||
  submoduleUpdate(
 | 
			
		||||
    fetchDepth: number,
 | 
			
		||||
    recursive: boolean,
 | 
			
		||||
    shallowSince?: string
 | 
			
		||||
  ): Promise<void>
 | 
			
		||||
  tagExists(pattern: string): Promise<boolean>
 | 
			
		||||
  tryClean(): Promise<boolean>
 | 
			
		||||
  tryConfigUnset(configKey: string, globalConfig?: boolean): Promise<boolean>
 | 
			
		||||
| 
						 | 
				
			
			@ -256,6 +261,7 @@ class GitCommandManager {
 | 
			
		|||
    options: {
 | 
			
		||||
      filter?: string
 | 
			
		||||
      fetchDepth?: number
 | 
			
		||||
      shallowSince?: string
 | 
			
		||||
      fetchTags?: boolean
 | 
			
		||||
      showProgress?: boolean
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -274,6 +280,10 @@ class GitCommandManager {
 | 
			
		|||
      args.push(`--filter=${options.filter}`)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (options.shallowSince) {
 | 
			
		||||
      args.push(`--shallow-since=${options.shallowSince}`)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (options.fetchDepth && options.fetchDepth > 0) {
 | 
			
		||||
      args.push(`--depth=${options.fetchDepth}`)
 | 
			
		||||
    } else if (
 | 
			
		||||
| 
						 | 
				
			
			@ -409,13 +419,21 @@ class GitCommandManager {
 | 
			
		|||
    await this.execGit(args)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async submoduleUpdate(fetchDepth: number, recursive: boolean): Promise<void> {
 | 
			
		||||
  async submoduleUpdate(
 | 
			
		||||
    fetchDepth: number,
 | 
			
		||||
    recursive: boolean,
 | 
			
		||||
    shallowSince?: string
 | 
			
		||||
  ): Promise<void> {
 | 
			
		||||
    const args = ['-c', 'protocol.version=2']
 | 
			
		||||
    args.push('submodule', 'update', '--init', '--force')
 | 
			
		||||
    if (fetchDepth > 0) {
 | 
			
		||||
      args.push(`--depth=${fetchDepth}`)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (shallowSince) {
 | 
			
		||||
      args.push(`--shallow-since=${shallowSince}`)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (recursive) {
 | 
			
		||||
      args.push('--recursive')
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -50,7 +50,12 @@ export interface IGitSourceSettings {
 | 
			
		|||
  fetchDepth: number
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Fetch tags, even if fetchDepth > 0 (default: false)
 | 
			
		||||
   * Deepen or shorten the history of a shallow repository to include all reachable commits after
 | 
			
		||||
   */
 | 
			
		||||
  shallowSince: string
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   *  Fetch tags, even if fetchDepth > 0 (default: false)
 | 
			
		||||
   */
 | 
			
		||||
  fetchTags: boolean
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -108,6 +108,15 @@ export async function getInputs(): Promise<IGitSourceSettings> {
 | 
			
		|||
  }
 | 
			
		||||
  core.debug(`fetch depth = ${result.fetchDepth}`)
 | 
			
		||||
 | 
			
		||||
  // Shallow since
 | 
			
		||||
  if (core.getInput('fetch-depth') && core.getInput('shallow-since')) {
 | 
			
		||||
    throw new Error(
 | 
			
		||||
      '`fetch-depth` and `shallow-since` cannot be used at the same time'
 | 
			
		||||
    )
 | 
			
		||||
  }
 | 
			
		||||
  result.shallowSince = core.getInput('shallow-since')
 | 
			
		||||
  core.debug(`shallow since = ${result.shallowSince}`)
 | 
			
		||||
 | 
			
		||||
  // Fetch tags
 | 
			
		||||
  result.fetchTags =
 | 
			
		||||
    (core.getInput('fetch-tags') || 'false').toUpperCase() === 'TRUE'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue