@@ -7,6 +7,7 @@ import type { Issue, IssueShape } from '../../../git/models/issue';
77import type { IssueOrPullRequest , IssueOrPullRequestType } from '../../../git/models/issueOrPullRequest' ;
88import type { PullRequest , PullRequestMergeMethod , PullRequestState } from '../../../git/models/pullRequest' ;
99import type { RepositoryMetadata } from '../../../git/models/repositoryMetadata' ;
10+ import { getSettledValue } from '../../../system/promise' ;
1011import type { IntegrationAuthenticationProviderDescriptor } from '../authentication/integrationAuthenticationProvider' ;
1112import type { ProviderAuthenticationSession } from '../authentication/models' ;
1213import { HostingIntegration } from '../integration' ;
@@ -15,8 +16,7 @@ import type {
1516 BitbucketRepositoryDescriptor ,
1617 BitbucketWorkspaceDescriptor ,
1718} from './bitbucket/models' ;
18- import type { ProviderPullRequest } from './models' ;
19- import { fromProviderPullRequest , providersMetadata } from './models' ;
19+ import { providersMetadata } from './models' ;
2020
2121const metadata = providersMetadata [ HostingIntegrationId . Bitbucket ] ;
2222const authProvider = Object . freeze ( { id : metadata . id , scopes : metadata . scopes } ) ;
@@ -246,7 +246,6 @@ export class BitbucketIntegration extends HostingIntegration<
246246 session : ProviderAuthenticationSession ,
247247 repos ?: BitbucketRepositoryDescriptor [ ] ,
248248 ) : Promise < PullRequest [ ] | undefined > {
249- const api = await this . getProvidersApi ( ) ;
250249 if ( repos != null ) {
251250 // TODO: implement repos version
252251 return undefined ;
@@ -261,14 +260,24 @@ export class BitbucketIntegration extends HostingIntegration<
261260 const allBitbucketRepos = await this . getProviderProjectsForResources ( session , workspaces ) ;
262261 if ( allBitbucketRepos == null || allBitbucketRepos . length === 0 ) return undefined ;
263262
264- const prs = await api . getPullRequestsForRepos (
265- HostingIntegrationId . Bitbucket ,
266- allBitbucketRepos . map ( repo => ( { namespace : repo . owner , name : repo . name } ) ) ,
267- {
268- accessToken : session . accessToken ,
269- } ,
263+ const api = await this . container . bitbucket ;
264+ if ( ! api ) return undefined ;
265+ const prsResult = await Promise . allSettled (
266+ allBitbucketRepos . map ( repo =>
267+ api . getUsersPullRequestsForRepo (
268+ this ,
269+ session . accessToken ,
270+ user . id ,
271+ repo . owner ,
272+ repo . name ,
273+ this . apiBaseUrl ,
274+ ) ,
275+ ) ,
270276 ) ;
271- return prs . values . map ( pr => this . fromBitbucketProviderPullRequest ( pr ) ) ;
277+ return prsResult
278+ . map ( r => getSettledValue ( r ) )
279+ . filter ( r => r != null )
280+ . flat ( ) ;
272281 }
273282
274283 protected override async searchProviderMyIssues (
@@ -278,14 +287,6 @@ export class BitbucketIntegration extends HostingIntegration<
278287 return Promise . resolve ( undefined ) ;
279288 }
280289
281- private fromBitbucketProviderPullRequest (
282- remotePullRequest : ProviderPullRequest ,
283- // repoDescriptors: BitbucketRemoteRepositoryDescriptor[],
284- ) : PullRequest {
285- remotePullRequest . graphQLId = remotePullRequest . id ;
286- return fromProviderPullRequest ( remotePullRequest , this ) ;
287- }
288-
289290 protected override async providerOnConnect ( ) : Promise < void > {
290291 if ( this . _session == null ) return ;
291292
0 commit comments