From 9c30da26de98d684c839c0d5b0914d9a80b3dea5 Mon Sep 17 00:00:00 2001
From: Sergei Zharinov <zharinov@users.noreply.github.com>
Date: Thu, 10 Dec 2020 14:13:58 +0400
Subject: [PATCH] refactor(http): Don't use obsolete URL functions with http
 wrappers (#7938)

* refactor(http): Remove obsolete URL functions usage
---
 lib/platform/bitbucket/__snapshots__/index.spec.ts.snap | 2 +-
 lib/platform/bitbucket/index.spec.ts                    | 2 +-
 lib/util/http/index.ts                                  | 6 +++---
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/lib/platform/bitbucket/__snapshots__/index.spec.ts.snap b/lib/platform/bitbucket/__snapshots__/index.spec.ts.snap
index 7a04b76efd..c5ead11ef5 100644
--- a/lib/platform/bitbucket/__snapshots__/index.spec.ts.snap
+++ b/lib/platform/bitbucket/__snapshots__/index.spec.ts.snap
@@ -1105,7 +1105,7 @@ Array [
       "user-agent": "https://github.com/renovatebot/renovate",
     },
     "method": "GET",
-    "url": "https://api.bitbucket.org/2.0/repositories/?role=contributor&pagelen=100",
+    "url": "https://api.bitbucket.org/2.0/repositories?role=contributor&pagelen=100",
   },
 ]
 `;
diff --git a/lib/platform/bitbucket/index.spec.ts b/lib/platform/bitbucket/index.spec.ts
index 13cdab1702..c810369d8a 100644
--- a/lib/platform/bitbucket/index.spec.ts
+++ b/lib/platform/bitbucket/index.spec.ts
@@ -126,7 +126,7 @@ describe('platform/bitbucket', () => {
     it('returns repos', async () => {
       httpMock
         .scope(baseUrl)
-        .get('/2.0/repositories/?role=contributor&pagelen=100')
+        .get('/2.0/repositories?role=contributor&pagelen=100')
         .reply(200, {
           values: [{ full_name: 'foo/bar' }, { full_name: 'some/repo' }],
         });
diff --git a/lib/util/http/index.ts b/lib/util/http/index.ts
index 8cb1e3af52..06ff0f2636 100644
--- a/lib/util/http/index.ts
+++ b/lib/util/http/index.ts
@@ -1,11 +1,11 @@
 import crypto from 'crypto';
-import URL from 'url';
 import got, { Options, Response } from 'got';
 import { HOST_DISABLED } from '../../constants/error-messages';
 import { logger } from '../../logger';
 import { ExternalHostError } from '../../types/errors/external-host-error';
 import * as memCache from '../cache/memory';
 import { clone } from '../clone';
+import { resolveBaseUrl } from '../url';
 import { applyAuthorization, removeAuthorization } from './auth';
 import { applyHostRules } from './host-rules';
 import { GotOptions } from './types';
@@ -95,7 +95,7 @@ export class Http<GetOptions = HttpOptions, PostOptions = HttpPostOptions> {
   ): Promise<HttpResponse<T> | null> {
     let url = requestUrl.toString();
     if (httpOptions?.baseUrl) {
-      url = URL.resolve(httpOptions.baseUrl, url);
+      url = resolveBaseUrl(httpOptions.baseUrl, url);
     }
     // TODO: deep merge in order to merge headers
     let options: GotOptions = {
@@ -227,7 +227,7 @@ export class Http<GetOptions = HttpOptions, PostOptions = HttpPostOptions> {
     // istanbul ignore else: needs test
     if (options?.baseUrl) {
       // eslint-disable-next-line no-param-reassign
-      url = URL.resolve(options.baseUrl, url);
+      url = resolveBaseUrl(options.baseUrl, url);
     }
 
     applyDefaultHeaders(combinedOptions);
-- 
GitLab