From c8cc375129d0ddce4c00010de586fcd2eb04f3b1 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Fri, 19 Jun 2020 10:15:16 +0200
Subject: [PATCH] fix(gitlab-tags):  use URL.resolve

---
 lib/datasource/gitlab-tags/__snapshots__/index.spec.ts.snap | 6 +++---
 lib/datasource/gitlab-tags/index.spec.ts                    | 4 ++--
 lib/datasource/gitlab-tags/index.ts                         | 6 +++++-
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/lib/datasource/gitlab-tags/__snapshots__/index.spec.ts.snap b/lib/datasource/gitlab-tags/__snapshots__/index.spec.ts.snap
index c7a78215e4..c9d0cb843b 100644
--- a/lib/datasource/gitlab-tags/__snapshots__/index.spec.ts.snap
+++ b/lib/datasource/gitlab-tags/__snapshots__/index.spec.ts.snap
@@ -1,6 +1,6 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
-exports[`datasource/gitlab-tags getReleases returns tags 1`] = `
+exports[`datasource/gitlab-tags getReleases returns tags from custom registry 1`] = `
 Object {
   "releases": Array [
     Object {
@@ -21,7 +21,7 @@ Object {
 }
 `;
 
-exports[`datasource/gitlab-tags getReleases returns tags 2`] = `
+exports[`datasource/gitlab-tags getReleases returns tags from custom registry 2`] = `
 Array [
   Object {
     "headers": Object {
@@ -31,7 +31,7 @@ Array [
       "user-agent": "https://github.com/renovatebot/renovate",
     },
     "method": "GET",
-    "url": "https://gitlab.company.com/api/v4/api/v4/projects/some%2Fdep2/repository/tags?per_page=100",
+    "url": "https://gitlab.company.com/api/v4/projects/some%2Fdep2/repository/tags?per_page=100",
   },
 ]
 `;
diff --git a/lib/datasource/gitlab-tags/index.spec.ts b/lib/datasource/gitlab-tags/index.spec.ts
index 5b049589a1..bff683fed8 100644
--- a/lib/datasource/gitlab-tags/index.spec.ts
+++ b/lib/datasource/gitlab-tags/index.spec.ts
@@ -8,7 +8,7 @@ describe('datasource/gitlab-tags', () => {
     httpMock.setup();
   });
   describe('getReleases', () => {
-    it('returns tags', async () => {
+    it('returns tags from custom registry', async () => {
       const body = [
         {
           name: 'v1.0.0',
@@ -26,7 +26,7 @@ describe('datasource/gitlab-tags', () => {
       ];
       httpMock
         .scope('https://gitlab.company.com')
-        .get('/api/v4/api/v4/projects/some%2Fdep2/repository/tags?per_page=100')
+        .get('/api/v4/projects/some%2Fdep2/repository/tags?per_page=100')
         .reply(200, body);
       const res = await getPkgReleases({
         datasource,
diff --git a/lib/datasource/gitlab-tags/index.ts b/lib/datasource/gitlab-tags/index.ts
index 15411d83cf..0ddd79e73c 100644
--- a/lib/datasource/gitlab-tags/index.ts
+++ b/lib/datasource/gitlab-tags/index.ts
@@ -1,3 +1,4 @@
+import URL from 'url';
 import is from '@sindresorhus/is';
 import { logger } from '../../logger';
 import * as globalCache from '../../util/cache/global';
@@ -43,7 +44,10 @@ export async function getReleases({
 
   try {
     // tag
-    const url = `${depHost}/api/v4/projects/${urlEncodedRepo}/repository/tags?per_page=100`;
+    const url = URL.resolve(
+      depHost,
+      `/api/v4/projects/${urlEncodedRepo}/repository/tags?per_page=100`
+    );
 
     gitlabTags = (
       await gitlabApi.getJson<GitlabTag[]>(url, {
-- 
GitLab