From 3cd7afadaa5be08d0e91ea01ddc730ee2b962a0e Mon Sep 17 00:00:00 2001 From: Ramin Tadayon Date: Wed, 23 Aug 2023 14:31:45 -0700 Subject: [PATCH] Use gitkraken.dev redirect site Adds uri encoding --- src/uris/deepLinks/deepLinkService.ts | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/uris/deepLinks/deepLinkService.ts b/src/uris/deepLinks/deepLinkService.ts index 67aae98..f7f224b 100644 --- a/src/uris/deepLinks/deepLinkService.ts +++ b/src/uris/deepLinks/deepLinkService.ts @@ -770,6 +770,7 @@ export class DeepLinkService implements Disposable { } const schemeOverride = configuration.get('deepLinks.schemeOverride'); + const scheme = !schemeOverride ? 'vscode' : schemeOverride === true ? env.uriScheme : schemeOverride; let target; if (targetType === DeepLinkType.Comparison) { @@ -781,14 +782,27 @@ export class DeepLinkService implements Disposable { } // Start with the prefix, add the repo prefix and the repo ID to the URL, and then add the target tag and target ID to the URL (if applicable) - const url = new URL( + const deepLink = new URL( `${scheme}://${this.container.context.extension.id}/${UriTypes.DeepLink}/${DeepLinkType.Repository}/${repoId}${target}`, ); // Add the remote URL as a query parameter - url.searchParams.set('url', remoteUrl); + deepLink.searchParams.set('url', remoteUrl); const params = new URLSearchParams(); params.set('url', remoteUrl); - return url; + + let modePrefixString = ''; + if (this.container.env === 'dev') { + modePrefixString = 'dev.'; + } else if (this.container.env === 'staging') { + modePrefixString = 'staging.'; + } + + const deepLinkRedirectUrl = new URL( + `https://${modePrefixString}gitkraken.dev/link/${encodeURIComponent( + Buffer.from(deepLink.href).toString('base64'), + )}`, + ); + return deepLinkRedirectUrl; } }