From 6a48c03b3de363be8b972becfea575dd35dc0c96 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Wed, 17 Oct 2018 12:19:34 +0200
Subject: [PATCH] fix: massage empty renovate config to {} (#2663)

---
 lib/platform/github/storage.js        | 10 ++++++++--
 lib/workers/repository/init/config.js |  8 ++++++--
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/lib/platform/github/storage.js b/lib/platform/github/storage.js
index a257c1cb67..cfe0203537 100644
--- a/lib/platform/github/storage.js
+++ b/lib/platform/github/storage.js
@@ -248,8 +248,14 @@ class Storage {
           throw error;
         }
       }
-      if (res && res.body.content) {
-        return Buffer.from(res.body.content, 'base64').toString();
+      if (res && res.body) {
+        if (res.body.content) {
+          if (res.body.content.length) {
+            return Buffer.from(res.body.content, 'base64').toString();
+          }
+          // istanbul ignore next
+          return '';
+        }
       }
       return null;
     }
diff --git a/lib/workers/repository/init/config.js b/lib/workers/repository/init/config.js
index df4d51d942..7e1bfec15e 100644
--- a/lib/workers/repository/init/config.js
+++ b/lib/workers/repository/init/config.js
@@ -57,12 +57,16 @@ async function mergeRenovateConfig(config) {
     renovateJson = JSON.parse(await platform.getFile('package.json')).renovate;
     logger.info({ config: renovateJson }, 'package.json>renovate config');
   } else {
-    const renovateConfig = await platform.getFile(configFile);
+    let renovateConfig = await platform.getFile(configFile);
     // istanbul ignore if
-    if (!renovateConfig) {
+    if (renovateConfig === null) {
       logger.warn('Fetching renovate config returns null');
       throw new Error('registry-failure');
     }
+    // istanbul ignore if
+    if (!renovateConfig.length) {
+      renovateConfig = '{}';
+    }
     let allowDuplicateKeys = true;
     let jsonValidationError = jsonValidator.validate(
       renovateConfig,
-- 
GitLab