@@ -8,6 +8,7 @@ import type { IssueOrPullRequest } from '../../../git/models/issueOrPullRequest'
88import type { PullRequest , PullRequestMergeMethod , PullRequestState } from '../../../git/models/pullRequest' ;
99import type { RepositoryMetadata } from '../../../git/models/repositoryMetadata' ;
1010import { getSettledValue } from '../../../system/promise' ;
11+ import { base64 } from '../../../system/string' ;
1112import type { IntegrationAuthenticationProviderDescriptor } from '../authentication/integrationAuthenticationProvider' ;
1213import { HostingIntegration } from '../integration' ;
1314import type {
@@ -81,7 +82,10 @@ export class AzureDevOpsIntegration extends HostingIntegration<
8182 const account = await this . getProviderCurrentAccount ( session ) ;
8283 if ( account ?. id == null ) return undefined ;
8384
84- const resources = await api . getAzureResourcesForUser ( account . id , { accessToken : accessToken } ) ;
85+ const resources = await api . getAzureResourcesForUser ( account . id , {
86+ accessToken : convertTokentoPAT ( accessToken ) ,
87+ isPAT : true ,
88+ } ) ;
8589 this . _organizations . set (
8690 accessToken ,
8791 resources != null ? resources . map ( r => ( { ...r , key : r . id } ) ) : undefined ,
@@ -117,7 +121,10 @@ export class AzureDevOpsIntegration extends HostingIntegration<
117121 const azureProjects = (
118122 await Promise . allSettled (
119123 resourcesWithoutProjects . map ( resource =>
120- api . getAzureProjectsForResource ( resource . name , { accessToken : accessToken } ) ,
124+ api . getAzureProjectsForResource ( resource . name , {
125+ accessToken : convertTokentoPAT ( accessToken ) ,
126+ isPAT : true ,
127+ } ) ,
121128 ) ,
122129 )
123130 )
@@ -164,7 +171,8 @@ export class AzureDevOpsIntegration extends HostingIntegration<
164171 projects . map ( async project => {
165172 const repos = (
166173 await api . getReposForAzureProject ( project . resourceName , project . name , {
167- accessToken : accessToken ,
174+ accessToken : convertTokentoPAT ( accessToken ) ,
175+ isPAT : true ,
168176 } )
169177 ) ?. values ;
170178 if ( repos != null && repos . length > 0 ) {
@@ -202,7 +210,8 @@ export class AzureDevOpsIntegration extends HostingIntegration<
202210 try {
203211 const merged = await api . mergePullRequest ( this . id , pr , {
204212 ...options ,
205- accessToken : accessToken ,
213+ accessToken : convertTokentoPAT ( accessToken ) ,
214+ isPAT : true ,
206215 } ) ;
207216 return merged ;
208217 } catch ( ex ) {
@@ -306,8 +315,11 @@ export class AzureDevOpsIntegration extends HostingIntegration<
306315 project : string ;
307316 } ) : Promise < ProviderRepository | undefined > {
308317 const api = await this . getProvidersApi ( ) ;
318+ if ( this . _session == null ) return undefined ;
319+
309320 return api . getRepo ( this . id , repo . owner , repo . name , repo . project , {
310- accessToken : this . _session ?. accessToken ,
321+ accessToken : convertTokentoPAT ( this . _session . accessToken ) ,
322+ isPAT : true ,
311323 } ) ;
312324 }
313325
@@ -347,13 +359,15 @@ export class AzureDevOpsIntegration extends HostingIntegration<
347359 const projectInputs = projects . map ( p => ( { namespace : p . resourceName , project : p . name } ) ) ;
348360 const assignedPrs = (
349361 await api . getPullRequestsForAzureProjects ( projectInputs , {
350- accessToken : session . accessToken ,
362+ accessToken : convertTokentoPAT ( session . accessToken ) ,
363+ isPAT : true ,
351364 assigneeLogins : [ user . username ] ,
352365 } )
353366 ) ?. map ( pr => this . fromAzureProviderPullRequest ( pr , repoDescriptors , projects ) ) ;
354367 const authoredPrs = (
355368 await api . getPullRequestsForAzureProjects ( projectInputs , {
356- accessToken : session . accessToken ,
369+ accessToken : convertTokentoPAT ( session . accessToken ) ,
370+ isPAT : true ,
357371 authorLogin : user . username ,
358372 } )
359373 ) ?. map ( pr => this . fromAzureProviderPullRequest ( pr , repoDescriptors , projects ) ) ;
@@ -392,7 +406,8 @@ export class AzureDevOpsIntegration extends HostingIntegration<
392406 projects . map ( async p => {
393407 const issuesResponse = (
394408 await api . getIssuesForAzureProject ( p . resourceName , p . name , {
395- accessToken : session . accessToken ,
409+ accessToken : convertTokentoPAT ( session . accessToken ) ,
410+ isPAT : true ,
396411 assigneeLogins : [ user . username ! ] ,
397412 } )
398413 ) . values ;
@@ -547,3 +562,7 @@ const azureCloudDomainRegex = /^dev\.azure\.com$|\bvisualstudio\.com$/i;
547562export function isAzureCloudDomain ( domain : string | undefined ) : boolean {
548563 return domain != null && azureCloudDomainRegex . test ( domain ) ;
549564}
565+
566+ function convertTokentoPAT ( accessToken : string ) : string {
567+ return base64 ( `PAT:${ accessToken } ` ) ;
568+ }
0 commit comments