From 87967b49456ed1ce363d2b254ecbbbfb8b3adb91 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@keylocation.sg>
Date: Thu, 29 Jun 2017 15:38:18 +0200
Subject: [PATCH] fix: Onboarding config should use repo config, not defaults
 (#386)

---
 lib/config/defaults.js                     | 12 ------------
 lib/config/index.js                        | 14 ++++++++++++++
 lib/workers/repository/apis.js             |  3 ++-
 lib/workers/repository/onboarding.js       |  8 ++++----
 test/workers/repository/onboarding.spec.js |  1 +
 5 files changed, 21 insertions(+), 17 deletions(-)

diff --git a/lib/config/defaults.js b/lib/config/defaults.js
index 9e58ceb894..171a08f25d 100644
--- a/lib/config/defaults.js
+++ b/lib/config/defaults.js
@@ -3,7 +3,6 @@ const configDefinitions = require('./definitions');
 module.exports = {
   getDefault,
   getConfig,
-  getOnboardingConfig,
 };
 
 const defaultValues = {
@@ -26,14 +25,3 @@ function getConfig() {
   });
   return config;
 }
-
-function getOnboardingConfig() {
-  const options = configDefinitions.getOptions();
-  const config = {};
-  options.forEach(option => {
-    if (option.level !== 'global' && option.onboarding !== false) {
-      config[option.name] = getDefault(option);
-    }
-  });
-  return config;
-}
diff --git a/lib/config/index.js b/lib/config/index.js
index cf1ed9312d..877f7cb980 100644
--- a/lib/config/index.js
+++ b/lib/config/index.js
@@ -14,6 +14,7 @@ const githubApp = require('./github-app');
 module.exports = {
   parseConfigs,
   filterConfig,
+  getOnboardingConfig,
 };
 
 async function parseConfigs(env, argv) {
@@ -134,3 +135,16 @@ function filterConfig(inputConfig, filterLevel) {
   }
   return outputConfig;
 }
+
+function getOnboardingConfig(repoConfig) {
+  const config = {};
+  for (const option of definitions.getOptions()) {
+    if (option.level !== 'global' && option.onboarding !== false) {
+      config[option.name] = repoConfig[option.name];
+    }
+  }
+  if (repoConfig.detectedPackageFiles) {
+    config.packageFiles = [];
+  }
+  return config;
+}
diff --git a/lib/workers/repository/apis.js b/lib/workers/repository/apis.js
index fbf5dad04a..f5a5bc51db 100644
--- a/lib/workers/repository/apis.js
+++ b/lib/workers/repository/apis.js
@@ -67,5 +67,6 @@ async function detectPackageFiles(config) {
   config.logger.trace({ config }, 'detectPackageFiles');
   const packageFiles = await config.api.findFilePaths('package.json');
   config.logger.debug(`Found ${packageFiles.length} package file(s)`);
-  return Object.assign({}, config, { packageFiles });
+  const detectedPackageFiles = true;
+  return Object.assign({}, config, { packageFiles, detectedPackageFiles });
 }
diff --git a/lib/workers/repository/onboarding.js b/lib/workers/repository/onboarding.js
index 67ee579f20..54b62d373c 100644
--- a/lib/workers/repository/onboarding.js
+++ b/lib/workers/repository/onboarding.js
@@ -1,7 +1,7 @@
 const handlebars = require('handlebars');
 const stringify = require('json-stringify-pretty-compact');
 
-const defaultsParser = require('../../config/defaults');
+const configParser = require('../../config');
 
 const onboardBranchName = 'renovate/configure';
 const onboardPrTitle = 'Configure Renovate';
@@ -13,14 +13,14 @@ module.exports = {
 };
 
 async function createBranch(config) {
-  const defaultConfig = defaultsParser.getOnboardingConfig();
-  const defaultConfigString = `${stringify(defaultConfig)}\n`;
+  const onboardingConfig = configParser.getOnboardingConfig(config);
+  const onboardingConfigString = `${stringify(onboardingConfig)}\n`;
   await config.api.commitFilesToBranch(
     onboardBranchName,
     [
       {
         name: 'renovate.json',
-        contents: defaultConfigString,
+        contents: onboardingConfigString,
       },
     ],
     'Add renovate.json'
diff --git a/test/workers/repository/onboarding.spec.js b/test/workers/repository/onboarding.spec.js
index 1b3868cb27..5fb92c60a6 100644
--- a/test/workers/repository/onboarding.spec.js
+++ b/test/workers/repository/onboarding.spec.js
@@ -96,6 +96,7 @@ If the default settings are all suitable for you, simply close this Pull Request
           findPr: jest.fn(),
         },
         logger,
+        detectedPackageFiles: true,
       };
     });
     it('returns true if onboarding is false', async () => {
-- 
GitLab