55 getVariantAnalysisRepo ,
66} from "./gh-api/gh-api-client" ;
77import {
8+ authentication ,
9+ AuthenticationSessionsChangeEvent ,
810 CancellationToken ,
911 env ,
1012 EventEmitter ,
@@ -72,6 +74,7 @@ import {
7274 REPO_STATES_FILENAME ,
7375 writeRepoStates ,
7476} from "./repo-states-store" ;
77+ import { GITHUB_AUTH_PROVIDER_ID } from "../common/vscode/authentication" ;
7578
7679export class VariantAnalysisManager
7780 extends DisposableObject
@@ -131,6 +134,10 @@ export class VariantAnalysisManager
131134 this . variantAnalysisResultsManager . onResultLoaded (
132135 this . onRepoResultLoaded . bind ( this ) ,
133136 ) ;
137+
138+ this . push (
139+ authentication . onDidChangeSessions ( this . onDidChangeSessions . bind ( this ) ) ,
140+ ) ;
134141 }
135142
136143 getCommands ( ) : VariantAnalysisCommands {
@@ -144,6 +151,8 @@ export class VariantAnalysisManager
144151 this . monitorVariantAnalysis . bind ( this ) ,
145152 "codeQL.monitorRehydratedVariantAnalysis" :
146153 this . monitorVariantAnalysis . bind ( this ) ,
154+ "codeQL.monitorReauthenticatedVariantAnalysis" :
155+ this . monitorVariantAnalysis . bind ( this ) ,
147156 "codeQL.openVariantAnalysisLogs" : this . openVariantAnalysisLogs . bind ( this ) ,
148157 "codeQL.openVariantAnalysisView" : this . showView . bind ( this ) ,
149158 "codeQL.runVariantAnalysis" :
@@ -504,6 +513,38 @@ export class VariantAnalysisManager
504513 repoStates [ repoState . repositoryId ] = repoState ;
505514 }
506515
516+ private async onDidChangeSessions (
517+ event : AuthenticationSessionsChangeEvent ,
518+ ) : Promise < void > {
519+ if ( event . provider . id !== GITHUB_AUTH_PROVIDER_ID ) {
520+ return ;
521+ }
522+
523+ for ( const variantAnalysis of this . variantAnalyses . values ( ) ) {
524+ if (
525+ this . variantAnalysisMonitor . isMonitoringVariantAnalysis (
526+ variantAnalysis . id ,
527+ )
528+ ) {
529+ continue ;
530+ }
531+
532+ if (
533+ await isVariantAnalysisComplete (
534+ variantAnalysis ,
535+ this . makeResultDownloadChecker ( variantAnalysis ) ,
536+ )
537+ ) {
538+ continue ;
539+ }
540+
541+ void this . app . commands . execute (
542+ "codeQL.monitorReauthenticatedVariantAnalysis" ,
543+ variantAnalysis ,
544+ ) ;
545+ }
546+ }
547+
507548 public async monitorVariantAnalysis (
508549 variantAnalysis : VariantAnalysis ,
509550 ) : Promise < void > {
0 commit comments