diff --git a/lib/util/git/url.spec.ts b/lib/util/git/url.spec.ts
index cc05cc63e28c88c00dfc9fb08c503bd1c9f818bc..ca32e45f8a1829d3c1612a65d17055ae23a3c534 100644
--- a/lib/util/git/url.spec.ts
+++ b/lib/util/git/url.spec.ts
@@ -58,6 +58,9 @@ describe('util/git/url', () => {
       expect(
         getHttpUrl('http://gitlab.com:8443/', 'gitlab-ci-token:token')
       ).toBe('http://gitlab-ci-token:token@gitlab.com:8443/');
+      expect(getHttpUrl('git@gitlab.com:some/repo', 'token')).toBe(
+        'https://gitlab-ci-token:token@gitlab.com/some/repo'
+      );
     });
 
     it('returns github url with token', () => {
@@ -70,6 +73,9 @@ describe('util/git/url', () => {
       expect(
         getHttpUrl('http://github.com:8443/', 'x-access-token:token')
       ).toBe('http://x-access-token:token@github.com:8443/');
+      expect(getHttpUrl('git@github.com:some/repo', 'token')).toBe(
+        'https://x-access-token:token@github.com/some/repo'
+      );
     });
   });
 
diff --git a/lib/util/git/url.ts b/lib/util/git/url.ts
index 7857f66bd90196cf9261c2d4b786f452c6f8b19a..75bf8c2a605144cd3d745737c49d8b797aa7a44d 100644
--- a/lib/util/git/url.ts
+++ b/lib/util/git/url.ts
@@ -11,10 +11,14 @@ export function parseGitUrl(url: string): gitUrlParse.GitUrl {
 export function getHttpUrl(url: string, token?: string): string {
   const parsedUrl = parseGitUrl(url);
 
+  const protocol = regEx(/^https?$/).exec(parsedUrl.protocol)
+    ? parsedUrl.protocol
+    : 'https';
+
   parsedUrl.token = token ?? '';
 
   if (token) {
-    switch (detectPlatform(url)) {
+    switch (detectPlatform(parsedUrl.toString(protocol))) {
       case 'gitlab':
         parsedUrl.token = token.includes(':')
           ? token
@@ -28,9 +32,6 @@ export function getHttpUrl(url: string, token?: string): string {
     }
   }
 
-  const protocol = regEx(/^https?$/).exec(parsedUrl.protocol)
-    ? parsedUrl.protocol
-    : 'https';
   return parsedUrl.toString(protocol);
 }