From 2dfae8337d9c0825f2407aa207ef140403f00bc0 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Thu, 12 Apr 2018 14:01:57 +0200 Subject: [PATCH] refactor: enhance repository result details MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit renovateRepository now returns “res” - the result of the current renovation, and “status” - the overall status of the repository. --- lib/workers/repository/index.js | 28 ++++++++++++++++++- .../__snapshots__/index.spec.js.snap | 21 ++++++++++++-- test/workers/repository/index.spec.js | 4 +-- 3 files changed, 47 insertions(+), 6 deletions(-) diff --git a/lib/workers/repository/index.js b/lib/workers/repository/index.js index 07303cbdca..0c7e57ff74 100644 --- a/lib/workers/repository/index.js +++ b/lib/workers/repository/index.js @@ -21,6 +21,7 @@ async function renovateRepository(repoConfig) { logger.trace({ config }, 'renovateRepository()'); let commonConfig; let res; + let status; try { config = await initApis(config); config = await initRepo(config); @@ -93,5 +94,30 @@ async function renovateRepository(repoConfig) { 'Error pruning/cleaning repository' ); } - return res; + const disabledStatuses = [ + 'archived', + 'blocked', + 'disabled', + 'forbidden', + 'fork', + 'no-package-files', + 'not-found', + 'renamed', + 'uninitiated', + ]; + const errorStatuses = ['config-validation', 'error', 'unknown-error']; + // istanbul ignore next + if (disabledStatuses.includes(res)) { + status = 'disabled'; + } else if (errorStatuses.includes(res)) { + status = 'error'; + } else if (config.repoIsOnboarded) { + status = 'enabled'; + } else { + status = 'onboarding'; + if (res === 'onboarding') { + res = 'done'; + } + } + return { res, status }; } diff --git a/test/workers/repository/__snapshots__/index.spec.js.snap b/test/workers/repository/__snapshots__/index.spec.js.snap index 4f6c03c792..05596f40b3 100644 --- a/test/workers/repository/__snapshots__/index.spec.js.snap +++ b/test/workers/repository/__snapshots__/index.spec.js.snap @@ -1,6 +1,11 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`workers/repository renovateRepository() ensures onboarding pr 1`] = `"onboarding"`; +exports[`workers/repository renovateRepository() ensures onboarding pr 1`] = ` +Object { + "res": "done", + "status": "onboarding", +} +`; exports[`workers/repository renovateRepository() ensures onboarding pr 2`] = ` Array [ @@ -19,6 +24,16 @@ Array [ ] `; -exports[`workers/repository renovateRepository() handles baseBranches 1`] = `"onboarded"`; +exports[`workers/repository renovateRepository() handles baseBranches 1`] = ` +Object { + "res": "done", + "status": "enabled", +} +`; -exports[`workers/repository renovateRepository() writes 1`] = `"onboarded"`; +exports[`workers/repository renovateRepository() writes 1`] = ` +Object { + "res": "done", + "status": "enabled", +} +`; diff --git a/test/workers/repository/index.spec.js b/test/workers/repository/index.spec.js index 9fd95d8855..722675c5f5 100644 --- a/test/workers/repository/index.spec.js +++ b/test/workers/repository/index.spec.js @@ -30,7 +30,7 @@ describe('workers/repository', () => { repoIsOnboarded: true, branches: [{ type: 'minor' }, { type: 'pin' }], }); - writeUpdates.mockReturnValueOnce('onboarded'); + writeUpdates.mockReturnValueOnce('done'); const res = await renovateRepository(config, 'some-token'); expect(res).toMatchSnapshot(); }); @@ -64,7 +64,7 @@ describe('workers/repository', () => { repoIsOnboarded: true, branches: [], }); - writeUpdates.mockReturnValueOnce('onboarded'); + writeUpdates.mockReturnValueOnce('done'); const res = await renovateRepository(config, 'some-token'); expect(res).toMatchSnapshot(); }); -- GitLab