@@ -22,8 +22,13 @@ import { Logger } from '../../../../system/logger';
2222import type { LogScope } from '../../../../system/logger.scope' ;
2323import { getLogScope } from '../../../../system/logger.scope' ;
2424import { maybeStopWatch } from '../../../../system/stopwatch' ;
25- import type { AzureWorkItemState , AzureWorkItemStateCategory , WorkItem } from './models' ;
26- import { azureWorkItemsStateCategoryToState , isClosedAzureWorkItemStateCategory } from './models' ;
25+ import type { AzurePullRequest , AzureWorkItemState , AzureWorkItemStateCategory , WorkItem } from './models' ;
26+ import {
27+ azurePullRequestStatusToState ,
28+ azureWorkItemsStateCategoryToState ,
29+ isClosedAzurePullRequestStatus ,
30+ isClosedAzureWorkItemStateCategory ,
31+ } from './models' ;
2732
2833export class AzureDevOpsApi implements Disposable {
2934 private readonly _disposable : Disposable ;
@@ -71,7 +76,7 @@ export class AzureDevOpsApi implements Disposable {
7176 } ,
7277 ) : Promise < IssueOrPullRequest | undefined > {
7378 const scope = getLogScope ( ) ;
74- const [ projectName ] = repo . split ( '/' ) ;
79+ const [ projectName , _ , repoName ] = repo . split ( '/' ) ;
7580
7681 try {
7782 // Try to get the Work item (wit) first with specific fields
@@ -112,6 +117,39 @@ export class AzureDevOpsApi implements Disposable {
112117 url : issueResult . _links . html . href ,
113118 } ;
114119 }
120+ } catch ( ex ) {
121+ if ( ex . original ?. status !== 404 ) {
122+ Logger . error ( ex , scope ) ;
123+ return undefined ;
124+ }
125+ }
126+
127+ try {
128+ const prResult = await this . request < AzurePullRequest > (
129+ provider ,
130+ token ,
131+ options ?. baseUrl ,
132+ `${ owner } /${ projectName } /_apis/git/repositories/${ repoName } /pullRequests/${ number } ` ,
133+ {
134+ method : 'GET' ,
135+ } ,
136+ scope ,
137+ ) ;
138+
139+ if ( prResult != null ) {
140+ return {
141+ id : prResult . pullRequestId . toString ( ) ,
142+ type : 'pullrequest' ,
143+ nodeId : prResult . pullRequestId . toString ( ) , // prResult.artifactId maybe?
144+ provider : provider ,
145+ createdDate : new Date ( prResult . creationDate ) ,
146+ updatedDate : new Date ( prResult . creationDate ) ,
147+ state : azurePullRequestStatusToState ( prResult . status ) ,
148+ closed : isClosedAzurePullRequestStatus ( prResult . status ) ,
149+ title : prResult . title ,
150+ url : prResult . url ,
151+ } ;
152+ }
115153
116154 return undefined ;
117155 } catch ( ex ) {
0 commit comments