@@ -192,11 +192,9 @@ export class CopilotApi {
192192 return copilotSteps ;
193193 }
194194
195- public async getAllSessions ( pullRequestId : number | undefined ) : Promise < SessionInfo [ ] > {
195+ public async getAllSessions ( pullRequestId : number ) : Promise < SessionInfo [ ] > {
196196 const response = await this . makeApiCall (
197- pullRequestId
198- ? `/agents/sessions/resource/pull/${ pullRequestId } `
199- : `/agents/sessions?page_size=100` ,
197+ `/agents/sessions/resource/pull/${ pullRequestId } ` ,
200198 {
201199 headers : {
202200 Authorization : `Bearer ${ this . token } ` ,
@@ -210,6 +208,32 @@ export class CopilotApi {
210208 return sessions . sessions ;
211209 }
212210
211+ public async getAllSessionsForAllRepositories ( ) : Promise < SessionInfo [ ] > {
212+ let hasNextPage = false ;
213+ const sessionInfos : SessionInfo [ ] = [ ] ;
214+ const page_size = 20 ;
215+ let page = 1 ;
216+ do {
217+ const response = await this . makeApiCall (
218+ `/agents/sessions?page_size=${ page_size } &page_number=${ page } ` ,
219+ {
220+ headers : {
221+ Authorization : `Bearer ${ this . token } ` ,
222+ Accept : 'application/json' ,
223+ } ,
224+ } ) ;
225+ if ( ! response . ok ) {
226+ throw new Error ( `Failed to fetch sessions: ${ response . statusText } ` ) ;
227+ }
228+ const sessions = await response . json ( ) ;
229+ sessionInfos . push ( ...sessions . sessions ) ;
230+ hasNextPage = sessions . sessions . length === page_size ;
231+ page ++ ;
232+ } while ( hasNextPage ) ;
233+
234+ return sessionInfos ;
235+ }
236+
213237 public async getPullRequestFromSession ( globalId ) : Promise < SessionPullRequestInfo | undefined > {
214238 try {
215239 const { data } = await this . graphql . query ( {
0 commit comments