From ec46ec6a4af7c72bdd3cac648d6de8ccec398ff5 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Wed, 12 Jun 2019 16:14:44 +0200 Subject: [PATCH] fix(gitFs): catch more git errors --- lib/workers/repository/error.js | 12 ++++++++++-- test/workers/repository/error.spec.js | 9 ++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/workers/repository/error.js b/lib/workers/repository/error.js index f26634b75f..050bee863a 100644 --- a/lib/workers/repository/error.js +++ b/lib/workers/repository/error.js @@ -121,8 +121,16 @@ async function handleError(config, err) { return err.message; } if (err.message.includes('The requested URL returned error: 5')) { - logger.debug({ err }, 'git 5xx error'); - logger.warn('Git error - aborting'); + logger.warn({ err }, 'Git error - aborting'); + delete config.branchList; // eslint-disable-line no-param-reassign + // rewrite this error + return 'platform-failure'; + } + if ( + err.message.includes('The remote end hung up unexpectedly') || + err.message.includes('access denied or repository not exported') + ) { + logger.warn({ err }, 'Git error - aborting'); delete config.branchList; // eslint-disable-line no-param-reassign // rewrite this error return 'platform-failure'; diff --git a/test/workers/repository/error.spec.js b/test/workers/repository/error.spec.js index 24f0b56a64..b0eff479f0 100644 --- a/test/workers/repository/error.spec.js +++ b/test/workers/repository/error.spec.js @@ -41,13 +41,20 @@ describe('workers/repository/error', () => { expect(res).toEqual(err); }); }); - it('rewrites git error', async () => { + it('rewrites git 5xx error', async () => { const gitError = new Error( "fatal: unable to access 'https://**redacted**@gitlab.com/learnox/learnox.git/': The requested URL returned error: 500\n" ); const res = await handleError(config, gitError); expect(res).toEqual('platform-failure'); }); + it('rewrites git remote error', async () => { + const gitError = new Error( + 'fatal: remote error: access denied or repository not exported: /b/nw/bd/27/47/159945428/108610112.git\n' + ); + const res = await handleError(config, gitError); + expect(res).toEqual('platform-failure'); + }); it('handles unknown error', async () => { const res = await handleError(config, new Error('abcdefg')); expect(res).toEqual('unknown-error'); -- GitLab