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 });