@@ -25,7 +25,6 @@ import { Logger } from '../../../../system/logger';
2525import type { LogScope } from '../../../../system/logger.scope' ;
2626import { getLogScope } from '../../../../system/logger.scope' ;
2727import { maybeStopWatch } from '../../../../system/stopwatch' ;
28- import type { Integration } from '../../integration' ;
2928import type { BitbucketServerPullRequest } from '../bitbucket-server/models' ;
3029import { normalizeBitbucketServerPullRequest } from '../bitbucket-server/models' ;
3130import { fromProviderPullRequest } from '../models' ;
@@ -105,7 +104,6 @@ export class BitbucketApi implements Disposable {
105104 repo : string ,
106105 branch : string ,
107106 baseUrl : string ,
108- integration : Integration ,
109107 ) : Promise < PullRequest | undefined > {
110108 const scope = getLogScope ( ) ;
111109
@@ -130,7 +128,7 @@ export class BitbucketApi implements Disposable {
130128 }
131129
132130 const providersPr = normalizeBitbucketServerPullRequest ( response . values [ 0 ] ) ;
133- const gitlensPr = fromProviderPullRequest ( providersPr , integration ) ;
131+ const gitlensPr = fromProviderPullRequest ( providersPr , provider ) ;
134132 return gitlensPr ;
135133 }
136134
@@ -283,7 +281,6 @@ export class BitbucketApi implements Disposable {
283281 repo : string ,
284282 id : string ,
285283 baseUrl : string ,
286- integration : Integration ,
287284 ) : Promise < IssueOrPullRequest | undefined > {
288285 const scope = getLogScope ( ) ;
289286
@@ -301,7 +298,7 @@ export class BitbucketApi implements Disposable {
301298
302299 if ( prResponse ) {
303300 const providersPr = normalizeBitbucketServerPullRequest ( prResponse ) ;
304- const gitlensPr = fromProviderPullRequest ( providersPr , integration ) ;
301+ const gitlensPr = fromProviderPullRequest ( providersPr , provider ) ;
305302 return gitlensPr ;
306303 }
307304 } catch ( ex ) {
@@ -369,6 +366,47 @@ export class BitbucketApi implements Disposable {
369366 }
370367 }
371368
369+ @debug < BitbucketApi [ 'getServerPullRequestForCommit' ] > ( { args : { 0 : p => p . name , 1 : '<token>' } } )
370+ async getServerPullRequestForCommit (
371+ provider : Provider ,
372+ token : string ,
373+ owner : string ,
374+ repo : string ,
375+ rev : string ,
376+ baseUrl : string ,
377+ _options ?: {
378+ avatarSize ?: number ;
379+ } ,
380+ cancellation ?: CancellationToken ,
381+ ) : Promise < PullRequest | undefined > {
382+ const scope = getLogScope ( ) ;
383+
384+ try {
385+ const response = await this . request < { values : BitbucketServerPullRequest [ ] } > (
386+ provider ,
387+ token ,
388+ baseUrl ,
389+ `projects/${ owner } /repos/${ repo } /commits/${ rev } /pull-requests` , //?fields=${fieldsParam}`,
390+ {
391+ method : 'GET' ,
392+ } ,
393+ scope ,
394+ cancellation ,
395+ ) ;
396+ const prResponse = response ?. values ?. reduce < BitbucketServerPullRequest | undefined > (
397+ ( acc , pr ) => ( ! acc || pr . updatedDate > acc . updatedDate ? pr : acc ) ,
398+ undefined ,
399+ ) ;
400+ if ( ! prResponse ) return undefined ;
401+ const providersPr = normalizeBitbucketServerPullRequest ( prResponse ) ;
402+ const gitlensPr = fromProviderPullRequest ( providersPr , provider ) ;
403+ return gitlensPr ;
404+ } catch ( ex ) {
405+ Logger . error ( ex , scope ) ;
406+ return undefined ;
407+ }
408+ }
409+
372410 @debug < BitbucketApi [ 'getPullRequestForCommit' ] > ( { args : { 0 : p => p . name , 1 : '<token>' } } )
373411 async getPullRequestForCommit (
374412 provider : Provider ,
0 commit comments