From 7e069f4adce758bef94fc31ea4db8984f3169da9 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Wed, 13 Oct 2021 16:59:44 +0200 Subject: [PATCH] fix(config): massage package.json>renovate string (#12150) --- lib/workers/repository/init/merge.spec.ts | 19 +++++++++++++++++++ lib/workers/repository/init/merge.ts | 4 ++++ 2 files changed, 23 insertions(+) diff --git a/lib/workers/repository/init/merge.spec.ts b/lib/workers/repository/init/merge.spec.ts index 2fb761c2b1..937ef64062 100644 --- a/lib/workers/repository/init/merge.spec.ts +++ b/lib/workers/repository/init/merge.spec.ts @@ -58,6 +58,25 @@ describe('workers/repository/init/merge', () => { expect(await detectRepoFileConfig()).toMatchSnapshot(); expect(await detectRepoFileConfig()).toMatchSnapshot(); }); + it('massages package.json renovate string', async () => { + git.getFileList.mockResolvedValue(['package.json']); + const pJson = JSON.stringify({ + name: 'something', + renovate: 'github>renovatebot/renovate', + }); + fs.readLocalFile.mockResolvedValue(pJson); + platform.getJsonFile.mockResolvedValueOnce(pJson); + expect(await detectRepoFileConfig()).toMatchInlineSnapshot(` + Object { + "configFileName": "package.json", + "configFileParsed": Object { + "extends": Array [ + "github>renovatebot/renovate", + ], + }, + } + `); + }); it('returns error if cannot parse', async () => { git.getFileList.mockResolvedValue(['package.json', 'renovate.json']); fs.readLocalFile.mockResolvedValue('cannot parse'); diff --git a/lib/workers/repository/init/merge.ts b/lib/workers/repository/init/merge.ts index 9d8d0d2430..a352e31bd1 100644 --- a/lib/workers/repository/init/merge.ts +++ b/lib/workers/repository/init/merge.ts @@ -68,6 +68,10 @@ export async function detectRepoFileConfig(): Promise<RepoFileConfig> { configFileParsed = JSON.parse( await readLocalFile('package.json', 'utf8') ).renovate; + if (is.string(configFileParsed)) { + logger.debug('Massaging string renovate config to extends array'); + configFileParsed = { extends: [configFileParsed] }; + } logger.debug({ config: configFileParsed }, 'package.json>renovate config'); } else { let rawFileContents = await readLocalFile(configFileName, 'utf8'); -- GitLab