From 5565e4d79d9bebb363b2595f6a8e9bce526a9862 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Thu, 18 Oct 2018 05:52:49 +0200
Subject: [PATCH] =?UTF-8?q?refactor(packagist):=20don=E2=80=99t=20warn=20w?=
 =?UTF-8?q?hen=20404=20registry?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 lib/datasource/packagist.js       |  8 ++++++++
 test/datasource/packagist.spec.js | 13 +++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/lib/datasource/packagist.js b/lib/datasource/packagist.js
index b585bffcca..1be01e43d1 100644
--- a/lib/datasource/packagist.js
+++ b/lib/datasource/packagist.js
@@ -54,6 +54,14 @@ async function getRegistryMeta(regUrl) {
       logger.info({ regUrl }, 'Unauthorized Packagist repository');
       return null;
     }
+    if (
+      err.statusCode === 404 &&
+      err.url &&
+      err.url.endsWith('/packages.json')
+    ) {
+      logger.info({ regUrl }, 'Packagist repository not found');
+      return null;
+    }
     logger.warn({ err }, 'Packagist download error');
     return null;
   }
diff --git a/test/datasource/packagist.spec.js b/test/datasource/packagist.spec.js
index 72cda44922..329cb7c02c 100644
--- a/test/datasource/packagist.spec.js
+++ b/test/datasource/packagist.spec.js
@@ -84,6 +84,19 @@ describe('datasource/packagist', () => {
       );
       expect(res).toBeNull();
     });
+    it('handles not found registries', async () => {
+      got.mockImplementationOnce(() =>
+        Promise.reject({
+          statusCode: 404,
+          url: 'https://some.registry/packages.json',
+        })
+      );
+      const res = await datasource.getPkgReleases(
+        'pkg:packagist/vendor/package-name',
+        {}
+      );
+      expect(res).toBeNull();
+    });
     it('supports includes packages', async () => {
       const packagesJson = {
         packages: [],
-- 
GitLab