From aa64459353b56630cce6deffcfcf1229cabc4a35 Mon Sep 17 00:00:00 2001 From: Robert Date: Mon, 20 Mar 2023 15:10:29 +0000 Subject: [PATCH 1/7] Convert existing variant analysis commands to bind(this) --- .../src/variant-analysis/variant-analysis-manager.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts index 9bd7f201d63..cefb0ef6dde 100644 --- a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts +++ b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts @@ -131,14 +131,12 @@ export class VariantAnalysisManager getCommands(): VariantAnalysisCommands { return { - "codeQL.openVariantAnalysisLogs": async (variantAnalysisId: number) => { - await this.openVariantAnalysisLogs(variantAnalysisId); - }, - "codeQL.runVariantAnalysis": async (uri?: Uri) => - this.runVariantAnalysisFromCommand(uri), + "codeQL.openVariantAnalysisLogs": this.openVariantAnalysisLogs.bind(this), + "codeQL.runVariantAnalysis": + this.runVariantAnalysisFromCommand.bind(this), // Since we are tracking extension usage through commands, this command mirrors the "codeQL.runVariantAnalysis" command - "codeQL.runVariantAnalysisContextEditor": async (uri?: Uri) => - this.runVariantAnalysisFromCommand(uri), + "codeQL.runVariantAnalysisContextEditor": + this.runVariantAnalysisFromCommand.bind(this), }; } From 08849c1df46f7374de51652228a9bcbd2a7496e0 Mon Sep 17 00:00:00 2001 From: Robert Date: Mon, 20 Mar 2023 15:23:54 +0000 Subject: [PATCH 2/7] Convert codeQL.copyVariantAnalysisRepoList command --- extensions/ql-vscode/src/common/commands.ts | 6 ++++++ extensions/ql-vscode/src/extension.ts | 15 --------------- .../variant-analysis/variant-analysis-manager.ts | 2 ++ 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/extensions/ql-vscode/src/common/commands.ts b/extensions/ql-vscode/src/common/commands.ts index 051e59394e4..472d9976d5d 100644 --- a/extensions/ql-vscode/src/common/commands.ts +++ b/extensions/ql-vscode/src/common/commands.ts @@ -2,6 +2,8 @@ import type { CommandManager } from "../packages/commands"; import type { Uri } from "vscode"; import type { DbTreeViewItem } from "../databases/ui/db-tree-view-item"; import type { QueryHistoryInfo } from "../query-history/query-history-info"; +import { RepositoriesFilterSortStateWithIds } from "../pure/variant-analysis-filter-sort"; +import { VariantAnalysis } from "../variant-analysis/shared/variant-analysis"; // A command function matching the signature that VS Code calls when // a command on a selection is invoked. @@ -62,6 +64,10 @@ export type QueryHistoryCommands = { // Commands tied to variant analysis export type VariantAnalysisCommands = { + "codeQL.copyVariantAnalysisRepoList": ( + variantAnalysisId: number, + filterSort?: RepositoriesFilterSortStateWithIds, + ) => Promise; "codeQL.openVariantAnalysisLogs": ( variantAnalysisId: number, ) => Promise; diff --git a/extensions/ql-vscode/src/extension.ts b/extensions/ql-vscode/src/extension.ts index 00203bd6a99..8a833b84393 100644 --- a/extensions/ql-vscode/src/extension.ts +++ b/extensions/ql-vscode/src/extension.ts @@ -1100,21 +1100,6 @@ async function activateWithInstalledDistribution( app.commands.register(commandName as keyof AllCommands, command); } - ctx.subscriptions.push( - commandRunner( - "codeQL.copyVariantAnalysisRepoList", - async ( - variantAnalysisId: number, - filterSort?: RepositoriesFilterSortStateWithIds, - ) => { - await variantAnalysisManager.copyRepoListToClipboard( - variantAnalysisId, - filterSort, - ); - }, - ), - ); - ctx.subscriptions.push( commandRunner( "codeQL.monitorVariantAnalysis", diff --git a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts index cefb0ef6dde..127c71870c2 100644 --- a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts +++ b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts @@ -131,6 +131,8 @@ export class VariantAnalysisManager getCommands(): VariantAnalysisCommands { return { + "codeQL.copyVariantAnalysisRepoList": + this.copyRepoListToClipboard.bind(this), "codeQL.openVariantAnalysisLogs": this.openVariantAnalysisLogs.bind(this), "codeQL.runVariantAnalysis": this.runVariantAnalysisFromCommand.bind(this), From b55910d2b98f105e22178902e24e06b5b2aa8e4e Mon Sep 17 00:00:00 2001 From: Robert Date: Mon, 20 Mar 2023 15:27:19 +0000 Subject: [PATCH 3/7] Convert the codeQL.monitorVariantAnalysis command --- extensions/ql-vscode/src/common/commands.ts | 3 +++ extensions/ql-vscode/src/extension.ts | 12 --------- .../variant-analysis-manager.ts | 3 +-- .../variant-analysis-monitor.ts | 7 +----- .../variant-analysis-monitor.test.ts | 25 +------------------ 5 files changed, 6 insertions(+), 44 deletions(-) diff --git a/extensions/ql-vscode/src/common/commands.ts b/extensions/ql-vscode/src/common/commands.ts index 472d9976d5d..fd7f47e9b68 100644 --- a/extensions/ql-vscode/src/common/commands.ts +++ b/extensions/ql-vscode/src/common/commands.ts @@ -68,6 +68,9 @@ export type VariantAnalysisCommands = { variantAnalysisId: number, filterSort?: RepositoriesFilterSortStateWithIds, ) => Promise; + "codeQL.monitorVariantAnalysis": ( + variantAnalysis: VariantAnalysis, + ) => Promise; "codeQL.openVariantAnalysisLogs": ( variantAnalysisId: number, ) => Promise; diff --git a/extensions/ql-vscode/src/extension.ts b/extensions/ql-vscode/src/extension.ts index 8a833b84393..6f590d093c6 100644 --- a/extensions/ql-vscode/src/extension.ts +++ b/extensions/ql-vscode/src/extension.ts @@ -1100,18 +1100,6 @@ async function activateWithInstalledDistribution( app.commands.register(commandName as keyof AllCommands, command); } - ctx.subscriptions.push( - commandRunner( - "codeQL.monitorVariantAnalysis", - async (variantAnalysis: VariantAnalysis, token: CancellationToken) => { - await variantAnalysisManager.monitorVariantAnalysis( - variantAnalysis, - token, - ); - }, - ), - ); - ctx.subscriptions.push( commandRunner( "codeQL.autoDownloadVariantAnalysisResult", diff --git a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts index 127c71870c2..7256f80a2ea 100644 --- a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts +++ b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts @@ -133,6 +133,7 @@ export class VariantAnalysisManager return { "codeQL.copyVariantAnalysisRepoList": this.copyRepoListToClipboard.bind(this), + "codeQL.monitorVariantAnalysis": this.monitorVariantAnalysis.bind(this), "codeQL.openVariantAnalysisLogs": this.openVariantAnalysisLogs.bind(this), "codeQL.runVariantAnalysis": this.runVariantAnalysisFromCommand.bind(this), @@ -496,12 +497,10 @@ export class VariantAnalysisManager public async monitorVariantAnalysis( variantAnalysis: VariantAnalysis, - cancellationToken: CancellationToken, ): Promise { await this.variantAnalysisMonitor.monitorVariantAnalysis( variantAnalysis, this.app.credentials, - cancellationToken, ); } diff --git a/extensions/ql-vscode/src/variant-analysis/variant-analysis-monitor.ts b/extensions/ql-vscode/src/variant-analysis/variant-analysis-monitor.ts index f7683fb4b67..7fa8f3b1470 100644 --- a/extensions/ql-vscode/src/variant-analysis/variant-analysis-monitor.ts +++ b/extensions/ql-vscode/src/variant-analysis/variant-analysis-monitor.ts @@ -1,4 +1,4 @@ -import { CancellationToken, commands, EventEmitter } from "vscode"; +import { commands, EventEmitter } from "vscode"; import { getVariantAnalysis } from "./gh-api/gh-api-client"; import { @@ -37,7 +37,6 @@ export class VariantAnalysisMonitor extends DisposableObject { public async monitorVariantAnalysis( variantAnalysis: VariantAnalysis, credentials: Credentials, - cancellationToken: CancellationToken, ): Promise { let attemptCount = 0; const scannedReposDownloaded: number[] = []; @@ -45,10 +44,6 @@ export class VariantAnalysisMonitor extends DisposableObject { while (attemptCount <= VariantAnalysisMonitor.maxAttemptCount) { await sleep(VariantAnalysisMonitor.sleepTime); - if (cancellationToken && cancellationToken.isCancellationRequested) { - return; - } - if (await this.shouldCancelMonitor(variantAnalysis.id)) { return; } diff --git a/extensions/ql-vscode/test/vscode-tests/activated-extension/variant-analysis/variant-analysis-monitor.test.ts b/extensions/ql-vscode/test/vscode-tests/activated-extension/variant-analysis/variant-analysis-monitor.test.ts index 0c9082c91ac..18cb88f423e 100644 --- a/extensions/ql-vscode/test/vscode-tests/activated-extension/variant-analysis/variant-analysis-monitor.test.ts +++ b/extensions/ql-vscode/test/vscode-tests/activated-extension/variant-analysis/variant-analysis-monitor.test.ts @@ -1,4 +1,4 @@ -import { CancellationTokenSource, commands, extensions } from "vscode"; +import { commands, extensions } from "vscode"; import { CodeQLExtensionInterface } from "../../../../src/extension"; import * as ghApiClient from "../../../../src/variant-analysis/gh-api/gh-api-client"; @@ -33,7 +33,6 @@ describe("Variant Analysis Monitor", () => { let mockGetVariantAnalysis: jest.SpiedFunction< typeof ghApiClient.getVariantAnalysis >; - let cancellationTokenSource: CancellationTokenSource; let variantAnalysisMonitor: VariantAnalysisMonitor; let shouldCancelMonitor: jest.Mock, [number]>; let variantAnalysis: VariantAnalysis; @@ -45,8 +44,6 @@ describe("Variant Analysis Monitor", () => { const onVariantAnalysisChangeSpy = jest.fn(); beforeEach(async () => { - cancellationTokenSource = new CancellationTokenSource(); - variantAnalysis = createMockVariantAnalysis({}); shouldCancelMonitor = jest.fn(); @@ -71,25 +68,12 @@ describe("Variant Analysis Monitor", () => { limitNumberOfAttemptsToMonitor(); }); - it("should return early if variant analysis is cancelled", async () => { - cancellationTokenSource.cancel(); - - await variantAnalysisMonitor.monitorVariantAnalysis( - variantAnalysis, - testCredentialsWithStub(), - cancellationTokenSource.token, - ); - - expect(onVariantAnalysisChangeSpy).not.toHaveBeenCalled(); - }); - it("should return early if variant analysis should be cancelled", async () => { shouldCancelMonitor.mockResolvedValue(true); await variantAnalysisMonitor.monitorVariantAnalysis( variantAnalysis, testCredentialsWithStub(), - cancellationTokenSource.token, ); expect(onVariantAnalysisChangeSpy).not.toHaveBeenCalled(); @@ -107,7 +91,6 @@ describe("Variant Analysis Monitor", () => { await variantAnalysisMonitor.monitorVariantAnalysis( variantAnalysis, testCredentialsWithStub(), - cancellationTokenSource.token, ); expect(mockGetVariantAnalysis).toHaveBeenCalledTimes(1); @@ -157,7 +140,6 @@ describe("Variant Analysis Monitor", () => { await variantAnalysisMonitor.monitorVariantAnalysis( variantAnalysis, testCredentialsWithStub(), - cancellationTokenSource.token, ); expect(commandSpy).toBeCalledTimes(succeededRepos.length); @@ -176,7 +158,6 @@ describe("Variant Analysis Monitor", () => { await variantAnalysisMonitor.monitorVariantAnalysis( variantAnalysis, testCredentialsWithStub(), - cancellationTokenSource.token, ); expect(mockGetDownloadResult).toBeCalledTimes(succeededRepos.length); @@ -209,7 +190,6 @@ describe("Variant Analysis Monitor", () => { await variantAnalysisMonitor.monitorVariantAnalysis( variantAnalysis, testCredentialsWithStub(), - cancellationTokenSource.token, ); expect(commandSpy).not.toHaveBeenCalled(); @@ -219,7 +199,6 @@ describe("Variant Analysis Monitor", () => { await variantAnalysisMonitor.monitorVariantAnalysis( variantAnalysis, testCredentialsWithStub(), - cancellationTokenSource.token, ); expect(mockGetDownloadResult).not.toBeCalled(); @@ -278,7 +257,6 @@ describe("Variant Analysis Monitor", () => { await variantAnalysisMonitor.monitorVariantAnalysis( variantAnalysis, testCredentialsWithStub(), - cancellationTokenSource.token, ); expect(mockGetVariantAnalysis).toBeCalledTimes(4); @@ -297,7 +275,6 @@ describe("Variant Analysis Monitor", () => { await variantAnalysisMonitor.monitorVariantAnalysis( variantAnalysis, testCredentialsWithStub(), - cancellationTokenSource.token, ); expect(mockGetDownloadResult).not.toBeCalled(); From 5f2a8fa1d51d91fe8c400301318174b91c369fdb Mon Sep 17 00:00:00 2001 From: Robert Date: Mon, 20 Mar 2023 15:30:19 +0000 Subject: [PATCH 4/7] Convert the codeQL.autoDownloadVariantAnalysisResult command --- extensions/ql-vscode/src/common/commands.ts | 9 +++++- extensions/ql-vscode/src/extension.ts | 21 ------------- .../variant-analysis-manager.ts | 17 ++-------- .../variant-analysis-manager.test.ts | 31 ------------------- .../variant-analysis-monitor.test.ts | 1 - 5 files changed, 11 insertions(+), 68 deletions(-) diff --git a/extensions/ql-vscode/src/common/commands.ts b/extensions/ql-vscode/src/common/commands.ts index fd7f47e9b68..24c8b0e98a8 100644 --- a/extensions/ql-vscode/src/common/commands.ts +++ b/extensions/ql-vscode/src/common/commands.ts @@ -3,7 +3,10 @@ import type { Uri } from "vscode"; import type { DbTreeViewItem } from "../databases/ui/db-tree-view-item"; import type { QueryHistoryInfo } from "../query-history/query-history-info"; import { RepositoriesFilterSortStateWithIds } from "../pure/variant-analysis-filter-sort"; -import { VariantAnalysis } from "../variant-analysis/shared/variant-analysis"; +import { + VariantAnalysis, + VariantAnalysisScannedRepository, +} from "../variant-analysis/shared/variant-analysis"; // A command function matching the signature that VS Code calls when // a command on a selection is invoked. @@ -64,6 +67,10 @@ export type QueryHistoryCommands = { // Commands tied to variant analysis export type VariantAnalysisCommands = { + "codeQL.autoDownloadVariantAnalysisResult": ( + scannedRepo: VariantAnalysisScannedRepository, + variantAnalysisSummary: VariantAnalysis, + ) => Promise; "codeQL.copyVariantAnalysisRepoList": ( variantAnalysisId: number, filterSort?: RepositoriesFilterSortStateWithIds, diff --git a/extensions/ql-vscode/src/extension.ts b/extensions/ql-vscode/src/extension.ts index 6f590d093c6..cf045bf2d8b 100644 --- a/extensions/ql-vscode/src/extension.ts +++ b/extensions/ql-vscode/src/extension.ts @@ -120,10 +120,6 @@ import { NewQueryRunner } from "./query-server/query-runner"; import { QueryRunner } from "./queryRunner"; import { VariantAnalysisView } from "./variant-analysis/variant-analysis-view"; import { VariantAnalysisViewSerializer } from "./variant-analysis/variant-analysis-view-serializer"; -import { - VariantAnalysis, - VariantAnalysisScannedRepository, -} from "./variant-analysis/shared/variant-analysis"; import { VariantAnalysisManager } from "./variant-analysis/variant-analysis-manager"; import { createVariantAnalysisContentProvider } from "./variant-analysis/variant-analysis-content-provider"; import { VSCodeMockGitHubApiServer } from "./mocks/vscode-mock-gh-api-server"; @@ -1100,23 +1096,6 @@ async function activateWithInstalledDistribution( app.commands.register(commandName as keyof AllCommands, command); } - ctx.subscriptions.push( - commandRunner( - "codeQL.autoDownloadVariantAnalysisResult", - async ( - scannedRepo: VariantAnalysisScannedRepository, - variantAnalysisSummary: VariantAnalysis, - token: CancellationToken, - ) => { - await variantAnalysisManager.enqueueDownload( - scannedRepo, - variantAnalysisSummary, - token, - ); - }, - ), - ); - ctx.subscriptions.push( commandRunner("codeQL.exportSelectedVariantAnalysisResults", async () => { await exportSelectedVariantAnalysisResults(variantAnalysisManager, qhm); diff --git a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts index 7256f80a2ea..f5fc5fb754c 100644 --- a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts +++ b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts @@ -131,6 +131,8 @@ export class VariantAnalysisManager getCommands(): VariantAnalysisCommands { return { + "codeQL.autoDownloadVariantAnalysisResult": + this.enqueueDownload.bind(this), "codeQL.copyVariantAnalysisRepoList": this.copyRepoListToClipboard.bind(this), "codeQL.monitorVariantAnalysis": this.monitorVariantAnalysis.bind(this), @@ -507,7 +509,6 @@ export class VariantAnalysisManager public async autoDownloadVariantAnalysisResult( scannedRepo: VariantAnalysisScannedRepository, variantAnalysis: VariantAnalysis, - cancellationToken: CancellationToken, ): Promise { if ( this.repoStates.get(variantAnalysis.id)?.[scannedRepo.repository.id] @@ -524,13 +525,6 @@ export class VariantAnalysisManager await this.onRepoStateUpdated(variantAnalysis.id, repoState); - if (cancellationToken && cancellationToken.isCancellationRequested) { - repoState.downloadStatus = - VariantAnalysisScannedRepositoryDownloadStatus.Failed; - await this.onRepoStateUpdated(variantAnalysis.id, repoState); - return; - } - let repoTask: VariantAnalysisRepositoryTask; try { const repoTaskResponse = await getVariantAnalysisRepo( @@ -605,14 +599,9 @@ export class VariantAnalysisManager public async enqueueDownload( scannedRepo: VariantAnalysisScannedRepository, variantAnalysis: VariantAnalysis, - token: CancellationToken, ): Promise { await this.queue.add(() => - this.autoDownloadVariantAnalysisResult( - scannedRepo, - variantAnalysis, - token, - ), + this.autoDownloadVariantAnalysisResult(scannedRepo, variantAnalysis), ); } diff --git a/extensions/ql-vscode/test/vscode-tests/activated-extension/variant-analysis/variant-analysis-manager.test.ts b/extensions/ql-vscode/test/vscode-tests/activated-extension/variant-analysis/variant-analysis-manager.test.ts index 024a1bc823e..05e9b5ed686 100644 --- a/extensions/ql-vscode/test/vscode-tests/activated-extension/variant-analysis/variant-analysis-manager.test.ts +++ b/extensions/ql-vscode/test/vscode-tests/activated-extension/variant-analysis/variant-analysis-manager.test.ts @@ -1,5 +1,4 @@ import { - CancellationTokenSource, commands, env, extensions, @@ -54,7 +53,6 @@ jest.setTimeout(3 * 60 * 1000); describe("Variant Analysis Manager", () => { let app: App; - let cancellationTokenSource: CancellationTokenSource; let variantAnalysisManager: VariantAnalysisManager; let variantAnalysisResultsManager: VariantAnalysisResultsManager; let variantAnalysis: VariantAnalysis; @@ -63,8 +61,6 @@ describe("Variant Analysis Manager", () => { beforeEach(async () => { jest.spyOn(extLogger, "log").mockResolvedValue(undefined); - cancellationTokenSource = new CancellationTokenSource(); - scannedRepos = createMockScannedRepos(); variantAnalysis = createMockVariantAnalysis({ status: VariantAnalysisStatus.InProgress, @@ -203,7 +199,6 @@ describe("Variant Analysis Manager", () => { await variantAnalysisManager.autoDownloadVariantAnalysisResult( scannedRepos[0], variantAnalysis, - cancellationTokenSource.token, ); expect(getVariantAnalysisRepoResultStub).not.toHaveBeenCalled(); @@ -228,23 +223,10 @@ describe("Variant Analysis Manager", () => { getVariantAnalysisRepoResultStub.mockResolvedValue(response); }); - it("should return early if variant analysis is cancelled", async () => { - cancellationTokenSource.cancel(); - - await variantAnalysisManager.autoDownloadVariantAnalysisResult( - scannedRepos[0], - variantAnalysis, - cancellationTokenSource.token, - ); - - expect(getVariantAnalysisRepoStub).not.toHaveBeenCalled(); - }); - it("should fetch a repo task", async () => { await variantAnalysisManager.autoDownloadVariantAnalysisResult( scannedRepos[0], variantAnalysis, - cancellationTokenSource.token, ); expect(getVariantAnalysisRepoStub).toHaveBeenCalled(); @@ -254,7 +236,6 @@ describe("Variant Analysis Manager", () => { await variantAnalysisManager.autoDownloadVariantAnalysisResult( scannedRepos[0], variantAnalysis, - cancellationTokenSource.token, ); expect(getVariantAnalysisRepoResultStub).toHaveBeenCalled(); @@ -265,7 +246,6 @@ describe("Variant Analysis Manager", () => { await variantAnalysisManager.autoDownloadVariantAnalysisResult( scannedRepos[0], variantAnalysis, - cancellationTokenSource.token, ); getVariantAnalysisRepoStub.mockClear(); @@ -273,7 +253,6 @@ describe("Variant Analysis Manager", () => { await variantAnalysisManager.autoDownloadVariantAnalysisResult( scannedRepos[0], variantAnalysis, - cancellationTokenSource.token, ); expect(getVariantAnalysisRepoStub).not.toHaveBeenCalled(); @@ -283,7 +262,6 @@ describe("Variant Analysis Manager", () => { await variantAnalysisManager.autoDownloadVariantAnalysisResult( scannedRepos[0], variantAnalysis, - cancellationTokenSource.token, ); await expect(fs.readJson(repoStatesPath)).resolves.toEqual({ @@ -304,7 +282,6 @@ describe("Variant Analysis Manager", () => { variantAnalysisManager.autoDownloadVariantAnalysisResult( scannedRepos[0], variantAnalysis, - cancellationTokenSource.token, ), ).rejects.toThrow(); @@ -320,7 +297,6 @@ describe("Variant Analysis Manager", () => { variantAnalysisManager.autoDownloadVariantAnalysisResult( scannedRepos[0], variantAnalysis, - cancellationTokenSource.token, ), ).rejects.toThrow(); @@ -329,7 +305,6 @@ describe("Variant Analysis Manager", () => { await variantAnalysisManager.autoDownloadVariantAnalysisResult( scannedRepos[1], variantAnalysis, - cancellationTokenSource.token, ); await expect(fs.readJson(repoStatesPath)).resolves.toEqual({ @@ -355,7 +330,6 @@ describe("Variant Analysis Manager", () => { variantAnalysisManager.autoDownloadVariantAnalysisResult( scannedRepos[0], variantAnalysis, - cancellationTokenSource.token, ), ).rejects.toThrow(); @@ -364,7 +338,6 @@ describe("Variant Analysis Manager", () => { await variantAnalysisManager.autoDownloadVariantAnalysisResult( scannedRepos[1], variantAnalysis, - cancellationTokenSource.token, ); await expect(fs.readJson(repoStatesPath)).resolves.toEqual({ @@ -400,7 +373,6 @@ describe("Variant Analysis Manager", () => { await variantAnalysisManager.autoDownloadVariantAnalysisResult( scannedRepos[0], variantAnalysis, - cancellationTokenSource.token, ); await expect(fs.readJson(repoStatesPath)).resolves.toEqual({ @@ -439,17 +411,14 @@ describe("Variant Analysis Manager", () => { await variantAnalysisManager.enqueueDownload( scannedRepos[0], variantAnalysis, - cancellationTokenSource.token, ); await variantAnalysisManager.enqueueDownload( scannedRepos[1], variantAnalysis, - cancellationTokenSource.token, ); await variantAnalysisManager.enqueueDownload( scannedRepos[2], variantAnalysis, - cancellationTokenSource.token, ); expect(variantAnalysisManager.downloadsQueueSize()).toBe(0); diff --git a/extensions/ql-vscode/test/vscode-tests/activated-extension/variant-analysis/variant-analysis-monitor.test.ts b/extensions/ql-vscode/test/vscode-tests/activated-extension/variant-analysis/variant-analysis-monitor.test.ts index 18cb88f423e..329e8568583 100644 --- a/extensions/ql-vscode/test/vscode-tests/activated-extension/variant-analysis/variant-analysis-monitor.test.ts +++ b/extensions/ql-vscode/test/vscode-tests/activated-extension/variant-analysis/variant-analysis-monitor.test.ts @@ -167,7 +167,6 @@ describe("Variant Analysis Monitor", () => { index + 1, processScannedRepository(succeededRepo), processUpdatedVariantAnalysis(variantAnalysis, mockApiResponse), - undefined, ); }); }); From ac0d9201569234331e2224d2a384f751fba974da Mon Sep 17 00:00:00 2001 From: Robert Date: Mon, 20 Mar 2023 15:41:28 +0000 Subject: [PATCH 5/7] Convert the codeQL.loadVariantAnalysisRepoResults command --- extensions/ql-vscode/src/common/commands.ts | 5 +++++ extensions/ql-vscode/src/extension.ts | 13 ------------- .../variant-analysis/variant-analysis-manager.ts | 1 + 3 files changed, 6 insertions(+), 13 deletions(-) diff --git a/extensions/ql-vscode/src/common/commands.ts b/extensions/ql-vscode/src/common/commands.ts index 24c8b0e98a8..930570f05eb 100644 --- a/extensions/ql-vscode/src/common/commands.ts +++ b/extensions/ql-vscode/src/common/commands.ts @@ -6,6 +6,7 @@ import { RepositoriesFilterSortStateWithIds } from "../pure/variant-analysis-fil import { VariantAnalysis, VariantAnalysisScannedRepository, + VariantAnalysisScannedRepositoryResult, } from "../variant-analysis/shared/variant-analysis"; // A command function matching the signature that VS Code calls when @@ -75,6 +76,10 @@ export type VariantAnalysisCommands = { variantAnalysisId: number, filterSort?: RepositoriesFilterSortStateWithIds, ) => Promise; + "codeQL.loadVariantAnalysisRepoResults": ( + variantAnalysisId: number, + repositoryFullName: string, + ) => Promise; "codeQL.monitorVariantAnalysis": ( variantAnalysis: VariantAnalysis, ) => Promise; diff --git a/extensions/ql-vscode/src/extension.ts b/extensions/ql-vscode/src/extension.ts index cf045bf2d8b..19fb101a7dd 100644 --- a/extensions/ql-vscode/src/extension.ts +++ b/extensions/ql-vscode/src/extension.ts @@ -125,7 +125,6 @@ import { createVariantAnalysisContentProvider } from "./variant-analysis/variant import { VSCodeMockGitHubApiServer } from "./mocks/vscode-mock-gh-api-server"; import { VariantAnalysisResultsManager } from "./variant-analysis/variant-analysis-results-manager"; import { ExtensionApp } from "./common/vscode/vscode-app"; -import { RepositoriesFilterSortStateWithIds } from "./pure/variant-analysis-filter-sort"; import { DbModule } from "./databases/db-module"; import { redactableError } from "./pure/errors"; import { QueryHistoryDirs } from "./query-history/query-history-dirs"; @@ -1102,18 +1101,6 @@ async function activateWithInstalledDistribution( }), ); - ctx.subscriptions.push( - commandRunner( - "codeQL.loadVariantAnalysisRepoResults", - async (variantAnalysisId: number, repositoryFullName: string) => { - await variantAnalysisManager.loadResults( - variantAnalysisId, - repositoryFullName, - ); - }, - ), - ); - // The "openVariantAnalysisView" command is internal-only. ctx.subscriptions.push( commandRunner( diff --git a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts index f5fc5fb754c..859d540fff3 100644 --- a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts +++ b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts @@ -135,6 +135,7 @@ export class VariantAnalysisManager this.enqueueDownload.bind(this), "codeQL.copyVariantAnalysisRepoList": this.copyRepoListToClipboard.bind(this), + "codeQL.loadVariantAnalysisRepoResults": this.loadResults.bind(this), "codeQL.monitorVariantAnalysis": this.monitorVariantAnalysis.bind(this), "codeQL.openVariantAnalysisLogs": this.openVariantAnalysisLogs.bind(this), "codeQL.runVariantAnalysis": From 0c9df6edba33e16be8d7f5942cc4e0d8726ddd78 Mon Sep 17 00:00:00 2001 From: Robert Date: Mon, 20 Mar 2023 15:43:44 +0000 Subject: [PATCH 6/7] Convert the codeQL.openVariantAnalysisView command --- extensions/ql-vscode/src/common/commands.ts | 3 +++ extensions/ql-vscode/src/extension.ts | 10 ---------- .../src/variant-analysis/variant-analysis-manager.ts | 1 + 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/extensions/ql-vscode/src/common/commands.ts b/extensions/ql-vscode/src/common/commands.ts index 930570f05eb..93f9f5b1590 100644 --- a/extensions/ql-vscode/src/common/commands.ts +++ b/extensions/ql-vscode/src/common/commands.ts @@ -86,6 +86,9 @@ export type VariantAnalysisCommands = { "codeQL.openVariantAnalysisLogs": ( variantAnalysisId: number, ) => Promise; + "codeQL.openVariantAnalysisView": ( + variantAnalysisId: number, + ) => Promise; "codeQL.runVariantAnalysis": (uri?: Uri) => Promise; "codeQL.runVariantAnalysisContextEditor": (uri?: Uri) => Promise; }; diff --git a/extensions/ql-vscode/src/extension.ts b/extensions/ql-vscode/src/extension.ts index 19fb101a7dd..169fb9e7340 100644 --- a/extensions/ql-vscode/src/extension.ts +++ b/extensions/ql-vscode/src/extension.ts @@ -1101,16 +1101,6 @@ async function activateWithInstalledDistribution( }), ); - // The "openVariantAnalysisView" command is internal-only. - ctx.subscriptions.push( - commandRunner( - "codeQL.openVariantAnalysisView", - async (variantAnalysisId: number) => { - await variantAnalysisManager.showView(variantAnalysisId); - }, - ), - ); - ctx.subscriptions.push( commandRunner("codeQL.openReferencedFile", async (selectedQuery: Uri) => { await openReferencedFile(qs, cliServer, selectedQuery); diff --git a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts index 859d540fff3..af4eea987bb 100644 --- a/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts +++ b/extensions/ql-vscode/src/variant-analysis/variant-analysis-manager.ts @@ -138,6 +138,7 @@ export class VariantAnalysisManager "codeQL.loadVariantAnalysisRepoResults": this.loadResults.bind(this), "codeQL.monitorVariantAnalysis": this.monitorVariantAnalysis.bind(this), "codeQL.openVariantAnalysisLogs": this.openVariantAnalysisLogs.bind(this), + "codeQL.openVariantAnalysisView": this.showView.bind(this), "codeQL.runVariantAnalysis": this.runVariantAnalysisFromCommand.bind(this), // Since we are tracking extension usage through commands, this command mirrors the "codeQL.runVariantAnalysis" command From 5af0ebcb2429b35d5b9b80ee07cb85829b62138f Mon Sep 17 00:00:00 2001 From: Robert Date: Wed, 22 Mar 2023 10:49:50 +0000 Subject: [PATCH 7/7] convert to type imports --- extensions/ql-vscode/src/common/commands.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/ql-vscode/src/common/commands.ts b/extensions/ql-vscode/src/common/commands.ts index 93f9f5b1590..fd15cf08761 100644 --- a/extensions/ql-vscode/src/common/commands.ts +++ b/extensions/ql-vscode/src/common/commands.ts @@ -2,8 +2,8 @@ import type { CommandManager } from "../packages/commands"; import type { Uri } from "vscode"; import type { DbTreeViewItem } from "../databases/ui/db-tree-view-item"; import type { QueryHistoryInfo } from "../query-history/query-history-info"; -import { RepositoriesFilterSortStateWithIds } from "../pure/variant-analysis-filter-sort"; -import { +import type { RepositoriesFilterSortStateWithIds } from "../pure/variant-analysis-filter-sort"; +import type { VariantAnalysis, VariantAnalysisScannedRepository, VariantAnalysisScannedRepositoryResult,