diff --git a/lib/workers/repository/onboarding/branch/check.js b/lib/workers/repository/onboarding/branch/check.js index aa5c5d2fe97c48d61839ff656533c037db88ad51..702432b3176bc811185ba9f15d2d899ba4c6294d 100644 --- a/lib/workers/repository/onboarding/branch/check.js +++ b/lib/workers/repository/onboarding/branch/check.js @@ -1,14 +1,25 @@ -const findFile = async (config, fileName) => { - logger.debug('findFile()'); - logger.trace({ config }); +const findFile = async fileName => { + logger.debug(`findFile(${fileName})`); const fileList = await platform.getFileList(); return fileList.includes(fileName); }; -const renovateJsonExists = async config => - (await findFile(config, 'renovate.json')) || - (await findFile(config, '.renovaterc')) || - findFile(config, '.renovaterc.json'); +const renovateJsonExists = async () => + (await findFile('renovate.json')) || + (await findFile('.renovaterc')) || + findFile('.renovaterc.json'); + +const packageJsonRenovateExists = async () => { + try { + const pJson = JSON.parse(await platform.getFile('package.json')); + if (pJson.renovate) { + return true; + } + } catch (err) { + // Do nothing + } + return false; +}; const closedPrExists = config => platform.findPr( @@ -23,11 +34,15 @@ const isOnboarded = async config => { if (config.onboarding === false) { return true; } - if (await renovateJsonExists(config)) { + if (await renovateJsonExists()) { logger.debug('renovate.json exists'); return true; } logger.debug('renovate.json not found'); + if (await packageJsonRenovateExists()) { + logger.debug('package.json contains renovate config'); + return true; + } if (await closedPrExists(config)) { logger.debug('Found closed onboarding PR'); return true; diff --git a/test/workers/repository/onboarding/branch/index.spec.js b/test/workers/repository/onboarding/branch/index.spec.js index a1c881513c5dac6ba366c39098d2dc89822c0440..4131102328407c0fff5bb9b324669437fc3df4e4 100644 --- a/test/workers/repository/onboarding/branch/index.spec.js +++ b/test/workers/repository/onboarding/branch/index.spec.js @@ -44,6 +44,12 @@ describe('workers/repository/onboarding/branch', () => { const res = await checkOnboardingBranch(config); expect(res.repoIsOnboarded).toBe(true); }); + it('detects repo is onboarded via package.json config', async () => { + platform.getFileList.mockReturnValueOnce(['package.json']); + platform.getFile.mockReturnValueOnce('{"renovate":{}}'); + const res = await checkOnboardingBranch(config); + expect(res.repoIsOnboarded).toBe(true); + }); it('detects repo is onboarded via PR', async () => { platform.findPr.mockReturnValue(true); const res = await checkOnboardingBranch(config);