diff --git a/lib/workers/repository/init/config.spec.ts b/lib/workers/repository/init/config.spec.ts index d5bb81a07a7bd7f33e0f710936797f7f0b035db9..b89fdd4567f14567540e2b863aa0c05954080d0a 100644 --- a/lib/workers/repository/init/config.spec.ts +++ b/lib/workers/repository/init/config.spec.ts @@ -121,6 +121,7 @@ describe('workers/repository/init/config', () => { warnings: [], errors: [], }); + config.extends = [':automergeDisabled']; expect(await mergeRenovateConfig(config)).not.toBeUndefined(); }); }); diff --git a/lib/workers/repository/init/config.ts b/lib/workers/repository/init/config.ts index 7d907e83d22defd4608544df2d0c63c2103b9598..57d2a413602d5cf5a50a0bc5e89bc730d37deba0 100644 --- a/lib/workers/repository/init/config.ts +++ b/lib/workers/repository/init/config.ts @@ -1,4 +1,5 @@ import path from 'path'; +import is from '@sindresorhus/is'; import jsonValidator from 'json-dup-key-validator'; import JSON5 from 'json5'; @@ -149,11 +150,16 @@ export async function mergeRenovateConfig( ): Promise<RenovateConfig> { let returnConfig = { ...config }; const repoConfig = await detectRepoFileConfig(); + const configFileParsed = repoConfig?.configFileParsed || {}; + if (is.nonEmptyArray(returnConfig.extends)) { + configFileParsed.extends = [ + ...returnConfig.extends, + ...(configFileParsed.extends || []), + ]; + delete returnConfig.extends; + } checkForRepoConfigError(repoConfig); - const migratedConfig = await migrateAndValidate( - config, - repoConfig?.configFileParsed || {} - ); + const migratedConfig = await migrateAndValidate(config, configFileParsed); if (migratedConfig.errors.length) { const error = new Error(CONFIG_VALIDATION); error.configFile = repoConfig.configFileName;