diff --git a/lib/platform/github/index.js b/lib/platform/github/index.js index 3484477939dbb7c85f5a7a8314c8e5a112081f2c..c2e232a1ec05d75e14f140cd0ee647b06c202483 100644 --- a/lib/platform/github/index.js +++ b/lib/platform/github/index.js @@ -106,6 +106,9 @@ async function initRepo(repoName, token, endpoint, forkMode, forkToken) { logger.info('Could not find allowed merge methods for repo'); } } catch (err) /* istanbul ignore next */ { + if (err.statusCode === 404) { + throw new Error('not-found'); + } logger.info({ err, res }, 'Unknown GitHub initRepo error'); throw err; } diff --git a/lib/workers/repository/error.js b/lib/workers/repository/error.js index a4024ebd70badb1b2c303f1f918ad95db3a90920..cae471f597aabb79a8bfbaf9f84ce1f54db46308 100644 --- a/lib/workers/repository/error.js +++ b/lib/workers/repository/error.js @@ -15,6 +15,9 @@ async function handleError(config, err) { } else if (err.message === 'archived') { logger.info('Repository is archived - skipping'); return err.message; + } else if (err.message === 'not-found') { + logger.info('Repository is not found'); + return err.message; } else if (err.message === 'fork') { logger.info('Repository is a fork and not manually configured - skipping'); return err.message; diff --git a/test/platform/github/index.spec.js b/test/platform/github/index.spec.js index 76bec2dfc5132df14dd3c6cb7fc3ed28fc36c589..5f23181f58d8588c1e86cc5ca9628b4dd21d2abc 100644 --- a/test/platform/github/index.spec.js +++ b/test/platform/github/index.spec.js @@ -339,6 +339,20 @@ describe('platform/github', () => { } expect(e).toBeDefined(); }); + it('throws not-found', async () => { + get.mockImplementationOnce(() => + Promise.reject({ + statusCode: 404, + }) + ); + let e; + try { + await github.initRepo('some/repo', 'token'); + } catch (err) { + e = err; + } + expect(e).toBeDefined(); + }); }); describe('getRepoForceRebase', () => { it('should detect repoForceRebase', async () => { diff --git a/test/workers/repository/error.spec.js b/test/workers/repository/error.spec.js index 916a72e69c5d51d37c78f246be2b474696a47128..19c32a7e752eea90402918f5ed77e593459b0bd4 100644 --- a/test/workers/repository/error.spec.js +++ b/test/workers/repository/error.spec.js @@ -18,6 +18,7 @@ describe('workers/repository/error', () => { 'loops>5', 'config-validation', 'archived', + 'not-found', ]; errors.forEach(err => { it(`errors ${err}`, async () => {