diff --git a/lib/datasource/github.js b/lib/datasource/github.js new file mode 100644 index 0000000000000000000000000000000000000000..a8f238f619fef1e42b9721c607b97ac7f41d0d30 --- /dev/null +++ b/lib/datasource/github.js @@ -0,0 +1,31 @@ +const ghGot = require('../platform/github/gh-got-wrapper'); +const semver = require('semver'); + +module.exports = { + getRepoTags, + getRepoReleases, +}; + +function semverSort(a, b) { + return semver.compare(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); +} + +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); +} diff --git a/lib/manager/bazel/package.js b/lib/manager/bazel/package.js index 3d2c6b5c76dbe98cfef01295307cb33ad1bd0655..5b257807eef3b1d74fa143c5b56f2357a59ab9cc 100644 --- a/lib/manager/bazel/package.js +++ b/lib/manager/bazel/package.js @@ -1,34 +1,10 @@ -const ghGot = require('../../platform/github/gh-got-wrapper'); const semver = require('semver'); +const { getRepoTags, getRepoReleases } = require('../../datasource/github'); module.exports = { getPackageUpdates, }; -function semverSort(a, b) { - return semver.compare(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); -} - -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); -} - async function getPackageUpdates(config) { logger.debug('bazel.getPackageUpdates()'); logger.trace({ config });