Support fetching without the --progress option (#1067)
Setting the `show-progress` option to false in the `with` section of the workflow step will cause git fetch to run without `--progress`. The motivation is to be able to suppress the noisy progress status output which adds many hundreds of "remote: Counting objects: 85% (386/453)" and similar lines in the workflow log. This should be sufficient to resolve #894 and its older friends, though the solution is different to the one proposed there because it doesn't use the --quiet flag. IIUC git doesn't show the progress status by default since the output is not a terminal, so that's why removing the --progress option is all that's needed. Adding the --quiet flag doesn't make a lot of difference once the --progress flag is removed, and actually I think using --quiet would suppress some other more useful output that would be better left visible. Signed-off-by: Simon Baird <sbaird@redhat.com>
This commit is contained in:
		@@ -34,6 +34,7 @@ export interface IGitCommandManager {
 | 
			
		||||
      filter?: string
 | 
			
		||||
      fetchDepth?: number
 | 
			
		||||
      fetchTags?: boolean
 | 
			
		||||
      showProgress?: boolean
 | 
			
		||||
    }
 | 
			
		||||
  ): Promise<void>
 | 
			
		||||
  getDefaultBranch(repositoryUrl: string): Promise<string>
 | 
			
		||||
@@ -241,14 +242,22 @@ class GitCommandManager {
 | 
			
		||||
 | 
			
		||||
  async fetch(
 | 
			
		||||
    refSpec: string[],
 | 
			
		||||
    options: {filter?: string; fetchDepth?: number; fetchTags?: boolean}
 | 
			
		||||
    options: {
 | 
			
		||||
      filter?: string
 | 
			
		||||
      fetchDepth?: number
 | 
			
		||||
      fetchTags?: boolean
 | 
			
		||||
      showProgress?: boolean
 | 
			
		||||
    }
 | 
			
		||||
  ): Promise<void> {
 | 
			
		||||
    const args = ['-c', 'protocol.version=2', 'fetch']
 | 
			
		||||
    if (!refSpec.some(x => x === refHelper.tagsRefSpec) && !options.fetchTags) {
 | 
			
		||||
      args.push('--no-tags')
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    args.push('--prune', '--progress', '--no-recurse-submodules')
 | 
			
		||||
    args.push('--prune', '--no-recurse-submodules')
 | 
			
		||||
    if (options.showProgress) {
 | 
			
		||||
      args.push('--progress')
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (options.filter) {
 | 
			
		||||
      args.push(`--filter=${options.filter}`)
 | 
			
		||||
 
 | 
			
		||||
@@ -157,6 +157,7 @@ export async function getSource(settings: IGitSourceSettings): Promise<void> {
 | 
			
		||||
      filter?: string
 | 
			
		||||
      fetchDepth?: number
 | 
			
		||||
      fetchTags?: boolean
 | 
			
		||||
      showProgress?: boolean
 | 
			
		||||
    } = {}
 | 
			
		||||
    if (settings.sparseCheckout) fetchOptions.filter = 'blob:none'
 | 
			
		||||
    if (settings.fetchDepth <= 0) {
 | 
			
		||||
 
 | 
			
		||||
@@ -49,6 +49,11 @@ export interface IGitSourceSettings {
 | 
			
		||||
   */
 | 
			
		||||
  fetchTags: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Indicates whether to use the --progress option when fetching
 | 
			
		||||
   */
 | 
			
		||||
  showProgress: boolean
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * Indicates whether to fetch LFS objects
 | 
			
		||||
   */
 | 
			
		||||
 
 | 
			
		||||
@@ -105,6 +105,11 @@ export async function getInputs(): Promise<IGitSourceSettings> {
 | 
			
		||||
    (core.getInput('fetch-tags') || 'false').toUpperCase() === 'TRUE'
 | 
			
		||||
  core.debug(`fetch tags = ${result.fetchTags}`)
 | 
			
		||||
 | 
			
		||||
  // Show fetch progress
 | 
			
		||||
  result.showProgress =
 | 
			
		||||
    (core.getInput('show-progress') || 'true').toUpperCase() === 'TRUE'
 | 
			
		||||
  core.debug(`show progress = ${result.showProgress}`)
 | 
			
		||||
 | 
			
		||||
  // LFS
 | 
			
		||||
  result.lfs = (core.getInput('lfs') || 'false').toUpperCase() === 'TRUE'
 | 
			
		||||
  core.debug(`lfs = ${result.lfs}`)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user