From f276e0c301f44fdbd5ed04e4181c767bc22bf4d8 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Thu, 18 Jul 2019 23:26:09 +0200
Subject: [PATCH] fix(bazel): handle url updating instead of urls

---
 lib/manager/bazel/update.js       | 12 ++++++++++--
 test/manager/bazel/update.spec.js | 22 ++++++++++++++++++++++
 2 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/lib/manager/bazel/update.js b/lib/manager/bazel/update.js
index 65c7bc31f3..e11ce82d6d 100644
--- a/lib/manager/bazel/update.js
+++ b/lib/manager/bazel/update.js
@@ -16,12 +16,20 @@ function updateWithNewVersion(content, currentValue, newValue) {
   return newContent;
 }
 
+function extractUrl(flattened) {
+  const urlMatch = flattened.match(/url="(.*?)"/);
+  if (!urlMatch) {
+    logger.debug('Cannot locate urls in new definition');
+    return null;
+  }
+  return [urlMatch[1]];
+}
+
 function extractUrls(content) {
   const flattened = content.replace(/\n/g, '').replace(/\s/g, '');
   const urlsMatch = flattened.match(/urls?=\[.*?\]/);
   if (!urlsMatch) {
-    logger.debug({ content }, 'Cannot locate urls in new definition');
-    return null;
+    return extractUrl(flattened);
   }
   const urls = urlsMatch[0]
     .replace(/urls?=\[/, '')
diff --git a/test/manager/bazel/update.spec.js b/test/manager/bazel/update.spec.js
index d2719ef580..676875cc93 100644
--- a/test/manager/bazel/update.spec.js
+++ b/test/manager/bazel/update.spec.js
@@ -132,6 +132,28 @@ describe('manager/bazel/update', () => {
       expect(res).not.toEqual(fileWithBzlExtension);
       expect(res.indexOf('0.8.0')).not.toBe(-1);
     });
+    it('updates finds url instead of urls', async () => {
+      const upgrade = {
+        depName: 'bazel_skylib',
+        depType: 'http_archive',
+        repo: 'bazelbuild/bazel-skylib',
+        def: `http_archive(
+            name = "bazel_skylib",
+            sha256 = "eb5c57e4c12e68c0c20bc774bfbc60a568e800d025557bc4ea022c6479acc867",
+            strip_prefix = "bazel-skylib-0.6.0",
+            url = "https://github.com/bazelbuild/bazel-skylib/archive/0.6.0.tar.gz",
+          )`,
+        currentValue: '0.6.0',
+        newValue: '0.8.0',
+      };
+      hasha.fromStream.mockReturnValueOnce('abc123');
+      const res = await bazelfile.updateDependency(
+        fileWithBzlExtension,
+        upgrade
+      );
+      expect(res).not.toEqual(fileWithBzlExtension);
+      expect(res.indexOf('0.8.0')).not.toBe(-1);
+    });
     it('returns null if no urls resolve hashes', async () => {
       const upgrade = {
         depName: 'bazel_skylib',
-- 
GitLab