@@ -130,33 +130,38 @@ async function runRemoteQueriesApiRequest(credentials: Credentials, ref: string,
130130 void showAndLogInformationMessage ( `Successfully scheduled runs. [Click here to see the progress](https://github.com/${ OWNER } /${ REPO } /actions).` ) ;
131131
132132 } catch ( error ) {
133- if ( typeof error . message === 'string' && error . message . includes ( 'Some repositories were invalid' ) ) {
134- const invalidRepos = error ?. response ?. data ?. invalid_repos || [ ] ;
135- const reposWithoutDbUploads = error ?. response ?. data ?. repos_without_db_uploads || [ ] ;
136- void logger . log ( 'Unable to run query on some of the specified repositories' ) ;
137- if ( invalidRepos . length > 0 ) {
138- void logger . log ( `Invalid repos: ${ invalidRepos . join ( ', ' ) } ` ) ;
139- }
140- if ( reposWithoutDbUploads . length > 0 ) {
141- void logger . log ( `Repos without DB uploads: ${ reposWithoutDbUploads . join ( ', ' ) } ` ) ;
142- }
133+ await validateRepositories ( error , credentials , ref , language , repositories , query ) ;
134+ }
135+ }
143136
144- if ( invalidRepos . length + reposWithoutDbUploads . length === repositories . length ) {
145- // Every repo is invalid in some way
146- void showAndLogErrorMessage ( 'Unable to run query on any of the specified repositories.' ) ;
147- return ;
148- }
137+ async function validateRepositories ( error : any , credentials : Credentials , ref : string , language : string , repositories : string [ ] , query : string ) {
138+ if ( typeof error . message === 'string' && error . message . includes ( 'Some repositories were invalid' ) ) {
139+ const invalidRepos = error ?. response ?. data ?. invalid_repos || [ ] ;
140+ const reposWithoutDbUploads = error ?. response ?. data ?. repos_without_db_uploads || [ ] ;
141+ void logger . log ( 'Unable to run query on some of the specified repositories' ) ;
142+ if ( invalidRepos . length > 0 ) {
143+ void logger . log ( `Invalid repos: ${ invalidRepos . join ( ', ' ) } ` ) ;
144+ }
145+ if ( reposWithoutDbUploads . length > 0 ) {
146+ void logger . log ( `Repos without DB uploads: ${ reposWithoutDbUploads . join ( ', ' ) } ` ) ;
147+ }
149148
150- const popupMessage = 'Unable to run query on some of the specified repositories. [See logs for more details](command:codeQL.showLogs).' ;
151- const rerunQuery = await showInformationMessageWithAction ( popupMessage , 'Rerun on the valid repositories only' ) ;
152- if ( rerunQuery ) {
153- const validRepositories = repositories . filter ( r => ! invalidRepos . includes ( r ) && ! reposWithoutDbUploads . includes ( r ) ) ;
154- void logger . log ( `Rerunning query on set of valid repositories: ${ JSON . stringify ( validRepositories ) } ` ) ;
155- await runRemoteQueriesApiRequest ( credentials , ref , language , validRepositories , query ) ;
156- }
149+ if ( invalidRepos . length + reposWithoutDbUploads . length === repositories . length ) {
150+ // Every repo is invalid in some way
151+ void showAndLogErrorMessage ( 'Unable to run query on any of the specified repositories.' ) ;
152+ return ;
153+ }
157154
158- } else {
159- void showAndLogErrorMessage ( error ) ;
155+ const popupMessage = 'Unable to run query on some of the specified repositories. [See logs for more details](command:codeQL.showLogs).' ;
156+ const rerunQuery = await showInformationMessageWithAction ( popupMessage , 'Rerun on the valid repositories only' ) ;
157+ if ( rerunQuery ) {
158+ const validRepositories = repositories . filter ( r => ! invalidRepos . includes ( r ) && ! reposWithoutDbUploads . includes ( r ) ) ;
159+ void logger . log ( `Rerunning query on set of valid repositories: ${ JSON . stringify ( validRepositories ) } ` ) ;
160+ await runRemoteQueriesApiRequest ( credentials , ref , language , validRepositories , query ) ;
160161 }
162+
163+ } else {
164+ void showAndLogErrorMessage ( error ) ;
161165 }
166+
162167}
0 commit comments