diff --git a/src/constants.integrations.ts b/src/constants.integrations.ts index 0ca539635410b..5b3703dc0de94 100644 --- a/src/constants.integrations.ts +++ b/src/constants.integrations.ts @@ -89,7 +89,7 @@ export const supportedCloudIntegrationDescriptors: IntegrationDescriptor[] = [ id: HostingIntegrationId.Bitbucket, name: 'Bitbucket', icon: 'gl-provider-bitbucket', - supports: ['prs'], + supports: ['prs', 'issues'], requiresPro: false, }, { diff --git a/src/webviews/home/homeWebview.ts b/src/webviews/home/homeWebview.ts index d1c4aacf6e93b..2ef3336780db9 100644 --- a/src/webviews/home/homeWebview.ts +++ b/src/webviews/home/homeWebview.ts @@ -989,25 +989,29 @@ export class HomeWebviewProvider implements WebviewProvider - isSupportedCloudIntegrationId(i.integrationId) - ? ({ - id: i.integrationId, - name: providersMetadata[i.integrationId].name, - icon: `gl-provider-${providersMetadata[i.integrationId].iconKey}`, - connected: true, - supports: - providersMetadata[i.integrationId].type === 'hosting' - ? ['prs', 'issues'] - : providersMetadata[i.integrationId].type === 'issues' - ? ['issues'] - : [], - requiresPro: - supportedCloudIntegrationDescriptors.find(item => item.id === i.integrationId) - ?.requiresPro ?? false, - } satisfies IntegrationState) - : undefined, - ); + const promises = filterMap(await this.container.integrations.getConfigured(), i => { + if (!isSupportedCloudIntegrationId(i.integrationId)) { + return undefined; + } + const supportedCloudDescriptor = supportedCloudIntegrationDescriptors.find( + item => item.id === i.integrationId, + ); + return { + id: i.integrationId, + name: providersMetadata[i.integrationId].name, + icon: `gl-provider-${providersMetadata[i.integrationId].iconKey}`, + connected: true, + supports: + supportedCloudDescriptor?.supports != null + ? supportedCloudDescriptor.supports + : providersMetadata[i.integrationId].type === 'hosting' + ? ['prs', 'issues'] + : providersMetadata[i.integrationId].type === 'issues' + ? ['issues'] + : [], + requiresPro: supportedCloudDescriptor?.requiresPro ?? false, + } satisfies IntegrationState; + }); const integrationsResults = await Promise.allSettled(promises); const integrations: IntegrationState[] = [...filterMap(integrationsResults, r => getSettledValue(r))];