From b5db28b242e9c1f9362d40f99dfb9ed11aef528a Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Sun, 14 Jan 2018 18:58:49 +0100
Subject: [PATCH] fix: propagate registry-failure errors to avoid config
 validation warnings
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We don’t want npmjs 5xx errors to cause config validation Issues in repositories.

Closes #1388
---
 lib/config/presets.js                 | 5 +++++
 lib/workers/repository/error.js       | 4 ++++
 test/workers/repository/error.spec.js | 1 +
 3 files changed, 10 insertions(+)

diff --git a/lib/config/presets.js b/lib/config/presets.js
index 019350a9e0..57e1357f19 100644
--- a/lib/config/presets.js
+++ b/lib/config/presets.js
@@ -41,6 +41,11 @@ async function resolveConfigPresets(inputConfig, existingPresets = []) {
               error.validationError = `Preset package is missing a renovate-config entry (${preset})`;
             } else if (err.message === 'preset not found') {
               error.validationError = `Preset name not found within published preset config (${preset})`;
+            } else {
+              /* istanbul ignore next */ // eslint-disable-next-line
+              if (err.message === 'registry-failure') {
+                throw err;
+              }
             }
             logger.info('Throwing preset error');
             throw error;
diff --git a/lib/workers/repository/error.js b/lib/workers/repository/error.js
index cae471f597..67fa22c2aa 100644
--- a/lib/workers/repository/error.js
+++ b/lib/workers/repository/error.js
@@ -32,6 +32,10 @@ async function handleError(config, err) {
     logger.info({ error: err }, 'Repository has invalid config');
     await raiseConfigWarningIssue(config, err);
     return err.message;
+  } else if (err.message === 'registry-failure') {
+    logger.info('Registry error - skipping');
+    delete config.branchList; // eslint-disable-line no-param-reassign
+    return err.message;
   }
   // Swallow this error so that other repositories can be processed
   logger.error({ err }, `Repository has unknown error`);
diff --git a/test/workers/repository/error.spec.js b/test/workers/repository/error.spec.js
index 19c32a7e75..e651f3895c 100644
--- a/test/workers/repository/error.spec.js
+++ b/test/workers/repository/error.spec.js
@@ -17,6 +17,7 @@ describe('workers/repository/error', () => {
       'no-package-files',
       'loops>5',
       'config-validation',
+      'registry-failure',
       'archived',
       'not-found',
     ];
-- 
GitLab