diff --git a/src/plus/integrations/authentication/integrationAuthentication.ts b/src/plus/integrations/authentication/integrationAuthentication.ts index 3ce0c7a37f3d5..566572339cc8e 100644 --- a/src/plus/integrations/authentication/integrationAuthentication.ts +++ b/src/plus/integrations/authentication/integrationAuthentication.ts @@ -8,6 +8,7 @@ import type { Sources } from '../../../constants.telemetry'; import type { Container } from '../../../container'; import { gate } from '../../../system/decorators/-webview/gate'; import { debug, log } from '../../../system/decorators/log'; +import { serialize } from '../../../system/decorators/serialize'; import type { DeferredEventExecutor } from '../../../system/event'; import { isCloudSelfHostedIntegrationId, @@ -479,6 +480,7 @@ class BuiltInAuthenticationProvider extends LocalIntegrationAuthenticationProvid } @debug() + @serialize() override async getSession( descriptor?: IntegrationAuthenticationSessionDescriptor, options?: { createIfNeeded?: boolean; forceNewSession?: boolean }, diff --git a/src/plus/integrations/authentication/models.ts b/src/plus/integrations/authentication/models.ts index 9d0e637d94740..7a49a49e913a9 100644 --- a/src/plus/integrations/authentication/models.ts +++ b/src/plus/integrations/authentication/models.ts @@ -1,4 +1,5 @@ import type { AuthenticationSession } from 'vscode'; +import { isWeb } from '@env/platform'; import type { IntegrationId, SupportedCloudIntegrationIds } from '../../../constants.integrations'; import { HostingIntegrationId, @@ -55,9 +56,15 @@ export type CloudIntegrationAuthType = 'oauth' | 'pat'; export const CloudIntegrationAuthenticationUriPathPrefix = 'did-authenticate-cloud-integration'; export function getSupportedCloudIntegrationIds(): SupportedCloudIntegrationIds[] { - return configuration.get('cloudIntegrations.enabled', undefined, true) + let supportedCloudIntegrationIds = configuration.get('cloudIntegrations.enabled', undefined, true) ? supportedOrderedCloudIntegrationIds : supportedOrderedCloudIssueIntegrationIds; + if (isWeb) { + // We always have a local GitHub session on vscode.dev and github.dev + supportedCloudIntegrationIds = supportedCloudIntegrationIds.filter(id => id !== HostingIntegrationId.GitHub); + } + + return supportedCloudIntegrationIds; } export function isSupportedCloudIntegrationId(id: string): id is SupportedCloudIntegrationIds {