From 0e65db65f046d0289d0dfa727a6a6c6a258bccf0 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Fri, 14 Feb 2020 09:59:52 +0100
Subject: [PATCH] =?UTF-8?q?fix(rubygems):=20don=E2=80=99t=20throw=20Dataso?=
 =?UTF-8?q?urceError=20for=20unknown?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 lib/datasource/rubygems/get.ts | 21 ++++++++-------------
 1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/lib/datasource/rubygems/get.ts b/lib/datasource/rubygems/get.ts
index 1445415b84..5eb953727c 100644
--- a/lib/datasource/rubygems/get.ts
+++ b/lib/datasource/rubygems/get.ts
@@ -4,7 +4,7 @@ import got from '../../util/got';
 import { maskToken } from '../../util/mask';
 import retriable from './retriable';
 import { UNAUTHORIZED, FORBIDDEN, NOT_FOUND } from './errors';
-import { DatasourceError, ReleaseResult } from '../common';
+import { ReleaseResult } from '../common';
 import { DATASOURCE_RUBYGEMS } from '../../constants/data-binary-source';
 
 const INFO_PATH = '/api/v1/gems';
@@ -12,7 +12,7 @@ const VERSIONS_PATH = '/api/v1/versions';
 
 // istanbul ignore next
 const processError = ({ err, ...rest }): null => {
-  const { statusCode, headers = {} } = err;
+  const { code, statusCode, headers = {} } = err;
   const data = {
     ...rest,
     err,
@@ -20,17 +20,12 @@ const processError = ({ err, ...rest }): null => {
     token: maskToken(headers.authorization) || 'none',
   };
 
-  switch (statusCode) {
-    case NOT_FOUND:
-      logger.info(data, 'RubyGems lookup failure: not found');
-      break;
-    case FORBIDDEN:
-    case UNAUTHORIZED:
-      logger.info(data, 'RubyGems lookup failure: authentication failed');
-      break;
-    default:
-      logger.debug(data, 'RubyGems lookup failure');
-      throw new DatasourceError(err);
+  if (code === 'ENOTFOUND' || statusCode === NOT_FOUND) {
+    logger.info(data, 'RubyGems lookup failure: not found');
+  } else if (statusCode === FORBIDDEN || statusCode === UNAUTHORIZED) {
+    logger.info(data, 'RubyGems lookup failure: authentication failed');
+  } else {
+    logger.info(data, 'RubyGems lookup failure: unknown reason');
   }
   return null;
 };
-- 
GitLab