diff --git a/lib/datasource/github.js b/lib/datasource/github.js index a8f238f619fef1e42b9721c607b97ac7f41d0d30..f42aab2a3390f2fc02ae4dbed91aa6eaebdc8e4b 100644 --- a/lib/datasource/github.js +++ b/lib/datasource/github.js @@ -11,21 +11,31 @@ function semverSort(a, b) { } async function getRepoTags(repo) { - const url = `repos/${repo}/git/refs?per_page=100`; - const res = (await ghGot(url, { paginate: true })).body; - const tagPrefix = 'refs/tags/'; - return res - .filter(o => o.ref.startsWith(tagPrefix)) - .map(o => o.ref.replace(tagPrefix, '')) - .filter(o => semver.valid(o)) - .sort(semverSort); + try { + const url = `repos/${repo}/git/refs?per_page=100`; + const res = (await ghGot(url, { paginate: true })).body; + const tagPrefix = 'refs/tags/'; + return res + .filter(o => o.ref.startsWith(tagPrefix)) + .map(o => o.ref.replace(tagPrefix, '')) + .filter(o => semver.valid(o)) + .sort(semverSort); + } catch (err) /* istanbul ignore next */ { + logger.warn({ repo }, 'Could not fetch repo tags'); + return []; + } } async function getRepoReleases(repo) { - const url = `repos/${repo}/releases?per_page=100`; - const res = (await ghGot(url, { paginate: true })).body; - return res - .map(o => o.tag_name) - .filter(semver.valid) - .sort(semverSort); + try { + const url = `repos/${repo}/releases?per_page=100`; + const res = (await ghGot(url, { paginate: true })).body; + return res + .map(o => o.tag_name) + .filter(semver.valid) + .sort(semverSort); + } catch (err) /* istanbul ignore next */ { + logger.warn({ repo }, 'Could not fetch repo releases'); + return []; + } }