11import { join } from "path" ;
22import { Uri , window as Window , window , workspace } from "vscode" ;
33import { CodeQLCliServer } from "../codeql-cli/cli" ;
4- import { BaseLogger } from "../common/logging" ;
4+ import { showAndLogExceptionWithTelemetry } from "../common/logging" ;
55import { Credentials } from "../common/authentication" ;
66import { QueryLanguage } from "../common/query-language" ;
77import {
88 getFirstWorkspaceFolder ,
99 isFolderAlreadyInWorkspace ,
1010} from "../common/vscode/workspace-folders" ;
11- import { getErrorMessage } from "../common/helpers-pure" ;
11+ import { asError , getErrorMessage } from "../common/helpers-pure" ;
1212import { QlPackGenerator } from "./qlpack-generator" ;
1313import { DatabaseItem , DatabaseManager } from "../databases/local-databases" ;
1414import {
@@ -28,6 +28,8 @@ import {
2828import { existsSync } from "fs-extra" ;
2929import { askForLanguage } from "../codeql-cli/query-language" ;
3030import { showInformationMessageWithAction } from "../common/vscode/dialog" ;
31+ import { redactableError } from "../common/errors" ;
32+ import { App } from "../common/app" ;
3133
3234type QueryLanguagesToDatabaseMap = Record < string , string > ;
3335
@@ -51,7 +53,7 @@ export class SkeletonQueryWizard {
5153 private readonly cliServer : CodeQLCliServer ,
5254 private readonly progress : ProgressCallback ,
5355 private readonly credentials : Credentials | undefined ,
54- private readonly logger : BaseLogger ,
56+ private readonly app : App ,
5557 private readonly databaseManager : DatabaseManager ,
5658 private readonly databaseStoragePath : string | undefined ,
5759 private language : QueryLanguage | undefined = undefined ,
@@ -99,7 +101,7 @@ export class SkeletonQueryWizard {
99101 try {
100102 await this . openExampleFile ( ) ;
101103 } catch ( e : unknown ) {
102- void this . logger . log (
104+ void this . app . logger . log (
103105 `Could not open example query file: ${ getErrorMessage ( e ) } ` ,
104106 ) ;
105107 }
@@ -190,7 +192,7 @@ export class SkeletonQueryWizard {
190192
191193 await qlPackGenerator . generate ( ) ;
192194 } catch ( e : unknown ) {
193- void this . logger . log (
195+ void this . app . logger . log (
194196 `Could not create skeleton QL pack: ${ getErrorMessage ( e ) } ` ,
195197 ) ;
196198 }
@@ -222,7 +224,7 @@ export class SkeletonQueryWizard {
222224 this . fileName = await this . determineNextFileName ( this . folderName ) ;
223225 await qlPackGenerator . createExampleQlFile ( this . fileName ) ;
224226 } catch ( e : unknown ) {
225- void this . logger . log (
227+ void this . app . logger . log (
226228 `Could not create skeleton QL pack: ${ getErrorMessage ( e ) } ` ,
227229 ) ;
228230 }
@@ -255,7 +257,25 @@ export class SkeletonQueryWizard {
255257 ) ;
256258
257259 if ( action ) {
258- void withProgress ( ( progress ) => this . downloadDatabase ( progress ) ) ;
260+ void withProgress ( async ( progress ) => {
261+ try {
262+ await this . downloadDatabase ( progress ) ;
263+ } catch ( e : unknown ) {
264+ if ( e instanceof UserCancellationException ) {
265+ return ;
266+ }
267+
268+ void showAndLogExceptionWithTelemetry (
269+ this . app . logger ,
270+ this . app . telemetry ,
271+ redactableError (
272+ asError ( e ) ,
273+ ) `An error occurred while downloading the GitHub repository: ${ getErrorMessage (
274+ e ,
275+ ) } `,
276+ ) ;
277+ }
278+ } ) ;
259279 }
260280 }
261281
0 commit comments