From 43d9bc8cb3a0c2ea1c86b7b3db6376d7c4cc735e Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Thu, 28 Aug 2025 17:01:22 +0100 Subject: [PATCH] Only specify queries for `run-queries` if both analysis kinds are enabled --- lib/analyze-action.js | 5 ++++- src/analyze.ts | 13 ++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/analyze-action.js b/lib/analyze-action.js index d66eb32fd..d15c8977c 100644 --- a/lib/analyze-action.js +++ b/lib/analyze-action.js @@ -94197,6 +94197,9 @@ function generateCodeScanningConfig(originalUserInput, augmentationProperties) { } return augmentedConfig; } +function isCodeScanningEnabled(config) { + return config.analysisKinds.includes("code-scanning" /* CodeScanning */); +} function isCodeQualityEnabled(config) { return config.analysisKinds.includes("code-quality" /* CodeQuality */); } @@ -96179,7 +96182,7 @@ async function runQueries(sarifFolder, memoryFlag, addSnippetsFlag, threadsFlag, try { const sarifFile = path12.join(sarifFolder, `${language}.sarif`); const queries = []; - if (isCodeQualityEnabled(config)) { + if (isCodeQualityEnabled(config) && isCodeScanningEnabled(config)) { queries.push(getGeneratedSuitePath(config, language)); for (const qualityQuery of config.augmentationProperties.qualityQueriesInput) { queries.push(resolveQuerySuiteAlias(language, qualityQuery.uses)); diff --git a/src/analyze.ts b/src/analyze.ts index dad12d78c..b597281f9 100644 --- a/src/analyze.ts +++ b/src/analyze.ts @@ -661,8 +661,19 @@ export async function runQueries( try { const sarifFile = path.join(sarifFolder, `${language}.sarif`); + // This should be empty to run only the query suite that was generated when + // the database was initialised. const queries: string[] = []; - if (configUtils.isCodeQualityEnabled(config)) { + + // If both Code Scanning and Code Quality analyses are enabled, the database + // is initialised for Code Scanning. To avoid duplicate work, we want to run + // queries for both analyses at the same time. To do this, we invoke `run-queries` + // once with the generated query suite for Code Scanning + the fixed + // query suite for Code Quality. + if ( + configUtils.isCodeQualityEnabled(config) && + configUtils.isCodeScanningEnabled(config) + ) { queries.push(util.getGeneratedSuitePath(config, language)); for (const qualityQuery of config.augmentationProperties .qualityQueriesInput) {