From cca13fde4819b36fcad84130cfd5ef66e53882fc Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Tue, 8 Nov 2022 16:08:34 +0100 Subject: [PATCH] Remove `dryRun` parameter from `runRemoteQuery` --- .../remote-queries/remote-queries-manager.ts | 8 +- .../src/remote-queries/run-remote-query.ts | 73 ++++++------------- .../remote-queries/run-remote-query.test.ts | 16 ++-- 3 files changed, 30 insertions(+), 67 deletions(-) diff --git a/extensions/ql-vscode/src/remote-queries/remote-queries-manager.ts b/extensions/ql-vscode/src/remote-queries/remote-queries-manager.ts index 6350c0b5f2e..68ef20a67e5 100644 --- a/extensions/ql-vscode/src/remote-queries/remote-queries-manager.ts +++ b/extensions/ql-vscode/src/remote-queries/remote-queries-manager.ts @@ -122,13 +122,7 @@ export class RemoteQueriesManager extends DisposableObject { ): Promise { const credentials = await Credentials.initialize(this.ctx); - const querySubmission = await runRemoteQuery( - this.cliServer, - credentials, uri || window.activeTextEditor?.document.uri, - false, - progress, - token, - this.variantAnalysisManager); + const querySubmission = await runRemoteQuery(this.cliServer, credentials, uri || window.activeTextEditor?.document.uri, progress, token, this.variantAnalysisManager); if (querySubmission?.query) { const query = querySubmission.query; diff --git a/extensions/ql-vscode/src/remote-queries/run-remote-query.ts b/extensions/ql-vscode/src/remote-queries/run-remote-query.ts index b3d076171f3..17a7403812b 100644 --- a/extensions/ql-vscode/src/remote-queries/run-remote-query.ts +++ b/extensions/ql-vscode/src/remote-queries/run-remote-query.ts @@ -31,6 +31,7 @@ import { parseVariantAnalysisQueryLanguage, VariantAnalysisSubmission } from './ import { Repository } from './shared/repository'; import { processVariantAnalysis } from './variant-analysis-processor'; import { VariantAnalysisManager } from './variant-analysis-manager'; +import { CodeQLCliServer } from '../cli'; export interface QlPack { name: string; @@ -253,13 +254,12 @@ export async function prepareRemoteQueryRun( } export async function runRemoteQuery( - cliServer: cli.CodeQLCliServer, + cliServer: CodeQLCliServer, credentials: Credentials, uri: Uri | undefined, - dryRun: boolean, progress: ProgressCallback, token: CancellationToken, - variantAnalysisManager: VariantAnalysisManager + variantAnalysisManager: VariantAnalysisManager, ): Promise { if (!(await cliServer.cliConstraints.supportsRemoteQueries())) { throw new Error(`Variant analysis is not supported by this version of CodeQL. Please upgrade to v${cli.CliVersionConstraint.CLI_VERSION_REMOTE_QUERIES @@ -324,38 +324,29 @@ export async function runRemoteQuery( return { variantAnalysis: processedVariantAnalysis }; } else { - const apiResponse = await runRemoteQueriesApiRequest(credentials, actionBranch, language, repoSelection, controllerRepo, base64Pack, dryRun); - - if (dryRun) { - return { queryDirPath: remoteQueryDir.path }; - } else { - if (!apiResponse) { - return; - } + const apiResponse = await runRemoteQueriesApiRequest(credentials, actionBranch, language, repoSelection, controllerRepo, base64Pack); - const workflowRunId = apiResponse.workflow_run_id; - const repositoryCount = apiResponse.repositories_queried.length; - const remoteQuery = await buildRemoteQueryEntity( - queryFile, - queryMetadata, - controllerRepo, - queryStartTime, - workflowRunId, - language, - repositoryCount); - - // don't return the path because it has been deleted - return { query: remoteQuery }; + if (!apiResponse) { + return; } + + const workflowRunId = apiResponse.workflow_run_id; + const repositoryCount = apiResponse.repositories_queried.length; + const remoteQuery = await buildRemoteQueryEntity( + queryFile, + queryMetadata, + controllerRepo, + queryStartTime, + workflowRunId, + language, + repositoryCount); + + // don't return the path because it has been deleted + return { query: remoteQuery }; } } finally { - if (dryRun) { - // If we are in a dry run keep the data around for debugging purposes. - void logger.log(`[DRY RUN] Not deleting ${queryPackDir}.`); - } else { - await remoteQueryDir.cleanup(); - } + await remoteQueryDir.cleanup(); } } @@ -366,29 +357,7 @@ async function runRemoteQueriesApiRequest( repoSelection: RepositorySelection, controllerRepo: Repository, queryPackBase64: string, - dryRun = false ): Promise { - const data = { - ref, - language, - repositories: repoSelection.repositories ?? undefined, - repository_lists: repoSelection.repositoryLists ?? undefined, - repository_owners: repoSelection.owners ?? undefined, - query_pack: queryPackBase64, - }; - - if (dryRun) { - void showAndLogInformationMessage('[DRY RUN] Would have sent request. See extension log for the payload.'); - void logger.log(JSON.stringify({ - controllerRepo, - data: { - ...data, - queryPackBase64: queryPackBase64.substring(0, 100) + '... ' + queryPackBase64.length + ' bytes' - } - })); - return; - } - try { const response = await ghApiClient.submitRemoteQueries(credentials, { ref, diff --git a/extensions/ql-vscode/src/vscode-tests/cli-integration/remote-queries/run-remote-query.test.ts b/extensions/ql-vscode/src/vscode-tests/cli-integration/remote-queries/run-remote-query.test.ts index e1586140fc1..4ef10a245a4 100644 --- a/extensions/ql-vscode/src/vscode-tests/cli-integration/remote-queries/run-remote-query.test.ts +++ b/extensions/ql-vscode/src/vscode-tests/cli-integration/remote-queries/run-remote-query.test.ts @@ -110,7 +110,7 @@ describe('Remote queries', function() { it('should run a remote query that is part of a qlpack', async () => { const fileUri = getFile('data-remote-qlpack/in-pack.ql'); - const querySubmissionResult = await runRemoteQuery(cli, credentials, fileUri, false, progress, cancellationTokenSource.token, variantAnalysisManager); + const querySubmissionResult = await runRemoteQuery(cli, credentials, fileUri, progress, cancellationTokenSource.token, variantAnalysisManager); expect(querySubmissionResult).to.be.ok; expect(mockSubmitRemoteQueries).to.have.been.calledOnce; @@ -155,7 +155,7 @@ describe('Remote queries', function() { it('should run a remote query that is not part of a qlpack', async () => { const fileUri = getFile('data-remote-no-qlpack/in-pack.ql'); - const querySubmissionResult = await runRemoteQuery(cli, credentials, fileUri, false, progress, cancellationTokenSource.token, variantAnalysisManager); + const querySubmissionResult = await runRemoteQuery(cli, credentials, fileUri, progress, cancellationTokenSource.token, variantAnalysisManager); expect(querySubmissionResult).to.be.ok; expect(mockSubmitRemoteQueries).to.have.been.calledOnce; @@ -203,7 +203,7 @@ describe('Remote queries', function() { it('should run a remote query that is nested inside a qlpack', async () => { const fileUri = getFile('data-remote-qlpack-nested/subfolder/in-pack.ql'); - const querySubmissionResult = await runRemoteQuery(cli, credentials, fileUri, false, progress, cancellationTokenSource.token, variantAnalysisManager); + const querySubmissionResult = await runRemoteQuery(cli, credentials, fileUri, progress, cancellationTokenSource.token, variantAnalysisManager); expect(querySubmissionResult).to.be.ok; expect(mockSubmitRemoteQueries).to.have.been.calledOnce; @@ -250,7 +250,7 @@ describe('Remote queries', function() { it('should cancel a run before uploading', async () => { const fileUri = getFile('data-remote-no-qlpack/in-pack.ql'); - const promise = runRemoteQuery(cli, credentials, fileUri, false, progress, cancellationTokenSource.token, variantAnalysisManager); + const promise = runRemoteQuery(cli, credentials, fileUri, progress, cancellationTokenSource.token, variantAnalysisManager); cancellationTokenSource.cancel(); @@ -276,7 +276,7 @@ describe('Remote queries', function() { it('should run a variant analysis that is part of a qlpack', async () => { const fileUri = getFile('data-remote-qlpack/in-pack.ql'); - const querySubmissionResult = await runRemoteQuery(cli, credentials, fileUri, false, progress, cancellationTokenSource.token, variantAnalysisManager); + const querySubmissionResult = await runRemoteQuery(cli, credentials, fileUri, progress, cancellationTokenSource.token, variantAnalysisManager); expect(querySubmissionResult).to.be.ok; const variantAnalysis = querySubmissionResult!.variantAnalysis!; expect(variantAnalysis.id).to.be.equal(mockApiResponse.id); @@ -289,7 +289,7 @@ describe('Remote queries', function() { it('should run a remote query that is not part of a qlpack', async () => { const fileUri = getFile('data-remote-no-qlpack/in-pack.ql'); - const querySubmissionResult = await runRemoteQuery(cli, credentials, fileUri, false, progress, cancellationTokenSource.token, variantAnalysisManager); + const querySubmissionResult = await runRemoteQuery(cli, credentials, fileUri, progress, cancellationTokenSource.token, variantAnalysisManager); expect(querySubmissionResult).to.be.ok; const variantAnalysis = querySubmissionResult!.variantAnalysis!; expect(variantAnalysis.id).to.be.equal(mockApiResponse.id); @@ -302,7 +302,7 @@ describe('Remote queries', function() { it('should run a remote query that is nested inside a qlpack', async () => { const fileUri = getFile('data-remote-qlpack-nested/subfolder/in-pack.ql'); - const querySubmissionResult = await runRemoteQuery(cli, credentials, fileUri, false, progress, cancellationTokenSource.token, variantAnalysisManager); + const querySubmissionResult = await runRemoteQuery(cli, credentials, fileUri, progress, cancellationTokenSource.token, variantAnalysisManager); expect(querySubmissionResult).to.be.ok; const variantAnalysis = querySubmissionResult!.variantAnalysis!; expect(variantAnalysis.id).to.be.equal(mockApiResponse.id); @@ -315,7 +315,7 @@ describe('Remote queries', function() { it('should cancel a run before uploading', async () => { const fileUri = getFile('data-remote-no-qlpack/in-pack.ql'); - const promise = runRemoteQuery(cli, credentials, fileUri, false, progress, cancellationTokenSource.token, variantAnalysisManager); + const promise = runRemoteQuery(cli, credentials, fileUri, progress, cancellationTokenSource.token, variantAnalysisManager); cancellationTokenSource.cancel();