From 3d04c5558e607cd8b80c0eebc53932111ddd8c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Tue, 21 Apr 2020 14:19:40 +0200 Subject: [PATCH] support multiple URLs --- extensions/git/src/api/git.d.ts | 2 +- extensions/git/src/commands.ts | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/extensions/git/src/api/git.d.ts b/extensions/git/src/api/git.d.ts index 9a1a842c359..e82ea8283a7 100644 --- a/extensions/git/src/api/git.d.ts +++ b/extensions/git/src/api/git.d.ts @@ -192,7 +192,7 @@ export interface Repository { export interface RemoteSource { readonly name: string; - readonly url: string; + readonly url: string | string[]; } export interface RemoteSourceProvider { diff --git a/extensions/git/src/commands.ts b/extensions/git/src/commands.ts index 53217156be4..0a28554cb6d 100644 --- a/extensions/git/src/commands.ts +++ b/extensions/git/src/commands.ts @@ -281,8 +281,8 @@ class RemoteSourceProviderQuickPick { } else { this.quickpick.items = remoteSources.map(remoteSource => ({ label: remoteSource.name, - description: remoteSource.url, - remote: remoteSource + description: typeof remoteSource.url === 'string' ? remoteSource.url : '', + remoteSource })); } } catch (err) { @@ -552,7 +552,14 @@ export class CommandCenter { if (result.provider) { const quickpick = new RemoteSourceProviderQuickPick(result.provider); const remote = await quickpick.pick(); - url = remote?.url; + + if (remote) { + if (typeof remote.url === 'string') { + url = remote.url; + } else if (remote.url.length > 0) { + url = await window.showQuickPick(remote.url, { ignoreFocusOut: true, placeHolder: localize('pick url', "Choose a URL to clone from.") }); + } + } } else { url = result.label; }