Skip to content

Commit 75eae0b

Browse files
committed
Add Azure DevOps Server support to launchpad
Introduces Azure DevOps Server as a supported integration in the launchpad, enabling proper display, button actions, and title labeling for repositories connected to self-hosted Azure DevOps instances. Improves handling of integration IDs by prioritizing detection specific to the remote, ensuring accurate integration linkage for both cloud and self-managed scenarios. (#4478, #4516)
1 parent a83abb6 commit 75eae0b

File tree

4 files changed

+10
-2
lines changed

4 files changed

+10
-2
lines changed

src/git/utils/-webview/repository.utils.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { convertRemoteProviderIdToIntegrationId } from '../../../plus/integrations/utils/-webview/integration.utils';
1+
import { getIntegrationIdForRemote } from '../../../plus/integrations/utils/-webview/integration.utils';
22
import { configuration } from '../../../system/-webview/configuration';
33
import { formatDate, fromNow } from '../../../system/date';
44
import { map } from '../../../system/iterable';
@@ -78,13 +78,16 @@ export async function toRepositoryShapeWithProvider(
7878
icon: remote.provider.icon === 'remote' ? 'cloud' : remote.provider.icon,
7979
integration: remote.supportsIntegration()
8080
? {
81-
id: convertRemoteProviderIdToIntegrationId(remote.provider.id)!,
81+
id: getIntegrationIdForRemote(remote.provider)!,
8282
connected: remote.maybeIntegrationConnected ?? false,
8383
}
8484
: undefined,
8585
supportedFeatures: remote.provider.supportedFeatures,
8686
url: await remote.provider.url({ type: RemoteResourceType.Repo }),
8787
};
88+
if (provider.integration?.id == null) {
89+
provider.integration = undefined;
90+
}
8891
}
8992

9093
return { ...toRepositoryShape(repo), provider: provider };

src/plus/launchpad/launchpad.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1596,6 +1596,7 @@ function getOpenOnGitProviderQuickInputButton(integrationId: string): QuickInput
15961596
case GitSelfManagedHostIntegrationId.CloudGitHubEnterprise:
15971597
return OpenOnGitHubQuickInputButton;
15981598
case GitCloudHostIntegrationId.AzureDevOps:
1599+
case GitSelfManagedHostIntegrationId.AzureDevOpsServer:
15991600
return OpenOnAzureDevOpsQuickInputButton;
16001601
case GitCloudHostIntegrationId.Bitbucket:
16011602
case GitSelfManagedHostIntegrationId.BitbucketServer:
@@ -1622,6 +1623,8 @@ function getIntegrationTitle(integrationId: string): string {
16221623
return 'GitHub';
16231624
case GitCloudHostIntegrationId.AzureDevOps:
16241625
return 'Azure DevOps';
1626+
case GitSelfManagedHostIntegrationId.AzureDevOpsServer:
1627+
return 'Azure DevOps Server';
16251628
case GitCloudHostIntegrationId.Bitbucket:
16261629
return 'Bitbucket';
16271630
case GitSelfManagedHostIntegrationId.BitbucketServer:

src/plus/launchpad/launchpadProvider.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ export const supportedLaunchpadIntegrations: (GitCloudHostIntegrationId | CloudG
136136
GitCloudHostIntegrationId.GitLab,
137137
GitSelfManagedHostIntegrationId.CloudGitLabSelfHosted,
138138
GitCloudHostIntegrationId.AzureDevOps,
139+
GitSelfManagedHostIntegrationId.AzureDevOpsServer,
139140
GitCloudHostIntegrationId.Bitbucket,
140141
GitSelfManagedHostIntegrationId.BitbucketServer,
141142
];

src/webviews/plus/graph/graphWebview.utils.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ export function toGraphHostingServiceType(id: string): GraphHostingServiceType |
153153
case 'azureDevops' satisfies Unbrand<GkProviderId>:
154154
case 'azure':
155155
case GitCloudHostIntegrationId.AzureDevOps:
156+
case GitSelfManagedHostIntegrationId.AzureDevOpsServer:
156157
return 'azureDevops';
157158

158159
case 'bitbucket' satisfies RemoteProviderId:

0 commit comments

Comments
 (0)