Improve validation and address review comments

This commit is contained in:
Henry Mercer
2026-02-24 19:56:43 +00:00
parent ed39a1ea5c
commit 2808ca726e
14 changed files with 309 additions and 22 deletions
+23 -10
View File
@@ -104283,17 +104283,25 @@ var RepositoryPropertyName = /* @__PURE__ */ ((RepositoryPropertyName2) => {
RepositoryPropertyName2["EXTRA_QUERIES"] = "github-codeql-extra-queries";
return RepositoryPropertyName2;
})(RepositoryPropertyName || {});
var KNOWN_REPOSITORY_PROPERTY_NAMES = new Set(
Object.values(RepositoryPropertyName)
);
function isKnownPropertyName(value) {
return Object.values(RepositoryPropertyName).includes(
value
);
return KNOWN_REPOSITORY_PROPERTY_NAMES.has(value);
}
var mapRepositoryProperties = {
["github-codeql-disable-overlay" /* DISABLE_OVERLAY */]: (value) => value === "true",
["github-codeql-extra-queries" /* EXTRA_QUERIES */]: (value) => value
var repositoryPropertyParsers = {
["github-codeql-disable-overlay" /* DISABLE_OVERLAY */]: (name, value, logger) => {
if (value !== "true" && value !== "false") {
logger.warning(
`Repository property '${name}' has unexpected value '${value}'. Expected 'true' or 'false'. Defaulting to false.`
);
}
return value === "true";
},
["github-codeql-extra-queries" /* EXTRA_QUERIES */]: (_name, value) => value
};
function setProperty2(properties, name, value) {
properties[name] = mapRepositoryProperties[name](value);
function setProperty2(properties, name, value, logger) {
properties[name] = repositoryPropertyParsers[name](name, value, logger);
}
async function loadPropertiesFromApi(gitHubVersion, logger, repositoryNwo) {
if (gitHubVersion.type === "GitHub Enterprise Server" /* GHES */) {
@@ -104314,11 +104322,16 @@ async function loadPropertiesFromApi(gitHubVersion, logger, repositoryNwo) {
for (const property of remoteProperties) {
if (property.property_name === void 0) {
throw new Error(
`Expected property object to have a 'property_name', but got: ${JSON.stringify(property)}`
`Expected repository property object to have a 'property_name', but got: ${JSON.stringify(property)}`
);
}
if (typeof property.value !== "string") {
throw new Error(
`Expected repository property '${property.property_name}' to have a string value, but got: ${JSON.stringify(property)}`
);
}
if (isKnownPropertyName(property.property_name)) {
setProperty2(properties, property.property_name, property.value);
setProperty2(properties, property.property_name, property.value, logger);
}
}
if (Object.keys(properties).length === 0) {