diff --git a/src/git/models/repositoryShape.ts b/src/git/models/repositoryShape.ts
index 809b53a4b50f0..8f1638f34eb87 100644
--- a/src/git/models/repositoryShape.ts
+++ b/src/git/models/repositoryShape.ts
@@ -14,5 +14,6 @@ export interface RepositoryShape {
integration?: { id: SupportedCloudIntegrationIds; connected: boolean };
supportedFeatures: RemoteProviderSupportedFeatures;
url?: string;
+ bestRemoteName: string;
};
}
diff --git a/src/git/utils/-webview/repository.utils.ts b/src/git/utils/-webview/repository.utils.ts
index 9459d81d1ba5a..b08cdf7663609 100644
--- a/src/git/utils/-webview/repository.utils.ts
+++ b/src/git/utils/-webview/repository.utils.ts
@@ -94,6 +94,7 @@ export async function toRepositoryShapeWithProvider(
: undefined,
supportedFeatures: remote.provider.supportedFeatures,
url: await remote.provider.url({ type: RemoteResourceType.Repo }),
+ bestRemoteName: remote.name,
};
if (provider.integration?.id == null) {
provider.integration = undefined;
diff --git a/src/webviews/apps/shared/components/repo-button-group.ts b/src/webviews/apps/shared/components/repo-button-group.ts
index 218a671815b18..3edc760225b9b 100644
--- a/src/webviews/apps/shared/components/repo-button-group.ts
+++ b/src/webviews/apps/shared/components/repo-button-group.ts
@@ -2,7 +2,7 @@ import { css, html, nothing } from 'lit';
import { customElement, property } from 'lit/decorators.js';
import { ifDefined } from 'lit/directives/if-defined.js';
import { when } from 'lit/directives/when.js';
-import type { ConnectCloudIntegrationsCommandArgs } from '../../../../commands/cloudIntegrations';
+import type { ConnectRemoteProviderCommandArgs } from '../../../../commands/remoteProviders';
import type { Source } from '../../../../constants.telemetry';
import type { RepositoryShape } from '../../../../git/models/repositoryShape';
import { createCommandLink } from '../../../../system/commands';
@@ -198,9 +198,9 @@ export class GlRepoButtonGroup extends GlElement {
return html`
(
- 'gitlens.plus.cloudIntegrations.connect',
- { integrationIds: [provider.integration!.id], source: this.source },
+ href=${createCommandLink(
+ 'gitlens.connectRemoteProvider',
+ { repoPath: repo.path, remote: provider.bestRemoteName },
)}
>
Connect to ${repo.provider!.name}
@@ -227,10 +227,10 @@ export class GlRepoButtonGroup extends GlElement {
(
- 'gitlens.plus.cloudIntegrations.connect',
- { integrationIds: [provider.integration.id], source: this.source },
- )}
+ href=${createCommandLink('gitlens.connectRemoteProvider', {
+ repoPath: repo.path,
+ remote: provider.bestRemoteName,
+ })}
>
diff --git a/src/webviews/home/homeWebview.ts b/src/webviews/home/homeWebview.ts
index daed7b7a3d01f..538e08ae2fbb3 100644
--- a/src/webviews/home/homeWebview.ts
+++ b/src/webviews/home/homeWebview.ts
@@ -55,6 +55,7 @@ import { isMcpBannerEnabled, mcpExtensionRegistrationAllowed } from '../../plus/
import { isAiAllAccessPromotionActive } from '../../plus/gk/utils/-webview/promo.utils';
import { isSubscriptionTrialOrPaidFromState } from '../../plus/gk/utils/subscription.utils';
import type { ConfiguredIntegrationsChangeEvent } from '../../plus/integrations/authentication/configuredIntegrationService';
+import type { ConnectionStateChangeEvent } from '../../plus/integrations/integrationService';
import { providersMetadata } from '../../plus/integrations/providers/models';
import type { LaunchpadCategorizedResult } from '../../plus/launchpad/launchpadProvider';
import { getLaunchpadItemGroups } from '../../plus/launchpad/launchpadProvider';
@@ -179,6 +180,7 @@ export class HomeWebviewProvider implements WebviewProvider