@@ -38,6 +38,7 @@ import {
3838 PullRequestTemplatesResponse ,
3939 RepoProjectsResponse ,
4040 RevertPullRequestResponse ,
41+ SuggestedActorsResponse ,
4142 ViewerPermissionResponse ,
4243} from './graphql' ;
4344import {
@@ -1207,29 +1208,46 @@ export class GitHubRepository extends Disposable {
12071208
12081209 do {
12091210 try {
1210- const result : { data : AssignableUsersResponse } = await query < AssignableUsersResponse > ( {
1211- query : schema . GetAssignableUsers ,
1212- variables : {
1213- owner : remote . owner ,
1214- name : remote . repositoryName ,
1215- first : 100 ,
1216- after : after ,
1217- } ,
1218- } , true ) ; // we ignore SAML errors here because this query can happen at startup
1211+ let result : { data : AssignableUsersResponse | SuggestedActorsResponse } | undefined ;
1212+ if ( schema . GetSuggestedActors ) {
1213+ result = await query < SuggestedActorsResponse > ( {
1214+ query : schema . GetSuggestedActors ,
1215+ variables : {
1216+ owner : remote . owner ,
1217+ name : remote . repositoryName ,
1218+ capabilities : [ 'CAN_BE_ASSIGNED' ] ,
1219+ first : 100 ,
1220+ after : after ,
1221+ } ,
1222+ } ) ;
1223+
1224+ } else {
1225+ result = await query < AssignableUsersResponse > ( {
1226+ query : schema . GetAssignableUsers ,
1227+ variables : {
1228+ owner : remote . owner ,
1229+ name : remote . repositoryName ,
1230+ first : 100 ,
1231+ after : after ,
1232+ } ,
1233+ } , true ) ; // we ignore SAML errors here because this query can happen at startup
1234+ }
12191235
12201236 if ( result . data . repository === null ) {
12211237 Logger . error ( 'Unexpected null repository when getting assignable users' , this . id ) ;
12221238 return [ ] ;
12231239 }
12241240
1241+ const users = ( result . data as AssignableUsersResponse ) . repository ?. assignableUsers ?? ( result . data as SuggestedActorsResponse ) . repository ?. suggestedActors ;
1242+
12251243 ret . push (
1226- ...result . data . repository . assignableUsers . nodes . map ( node => {
1244+ ...users ? .nodes . map ( node => {
12271245 return parseAccount ( node , this ) ;
12281246 } ) ,
12291247 ) ;
12301248
1231- hasNextPage = result . data . repository . assignableUsers . pageInfo . hasNextPage ;
1232- after = result . data . repository . assignableUsers . pageInfo . endCursor ;
1249+ hasNextPage = users ? .pageInfo . hasNextPage ;
1250+ after = users ? .pageInfo . endCursor ;
12331251 } catch ( e ) {
12341252 Logger . debug ( `Unable to fetch assignable users: ${ e } ` , this . id ) ;
12351253 if (
0 commit comments