From 16a8d15e33e33af9c11dc0ce66b9a7b06ecc4853 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Fri, 16 Feb 2018 16:27:44 +0100
Subject: [PATCH] refactor: move bazel github operations to datasource

---
 lib/datasource/github.js     | 31 +++++++++++++++++++++++++++++++
 lib/manager/bazel/package.js | 26 +-------------------------
 2 files changed, 32 insertions(+), 25 deletions(-)
 create mode 100644 lib/datasource/github.js

diff --git a/lib/datasource/github.js b/lib/datasource/github.js
new file mode 100644
index 0000000000..a8f238f619
--- /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 3d2c6b5c76..5b257807ee 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 });
-- 
GitLab