From b6af8188d13bd6469710cd69caf4a9e920fafe33 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Wed, 19 Aug 2020 06:27:48 +0200 Subject: [PATCH] refactor: initRepo (#7022) --- lib/util/cache/repository/index.ts | 4 +-- lib/workers/repository/init/config.ts | 2 +- lib/workers/repository/init/index.spec.ts | 13 ++++++---- lib/workers/repository/init/index.ts | 31 +++++++++++++++-------- 4 files changed, 32 insertions(+), 18 deletions(-) diff --git a/lib/util/cache/repository/index.ts b/lib/util/cache/repository/index.ts index 6301ce8927..81c07da08e 100644 --- a/lib/util/cache/repository/index.ts +++ b/lib/util/cache/repository/index.ts @@ -13,8 +13,8 @@ export interface BaseBranchCache { export interface Cache { repository?: string; init?: { - configFile: string; - contents: RenovateConfig; + configFile?: string; + configFileContents?: RenovateConfig; }; scan?: Record<string, BaseBranchCache>; } diff --git a/lib/workers/repository/init/config.ts b/lib/workers/repository/init/config.ts index fea1aec42d..c15916cf44 100644 --- a/lib/workers/repository/init/config.ts +++ b/lib/workers/repository/init/config.ts @@ -126,7 +126,7 @@ export async function mergeRenovateConfig( const cache = getCache(); cache.init = { configFile, - contents: clone(renovateJson), + configFileContents: clone(renovateJson), }; const migratedConfig = await migrateAndValidate(config, renovateJson); if (migratedConfig.errors.length) { diff --git a/lib/workers/repository/init/index.spec.ts b/lib/workers/repository/init/index.spec.ts index bb3a737e15..54f5ff984e 100644 --- a/lib/workers/repository/init/index.spec.ts +++ b/lib/workers/repository/init/index.spec.ts @@ -1,23 +1,26 @@ import { mocked } from '../../../../test/util'; +import * as _onboarding from '../onboarding/branch'; import * as _apis from './apis'; import * as _config from './config'; import { initRepo } from '.'; jest.mock('../../../util/git'); -jest.mock('../../../workers/repository/onboarding/branch'); -jest.mock('../../../workers/repository/configured'); -jest.mock('../../../workers/repository/init/apis'); -jest.mock('../../../workers/repository/init/config'); -jest.mock('../../../workers/repository/init/semantic'); +jest.mock('../onboarding/branch'); +jest.mock('../configured'); +jest.mock('../init/apis'); +jest.mock('../init/config'); +jest.mock('../init/semantic'); const apis = mocked(_apis); const config = mocked(_config); +const onboarding = mocked(_onboarding); describe('workers/repository/init', () => { describe('initRepo', () => { it('runs', async () => { apis.initApis.mockResolvedValue({} as never); config.mergeRenovateConfig.mockResolvedValueOnce({}); + onboarding.checkOnboardingBranch.mockResolvedValueOnce({}); const renovateConfig = await initRepo({}); expect(renovateConfig).toMatchSnapshot(); }); diff --git a/lib/workers/repository/init/index.ts b/lib/workers/repository/init/index.ts index 876f4208e3..3f164db11e 100644 --- a/lib/workers/repository/init/index.ts +++ b/lib/workers/repository/init/index.ts @@ -11,21 +11,32 @@ import { mergeRenovateConfig } from './config'; import { detectSemanticCommits } from './semantic'; import { detectVulnerabilityAlerts } from './vulnerability'; -export async function initRepo(input: RenovateConfig): Promise<RenovateConfig> { +function initializeConfig(config: RenovateConfig): RenovateConfig { + return { ...config, errors: [], warnings: [], branchList: [] }; +} + +async function initializeCaches(config: RenovateConfig): Promise<void> { memCache.init(); - await repositoryCache.initialize(input); - let config: RenovateConfig = { - ...input, - errors: [], - warnings: [], - branchList: [], - }; - config = await initApis(config); + await repositoryCache.initialize(config); +} + +async function getRepoConfig(config_: RenovateConfig): Promise<RenovateConfig> { + let config = { ...config_ }; config.semanticCommits = await detectSemanticCommits(config); config.baseBranch = config.defaultBranch; config.baseBranchSha = await platform.setBaseBranch(config.baseBranch); - config = await checkOnboardingBranch(config); config = await mergeRenovateConfig(config); + return config; +} + +export async function initRepo( + config_: RenovateConfig +): Promise<RenovateConfig> { + let config: RenovateConfig = initializeConfig(config_); + await initializeCaches(config); + config = await initApis(config); + config = await getRepoConfig(config); + config = await checkOnboardingBranch(config); checkIfConfigured(config); await setBranchPrefix(config.branchPrefix); config = await detectVulnerabilityAlerts(config); -- GitLab