From f630f8fd043520cb9d4e0ccda16c4ed4b635683d Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Fri, 10 Jul 2026 14:39:08 +0100 Subject: [PATCH] Report invalid keys separately --- lib/entry-points.js | 16 +++++++++++++++- src/config/db-config.test.ts | 27 +++++++++++++++++++++++++++ src/config/db-config.ts | 17 ++++++++++++++++- 3 files changed, 58 insertions(+), 2 deletions(-) diff --git a/lib/entry-points.js b/lib/entry-points.js index 987502cca..817eb5917 100644 --- a/lib/entry-points.js +++ b/lib/entry-points.js @@ -147973,6 +147973,21 @@ function mergeDefaultSetupAndUserConfigs(logger, fromConfigInput, fromConfigFile DEFAULT_SETUP_CONFIG_SCHEMA, fromConfigInput ); + if (schemaCheckResult.invalidKeys.length > 0) { + logger.warning( + `Invalid keys in Default Setup configuration: ${schemaCheckResult.invalidKeys.join(", ")}` + ); + addNoLanguageDiagnostic( + void 0, + makeTelemetryDiagnostic( + "codeql-action/invalid-default-setup-config-keys", + "Invalid Default Setup configuration keys", + { + invalidKeys: schemaCheckResult.invalidKeys + } + ) + ); + } if (schemaCheckResult.unknownKeys.length > 0) { logger.warning( `Unrecognised keys in Default Setup configuration: ${schemaCheckResult.unknownKeys.join(", ")}` @@ -147983,7 +147998,6 @@ function mergeDefaultSetupAndUserConfigs(logger, fromConfigInput, fromConfigFile "codeql-action/unrecognised-default-setup-config-keys", "Unrecognised Default Setup configuration keys", { - invalidKeys: schemaCheckResult.invalidKeys, unrecognisedKeys: schemaCheckResult.unknownKeys } ) diff --git a/src/config/db-config.test.ts b/src/config/db-config.test.ts index 4d16fc716..63d9d2ffe 100644 --- a/src/config/db-config.test.ts +++ b/src/config/db-config.test.ts @@ -598,3 +598,30 @@ test("mergeDefaultSetupAndUserConfigs - ignores, but warns about, unknown keys f `Unrecognised keys in Default Setup configuration: ${expectedUnrecognisedKeys}`, ]); }); + +test("mergeDefaultSetupAndUserConfigs - warns about invalid keys from Default Setup", async (t) => { + const logger = new RecordingLogger(); + const configFile: dbConfig.UserConfig = {}; + + const result = dbConfig.mergeDefaultSetupAndUserConfigs( + logger, + { + "default-setup": { + org: { + "model-packs": [123], + }, + } as unknown as dbConfig.DefaultSetupConfig, + }, + configFile, + ); + + t.deepEqual(result, { + ...configFile, + "default-setup": { org: { "model-packs": [123] } }, + }); + + const expectedInvalidKeys = [".default-setup.org.model-packs[0]"].join(", "); + checkExpectedLogMessages(t, logger.messages, [ + `Invalid keys in Default Setup configuration: ${expectedInvalidKeys}`, + ]); +}); diff --git a/src/config/db-config.ts b/src/config/db-config.ts index ec447b04f..582cfe8af 100644 --- a/src/config/db-config.ts +++ b/src/config/db-config.ts @@ -112,6 +112,22 @@ export function mergeDefaultSetupAndUserConfigs( fromConfigInput as json.UnvalidatedObject, ); + // Report any invalid or unrecognised keys. + if (schemaCheckResult.invalidKeys.length > 0) { + logger.warning( + `Invalid keys in Default Setup configuration: ${schemaCheckResult.invalidKeys.join(", ")}`, + ); + addNoLanguageDiagnostic( + undefined, + makeTelemetryDiagnostic( + "codeql-action/invalid-default-setup-config-keys", + "Invalid Default Setup configuration keys", + { + invalidKeys: schemaCheckResult.invalidKeys, + }, + ), + ); + } if (schemaCheckResult.unknownKeys.length > 0) { logger.warning( `Unrecognised keys in Default Setup configuration: ${schemaCheckResult.unknownKeys.join(", ")}`, @@ -122,7 +138,6 @@ export function mergeDefaultSetupAndUserConfigs( "codeql-action/unrecognised-default-setup-config-keys", "Unrecognised Default Setup configuration keys", { - invalidKeys: schemaCheckResult.invalidKeys, unrecognisedKeys: schemaCheckResult.unknownKeys, }, ),