@@ -85,8 +85,8 @@ export class IssueModel<TItem extends Issue = Issue> extends Disposable {
8585 }
8686 }
8787
88- get timelineEvents ( ) : readonly TimelineEvent [ ] {
89- return this . _timelineEvents ?? [ ] ;
88+ get timelineEvents ( ) : readonly TimelineEvent [ ] | undefined {
89+ return this . _timelineEvents ;
9090 }
9191
9292 protected set timelineEvents ( timelineEvents : readonly TimelineEvent [ ] ) {
@@ -469,8 +469,8 @@ export class IssueModel<TItem extends Issue = Issue> extends Disposable {
469469 }
470470 }
471471
472- async getIssueTimelineEvents ( issueModel : IssueModel ) : Promise < TimelineEvent [ ] > {
473- Logger . debug ( `Fetch timeline events of issue #${ issueModel . number } - enter` , GitHubRepository . ID ) ;
472+ async getIssueTimelineEvents ( ) : Promise < TimelineEvent [ ] > {
473+ Logger . debug ( `Fetch timeline events of issue #${ this . number } - enter` , GitHubRepository . ID ) ;
474474 const { query, remote, schema } = await this . githubRepository . ensure ( ) ;
475475
476476 try {
@@ -479,7 +479,7 @@ export class IssueModel<TItem extends Issue = Issue> extends Disposable {
479479 variables : {
480480 owner : remote . owner ,
481481 name : remote . repositoryName ,
482- number : issueModel . number ,
482+ number : this . number ,
483483 } ,
484484 } ) ;
485485
@@ -489,11 +489,11 @@ export class IssueModel<TItem extends Issue = Issue> extends Disposable {
489489 }
490490
491491 const ret = data . repository . pullRequest . timelineItems . nodes ;
492- const events = await parseCombinedTimelineEvents ( ret , await this . getCopilotTimelineEvents ( issueModel , true ) , this . githubRepository ) ;
492+ const events = await parseCombinedTimelineEvents ( ret , await this . getCopilotTimelineEvents ( true ) , this . githubRepository ) ;
493493
494494 const crossRefs = events . filter ( ( event ) : event is CrossReferencedEvent => {
495495 if ( ( event . event === EventType . CrossReferenced ) && ! event . source . isIssue ) {
496- return ! this . githubRepository . getExistingPullRequestModel ( event . source . number ) && ( compareIgnoreCase ( event . source . owner , issueModel . remote . owner ) === 0 && compareIgnoreCase ( event . source . repo , issueModel . remote . repositoryName ) === 0 ) ;
496+ return ! this . githubRepository . getExistingPullRequestModel ( event . source . number ) && ( compareIgnoreCase ( event . source . owner , this . remote . owner ) === 0 && compareIgnoreCase ( event . source . repo , this . remote . repositoryName ) === 0 ) ;
497497 }
498498 return false ;
499499
@@ -504,7 +504,7 @@ export class IssueModel<TItem extends Issue = Issue> extends Disposable {
504504 this . githubRepository . getPullRequest ( unseenPrs . source . number ) ;
505505 }
506506
507- issueModel . timelineEvents = events ;
507+ this . timelineEvents = events ;
508508 return events ;
509509 } catch ( e ) {
510510 console . log ( e ) ;
@@ -515,55 +515,55 @@ export class IssueModel<TItem extends Issue = Issue> extends Disposable {
515515 /**
516516 * TODO: @alexr00 we should delete this https://github.com/microsoft/vscode-pull-request-github/issues/6965
517517 */
518- async getCopilotTimelineEvents ( issueModel : IssueModel , skipMerge : boolean = false , useCache : boolean = false ) : Promise < TimelineEvent [ ] > {
519- if ( ! COPILOT_ACCOUNTS [ issueModel . author . login ] ) {
518+ async getCopilotTimelineEvents ( skipMerge : boolean = false , useCache : boolean = false ) : Promise < TimelineEvent [ ] > {
519+ if ( ! COPILOT_ACCOUNTS [ this . author . login ] ) {
520520 return [ ] ;
521521 }
522522
523- Logger . debug ( `Fetch Copilot timeline events of issue #${ issueModel . number } - enter` , GitHubRepository . ID ) ;
523+ Logger . debug ( `Fetch Copilot timeline events of issue #${ this . number } - enter` , GitHubRepository . ID ) ;
524524
525525 if ( useCache && this . _copilotTimelineEvents ) {
526- Logger . debug ( `Fetch Copilot timeline events of issue #${ issueModel . number } (used cache) - exit` , GitHubRepository . ID ) ;
526+ Logger . debug ( `Fetch Copilot timeline events of issue #${ this . number } (used cache) - exit` , GitHubRepository . ID ) ;
527527
528528 return this . _copilotTimelineEvents ;
529529 }
530530
531531 const { octokit, remote } = await this . githubRepository . ensure ( ) ;
532532 try {
533533 const timeline = await restPaginate < typeof octokit . api . issues . listEventsForTimeline , OctokitCommon . ListEventsForTimelineResponse > ( octokit . api . issues . listEventsForTimeline , {
534- issue_number : issueModel . number ,
534+ issue_number : this . number ,
535535 owner : remote . owner ,
536536 repo : remote . repositoryName ,
537537 per_page : 100
538538 } ) ;
539539
540- const timelineEvents = parseSelectRestTimelineEvents ( issueModel , timeline ) ;
540+ const timelineEvents = parseSelectRestTimelineEvents ( this , timeline ) ;
541541 this . _copilotTimelineEvents = timelineEvents ;
542542 if ( timelineEvents . length === 0 ) {
543543 return [ ] ;
544544 }
545545 if ( ! skipMerge ) {
546- const oldLastEvent = issueModel . timelineEvents . length > 0 ? issueModel . timelineEvents [ issueModel . timelineEvents . length - 1 ] : undefined ;
546+ const oldLastEvent = this . timelineEvents ? ( this . timelineEvents . length > 0 ? this . timelineEvents [ this . timelineEvents . length - 1 ] : undefined ) : undefined ;
547547 let allEvents : TimelineEvent [ ] ;
548548 if ( ! oldLastEvent ) {
549549 allEvents = timelineEvents ;
550550 } else {
551551 const oldEventTime = ( eventTime ( oldLastEvent ) ?? 0 ) ;
552552 const newEvents = timelineEvents . filter ( event => ( eventTime ( event ) ?? 0 ) > oldEventTime ) ;
553- allEvents = [ ...issueModel . timelineEvents , ...newEvents ] ;
553+ allEvents = [ ...( this . timelineEvents ?? [ ] ) , ...newEvents ] ;
554554 }
555- issueModel . timelineEvents = allEvents ;
555+ this . timelineEvents = allEvents ;
556556 }
557- Logger . debug ( `Fetch Copilot timeline events of issue #${ issueModel . number } - exit` , GitHubRepository . ID ) ;
557+ Logger . debug ( `Fetch Copilot timeline events of issue #${ this . number } - exit` , GitHubRepository . ID ) ;
558558 return timelineEvents ;
559559 } catch ( e ) {
560- Logger . error ( `Error fetching Copilot timeline events of issue #${ issueModel . number } - ${ formatError ( e ) } ` , GitHubRepository . ID ) ;
560+ Logger . error ( `Error fetching Copilot timeline events of issue #${ this . number } - ${ formatError ( e ) } ` , GitHubRepository . ID ) ;
561561 return [ ] ;
562562 }
563563 }
564564
565- async copilotWorkingStatus ( issueModel : IssueModel ) : Promise < CopilotWorkingStatus | undefined > {
566- const copilotEvents = await this . getCopilotTimelineEvents ( issueModel ) ;
565+ async copilotWorkingStatus ( ) : Promise < CopilotWorkingStatus | undefined > {
566+ const copilotEvents = await this . getCopilotTimelineEvents ( ) ;
567567 if ( copilotEvents . length > 0 ) {
568568 const lastEvent = copilotEvents [ copilotEvents . length - 1 ] ;
569569 if ( lastEvent . event === EventType . CopilotFinished ) {
0 commit comments