Report invalid keys separately

This commit is contained in:
Michael B. Gale
2026-07-10 14:39:08 +01:00
parent 26cbf9f504
commit f630f8fd04
3 changed files with 58 additions and 2 deletions

View File

@@ -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}`,
]);
});

View File

@@ -112,6 +112,22 @@ export function mergeDefaultSetupAndUserConfigs(
fromConfigInput as json.UnvalidatedObject<any>,
);
// 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,
},
),