diff options
| author | Simon Baird <simon.baird@gmail.com> | 2023-09-01 14:19:18 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-01 14:19:18 -0400 |
| commit | 8063d6c21727e43c799971dba8b62b4879d5e15a (patch) | |
| tree | 2ef150c7a865cab2c0f48cbfe9b886f2fd5dc6aa /__test__ | |
| parent | c5566a390f859765ee924e0f158d3fdeb28f058c (diff) | |
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>
Diffstat (limited to '__test__')
| -rw-r--r-- | __test__/git-auth-helper.test.ts | 1 | ||||
| -rw-r--r-- | __test__/git-command-manager.test.ts | 120 | ||||
| -rw-r--r-- | __test__/input-helper.test.ts | 1 |
3 files changed, 118 insertions, 4 deletions
diff --git a/__test__/git-auth-helper.test.ts b/__test__/git-auth-helper.test.ts index 8e580c1..a0cff63 100644 --- a/__test__/git-auth-helper.test.ts +++ b/__test__/git-auth-helper.test.ts @@ -806,6 +806,7 @@ async function setup(testName: string): Promise<void> { sparseCheckoutConeMode: true, fetchDepth: 1, fetchTags: false, + showProgress: true, lfs: false, submodules: false, nestedSubmodules: false, diff --git a/__test__/git-command-manager.test.ts b/__test__/git-command-manager.test.ts index 16c348f..cea73d4 100644 --- a/__test__/git-command-manager.test.ts +++ b/__test__/git-command-manager.test.ts @@ -135,7 +135,6 @@ describe('Test fetchDepth and fetchTags options', () => { 'protocol.version=2', 'fetch', '--prune', - '--progress', '--no-recurse-submodules', '--filter=filterValue', 'origin', @@ -174,7 +173,6 @@ describe('Test fetchDepth and fetchTags options', () => { 'fetch', '--no-tags', '--prune', - '--progress', '--no-recurse-submodules', '--filter=filterValue', 'origin', @@ -213,7 +211,6 @@ describe('Test fetchDepth and fetchTags options', () => { 'fetch', '--no-tags', '--prune', - '--progress', '--no-recurse-submodules', '--filter=filterValue', '--depth=1', @@ -252,7 +249,6 @@ describe('Test fetchDepth and fetchTags options', () => { 'protocol.version=2', 'fetch', '--prune', - '--progress', '--no-recurse-submodules', '--filter=filterValue', '--depth=1', @@ -263,4 +259,120 @@ describe('Test fetchDepth and fetchTags options', () => { expect.any(Object) ) }) + + it('should call execGit with the correct arguments when showProgress is true', async () => { + jest.spyOn(exec, 'exec').mockImplementation(mockExec) + + const workingDirectory = 'test' + const lfs = false + const doSparseCheckout = false + git = await commandManager.createCommandManager( + workingDirectory, + lfs, + doSparseCheckout + ) + const refSpec = ['refspec1', 'refspec2'] + const options = { + filter: 'filterValue', + showProgress: true + } + + await git.fetch(refSpec, options) + + expect(mockExec).toHaveBeenCalledWith( + expect.any(String), + [ + '-c', + 'protocol.version=2', + 'fetch', + '--no-tags', + '--prune', + '--no-recurse-submodules', + '--progress', + '--filter=filterValue', + 'origin', + 'refspec1', + 'refspec2' + ], + expect.any(Object) + ) + }) + + it('should call execGit with the correct arguments when fetchDepth is 42 and showProgress is true', async () => { + jest.spyOn(exec, 'exec').mockImplementation(mockExec) + + const workingDirectory = 'test' + const lfs = false + const doSparseCheckout = false + git = await commandManager.createCommandManager( + workingDirectory, + lfs, + doSparseCheckout + ) + const refSpec = ['refspec1', 'refspec2'] + const options = { + filter: 'filterValue', + fetchDepth: 42, + showProgress: true + } + + await git.fetch(refSpec, options) + + expect(mockExec).toHaveBeenCalledWith( + expect.any(String), + [ + '-c', + 'protocol.version=2', + 'fetch', + '--no-tags', + '--prune', + '--no-recurse-submodules', + '--progress', + '--filter=filterValue', + '--depth=42', + 'origin', + 'refspec1', + 'refspec2' + ], + expect.any(Object) + ) + }) + + it('should call execGit with the correct arguments when fetchTags is true and showProgress is true', async () => { + jest.spyOn(exec, 'exec').mockImplementation(mockExec) + + const workingDirectory = 'test' + const lfs = false + const doSparseCheckout = false + git = await commandManager.createCommandManager( + workingDirectory, + lfs, + doSparseCheckout + ) + const refSpec = ['refspec1', 'refspec2'] + const options = { + filter: 'filterValue', + fetchTags: true, + showProgress: true + } + + await git.fetch(refSpec, options) + + expect(mockExec).toHaveBeenCalledWith( + expect.any(String), + [ + '-c', + 'protocol.version=2', + 'fetch', + '--prune', + '--no-recurse-submodules', + '--progress', + '--filter=filterValue', + 'origin', + 'refspec1', + 'refspec2' + ], + expect.any(Object) + ) + }) }) diff --git a/__test__/input-helper.test.ts b/__test__/input-helper.test.ts index aa58415..21932ca 100644 --- a/__test__/input-helper.test.ts +++ b/__test__/input-helper.test.ts @@ -83,6 +83,7 @@ describe('input-helper tests', () => { expect(settings.sparseCheckoutConeMode).toBe(true) expect(settings.fetchDepth).toBe(1) expect(settings.fetchTags).toBe(false) + expect(settings.showProgress).toBe(true) expect(settings.lfs).toBe(false) expect(settings.ref).toBe('refs/heads/some-ref') expect(settings.repositoryName).toBe('some-repo') |
