From ac7d8ea11271073f56126ed37a82b84abf9df55a Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Sun, 25 Oct 2020 07:49:34 +0100
Subject: [PATCH] fix: resolve repoConfig.extends with repo config (#7541)

---
 lib/workers/repository/init/config.spec.ts |  1 +
 lib/workers/repository/init/config.ts      | 14 ++++++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/lib/workers/repository/init/config.spec.ts b/lib/workers/repository/init/config.spec.ts
index d5bb81a07a..b89fdd4567 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 7d907e83d2..57d2a41360 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;
-- 
GitLab