From b4937c19e53d395cc647fe16c4e00788a4e7ded3 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Fri, 13 Mar 2026 10:56:36 +0000 Subject: [PATCH] Only emit one message with accumulated property names --- lib/init-action.js | 11 ++++++++--- src/feature-flags/properties.test.ts | 2 +- src/feature-flags/properties.ts | 23 +++++++++++++++++------ 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/lib/init-action.js b/lib/init-action.js index 673e6ad59..a39e890bb 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -104438,6 +104438,7 @@ async function loadPropertiesFromApi(logger, repositoryNwo) { `Retrieved ${remoteProperties.length} repository properties: ${remoteProperties.map((p) => p.property_name).join(", ")}` ); const properties = {}; + const unrecognisedProperties = []; for (const property of remoteProperties) { if (property.property_name === void 0) { throw new Error( @@ -104447,9 +104448,7 @@ async function loadPropertiesFromApi(logger, repositoryNwo) { if (isKnownPropertyName(property.property_name)) { setProperty2(properties, property.property_name, property.value, logger); } else if (property.property_name.startsWith(GITHUB_CODEQL_PROPERTY_PREFIX) && !isDynamicWorkflow()) { - logger.warning( - `Found a repository property named '${property.property_name}', which looks like a CodeQL Action repository property, but which is not understood by this version of the CodeQL Action. Do you need to update to a newer version?` - ); + unrecognisedProperties.push(property.property_name); } } if (Object.keys(properties).length === 0) { @@ -104464,6 +104463,12 @@ async function loadPropertiesFromApi(logger, repositoryNwo) { logger.debug(` ${property}: ${value}`); } } + if (unrecognisedProperties.length > 0) { + const unrecognisedPropertyList = unrecognisedProperties.map((name) => `'${name}'`).join(", "); + logger.warning( + `Found repository properties (${unrecognisedPropertyList}), which look like CodeQL Action repository properties, but which are not understood by this version of the CodeQL Action. Do you need to update to a newer version?` + ); + } return properties; } catch (e) { throw new Error( diff --git a/src/feature-flags/properties.test.ts b/src/feature-flags/properties.test.ts index 14d823480..2676c2dcd 100644 --- a/src/feature-flags/properties.test.ts +++ b/src/feature-flags/properties.test.ts @@ -227,7 +227,7 @@ test.serial( warningSpy.firstCall.args[0] .toString() .startsWith( - `Found a repository property named '${propertyName}', which looks like a CodeQL Action repository property`, + `Found repository properties ('${propertyName}'), which look like CodeQL Action repository properties`, ), ); }, diff --git a/src/feature-flags/properties.ts b/src/feature-flags/properties.ts index c9c507f04..12ba280be 100644 --- a/src/feature-flags/properties.ts +++ b/src/feature-flags/properties.ts @@ -118,6 +118,8 @@ export async function loadPropertiesFromApi( ); const properties: RepositoryProperties = {}; + const unrecognisedProperties: string[] = []; + for (const property of remoteProperties) { if (property.property_name === undefined) { throw new Error( @@ -131,12 +133,7 @@ export async function loadPropertiesFromApi( property.property_name.startsWith(GITHUB_CODEQL_PROPERTY_PREFIX) && !isDynamicWorkflow() ) { - logger.warning( - `Found a repository property named '${property.property_name}', ` + - "which looks like a CodeQL Action repository property, " + - "but which is not understood by this version of the CodeQL Action. " + - "Do you need to update to a newer version?", - ); + unrecognisedProperties.push(property.property_name); } } @@ -153,6 +150,20 @@ export async function loadPropertiesFromApi( } } + // Emit a warning if we encountered unrecognised properties that have our prefix. + if (unrecognisedProperties.length > 0) { + const unrecognisedPropertyList = unrecognisedProperties + .map((name) => `'${name}'`) + .join(", "); + + logger.warning( + `Found repository properties (${unrecognisedPropertyList}), ` + + "which look like CodeQL Action repository properties, " + + "but which are not understood by this version of the CodeQL Action. " + + "Do you need to update to a newer version?", + ); + } + return properties; } catch (e) { throw new Error(