diff --git a/lib/init-action.js b/lib/init-action.js index 053dfe3c2..a5fcd7687 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -86442,10 +86442,15 @@ function parseQueriesFromInput(rawQueriesInput, queriesInputCombines, errorToThr } return trimmedInput.split(",").map((query) => ({ uses: query.trim() })); } -function combineQueries(config, augmentationProperties) { +function combineQueries(logger, config, augmentationProperties) { const result = []; if (augmentationProperties.repoPropertyQueries && augmentationProperties.repoPropertyQueries.input) { if (!augmentationProperties.repoPropertyQueries.combines) { + if (!isDefaultSetup()) { + logger.info( + `Queries are configured in the repository properties and don't allow combining with other query settings. Any queries configured elsewhere will be ignored.` + ); + } return augmentationProperties.repoPropertyQueries.input; } else { result.push(...augmentationProperties.repoPropertyQueries.input); @@ -86463,12 +86468,16 @@ function combineQueries(config, augmentationProperties) { } return result; } -function generateCodeScanningConfig(originalUserInput, augmentationProperties) { +function generateCodeScanningConfig(logger, originalUserInput, augmentationProperties) { const augmentedConfig = cloneObject(originalUserInput); augmentedConfig.queries = combineQueries( + logger, augmentedConfig, augmentationProperties ); + logger.debug( + `Combined queries: ${augmentedConfig.queries?.map((q) => q.uses).join(",")}` + ); if (augmentedConfig.queries?.length === 0) { delete augmentedConfig.queries; } @@ -87614,6 +87623,7 @@ async function initActionState({ logger ); const computedConfig = generateCodeScanningConfig( + logger, userConfig, augmentationProperties ); diff --git a/src/codeql.test.ts b/src/codeql.test.ts index b80b29725..a5422b1e3 100644 --- a/src/codeql.test.ts +++ b/src/codeql.test.ts @@ -496,6 +496,8 @@ const injectedConfigMacro = test.macro({ expectedConfig: any, ) => { await util.withTmpDir(async (tempDir) => { + sinon.stub(actionsUtil, "isDefaultSetup").resolves(false); + const runnerConstructorStub = stubToolRunnerConstructor(); const codeqlObject = await stubCodeql(); @@ -505,6 +507,7 @@ const injectedConfigMacro = test.macro({ tempDir, }; thisStubConfig.computedConfig = generateCodeScanningConfig( + getRunnerLogger(true), thisStubConfig.originalUserInput, augmentationProperties, ); diff --git a/src/config-utils.ts b/src/config-utils.ts index d20cf3bae..e6e99be3b 100644 --- a/src/config-utils.ts +++ b/src/config-utils.ts @@ -473,6 +473,7 @@ export async function initActionState( // Compute the full Code Scanning configuration that combines the configuration from the // configuration file / `config` input with other inputs, such as `queries`. const computedConfig = generateCodeScanningConfig( + logger, userConfig, augmentationProperties, ); diff --git a/src/config/db-config.ts b/src/config/db-config.ts index c16b1f034..8e6dc501d 100644 --- a/src/config/db-config.ts +++ b/src/config/db-config.ts @@ -2,12 +2,14 @@ import * as path from "path"; import * as semver from "semver"; +import { isDefaultSetup } from "../actions-util"; import * as errorMessages from "../error-messages"; import { RepositoryProperties, RepositoryPropertyName, } from "../feature-flags/properties"; import { Language } from "../languages"; +import { Logger } from "../logging"; import { cloneObject, ConfigurationError, prettyPrintPack } from "../util"; export interface ExcludeQueryFilter { @@ -364,11 +366,13 @@ function parseQueriesFromInput( /** * Combines queries from various configuration sources. * + * @param logger The logger to use. * @param config The loaded configuration file (either `config-file` or `config` input). * @param augmentationProperties Additional configuration data from other sources. * @returns Returns `augmentedConfig` with `queries` set to the computed array of queries. */ function combineQueries( + logger: Logger, config: UserConfig, augmentationProperties: AugmentationProperties, ): QuerySpec[] { @@ -383,6 +387,12 @@ function combineQueries( // settings. If they don't allow combining with other query configurations, return just the // ones configured in the repository properties. if (!augmentationProperties.repoPropertyQueries.combines) { + if (!isDefaultSetup()) { + logger.info( + `Queries are configured in the repository properties and don't allow combining with other query settings. ` + + `Any queries configured elsewhere will be ignored.`, + ); + } return augmentationProperties.repoPropertyQueries.input; } else { // Otherwise, add them to the query array and continue. @@ -414,6 +424,7 @@ function combineQueries( } export function generateCodeScanningConfig( + logger: Logger, originalUserInput: UserConfig, augmentationProperties: AugmentationProperties, ): UserConfig { @@ -422,9 +433,13 @@ export function generateCodeScanningConfig( // Inject the queries from the input augmentedConfig.queries = combineQueries( + logger, augmentedConfig, augmentationProperties, ); + logger.debug( + `Combined queries: ${augmentedConfig.queries?.map((q) => q.uses).join(",")}`, + ); if (augmentedConfig.queries?.length === 0) { delete augmentedConfig.queries; }