From 4a71b5bad6c0731ca5eaa14b61b4bbbd3604e575 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Wed, 12 Jun 2019 10:49:21 +0200 Subject: [PATCH] fix(gitFs): rewrite git 5xx errors to platform-failure --- lib/workers/repository/error.js | 10 ++++++++++ test/workers/repository/error.spec.js | 7 +++++++ 2 files changed, 17 insertions(+) diff --git a/lib/workers/repository/error.js b/lib/workers/repository/error.js index 660b1a26e6..d646012dd5 100644 --- a/lib/workers/repository/error.js +++ b/lib/workers/repository/error.js @@ -120,6 +120,16 @@ async function handleError(config, err) { delete config.branchList; // eslint-disable-line no-param-reassign return err.message; } + if ( + err.message.includes('unable to access') && + err.message.includes('The requested URL returned error: 5') + ) { + logger.debug({ err }, 'git 5xx error'); + logger.warn('Git error - aborting'); + delete config.branchList; // eslint-disable-line no-param-reassign + // rewrite this error + return 'platform-failure'; + } // Swallow this error so that other repositories can be processed logger.error({ err }, `Repository has unknown error`); // delete branchList to avoid cleaning up branches diff --git a/test/workers/repository/error.spec.js b/test/workers/repository/error.spec.js index 316f55ec2f..24f0b56a64 100644 --- a/test/workers/repository/error.spec.js +++ b/test/workers/repository/error.spec.js @@ -41,6 +41,13 @@ describe('workers/repository/error', () => { expect(res).toEqual(err); }); }); + it('rewrites git 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('handles unknown error', async () => { const res = await handleError(config, new Error('abcdefg')); expect(res).toEqual('unknown-error'); -- GitLab