mirror of
https://github.com/github/codeql-action.git
synced 2026-10-03 09:14:58 +00:00
Merge pull request #4050 from github/mbg/status/registries
Include `registry_types` in more status reports
This commit is contained in:
337
lib/entry-points.js
generated
337
lib/entry-points.js
generated
@@ -92812,10 +92812,10 @@ var require_util12 = __commonJS({
|
||||
return objectToString(arg) === "[object Array]";
|
||||
}
|
||||
exports2.isArray = isArray2;
|
||||
function isBoolean(arg) {
|
||||
function isBoolean2(arg) {
|
||||
return typeof arg === "boolean";
|
||||
}
|
||||
exports2.isBoolean = isBoolean;
|
||||
exports2.isBoolean = isBoolean2;
|
||||
function isNull(arg) {
|
||||
return arg === null;
|
||||
}
|
||||
@@ -96885,7 +96885,7 @@ var require_validators = __commonJS({
|
||||
throw new ERR_INVALID_ARG_TYPE(name, "a dictionary", value);
|
||||
}
|
||||
});
|
||||
var validateArray = hideStackFrames((value, name, minLength = 0) => {
|
||||
var validateArray2 = hideStackFrames((value, name, minLength = 0) => {
|
||||
if (!ArrayIsArray(value)) {
|
||||
throw new ERR_INVALID_ARG_TYPE(name, "Array", value);
|
||||
}
|
||||
@@ -96895,19 +96895,19 @@ var require_validators = __commonJS({
|
||||
}
|
||||
});
|
||||
function validateStringArray(value, name) {
|
||||
validateArray(value, name);
|
||||
validateArray2(value, name);
|
||||
for (let i = 0; i < value.length; i++) {
|
||||
validateString(value[i], `${name}[${i}]`);
|
||||
}
|
||||
}
|
||||
function validateBooleanArray(value, name) {
|
||||
validateArray(value, name);
|
||||
validateArray2(value, name);
|
||||
for (let i = 0; i < value.length; i++) {
|
||||
validateBoolean(value[i], `${name}[${i}]`);
|
||||
}
|
||||
}
|
||||
function validateAbortSignalArray(value, name) {
|
||||
validateArray(value, name);
|
||||
validateArray2(value, name);
|
||||
for (let i = 0; i < value.length; i++) {
|
||||
const signal = value[i];
|
||||
const indexedName = `${name}[${i}]`;
|
||||
@@ -97003,7 +97003,7 @@ var require_validators = __commonJS({
|
||||
isInt32,
|
||||
isUint32,
|
||||
parseFileMode,
|
||||
validateArray,
|
||||
validateArray: validateArray2,
|
||||
validateStringArray,
|
||||
validateBooleanArray,
|
||||
validateAbortSignalArray,
|
||||
@@ -144596,21 +144596,25 @@ function isString(value) {
|
||||
function isNumber(value) {
|
||||
return typeof value === "number";
|
||||
}
|
||||
function isBoolean(value) {
|
||||
return typeof value === "boolean";
|
||||
}
|
||||
function isStringOrUndefined(value) {
|
||||
return value === void 0 || isString(value);
|
||||
}
|
||||
function defaultCheck(validate2) {
|
||||
return (arg) => ({ unknownKeys: [], invalidKeys: [], valid: validate2(arg) });
|
||||
}
|
||||
function makeValidator(validate2, required = true) {
|
||||
function makeValidator(validate2) {
|
||||
return {
|
||||
validate: validate2,
|
||||
check: defaultCheck(validate2),
|
||||
required
|
||||
required: true
|
||||
};
|
||||
}
|
||||
var string = makeValidator(isString);
|
||||
var number = makeValidator(isNumber);
|
||||
var boolean = makeValidator(isBoolean);
|
||||
function array(validator) {
|
||||
const validate2 = (val) => {
|
||||
return isArray(val) && val.every((e) => validator.validate(e));
|
||||
@@ -144692,6 +144696,10 @@ function validateSchema(schema, obj) {
|
||||
const result = checkSchema(schema, obj, { failFast: true });
|
||||
return result.valid;
|
||||
}
|
||||
function validateArray(elementSchema, arr) {
|
||||
const elementValidator = object(elementSchema);
|
||||
return array(elementValidator).validate(arr);
|
||||
}
|
||||
function successfulCheckSchema() {
|
||||
return {
|
||||
valid: true,
|
||||
@@ -146400,6 +146408,148 @@ async function getGeneratedFiles(workingDirectory) {
|
||||
return generatedFiles;
|
||||
}
|
||||
|
||||
// src/start-proxy/types.ts
|
||||
var usernameSchema = {
|
||||
/** The username needed to authenticate to the package registry, if any. */
|
||||
username: optionalOrNull(string)
|
||||
};
|
||||
function hasUsername(config) {
|
||||
return "username" in config;
|
||||
}
|
||||
var usernamePasswordSchema = {
|
||||
/** The password needed to authenticate to the package registry, if any. */
|
||||
password: optionalOrNull(string),
|
||||
...usernameSchema
|
||||
};
|
||||
function hasUsernameAndPassword(config) {
|
||||
return hasUsername(config) && "password" in config;
|
||||
}
|
||||
var tokenSchema = {
|
||||
/** The token needed to authenticate to the package registry, if any. */
|
||||
token: optionalOrNull(string),
|
||||
...usernameSchema
|
||||
};
|
||||
function hasToken(config) {
|
||||
return "token" in config;
|
||||
}
|
||||
function isToken(config) {
|
||||
return "token" in config && validateSchema(tokenSchema, config);
|
||||
}
|
||||
var azureConfigSchema = {
|
||||
"tenant-id": string,
|
||||
"client-id": string
|
||||
};
|
||||
function isAzureConfig(config) {
|
||||
return validateSchema(azureConfigSchema, config);
|
||||
}
|
||||
var awsConfigSchema = {
|
||||
"aws-region": string,
|
||||
"account-id": string,
|
||||
"role-name": string,
|
||||
domain: string,
|
||||
"domain-owner": string,
|
||||
audience: optionalOrNull(string)
|
||||
};
|
||||
function isAWSConfig(config) {
|
||||
return validateSchema(awsConfigSchema, config);
|
||||
}
|
||||
var jfrogConfigSchema = {
|
||||
"jfrog-oidc-provider-name": string,
|
||||
audience: optionalOrNull(string),
|
||||
"identity-mapping-name": optionalOrNull(string)
|
||||
};
|
||||
function isJFrogConfig(config) {
|
||||
return validateSchema(jfrogConfigSchema, config);
|
||||
}
|
||||
var cloudsmithConfigSchema = {
|
||||
namespace: string,
|
||||
"service-slug": string,
|
||||
"api-host": string
|
||||
};
|
||||
function isCloudsmithConfig(config) {
|
||||
return validateSchema(cloudsmithConfigSchema, config);
|
||||
}
|
||||
var gcpConfigSchema = {
|
||||
"workload-identity-provider": string,
|
||||
"service-account": optionalOrNull(string),
|
||||
audience: optionalOrNull(string)
|
||||
};
|
||||
function isGCPConfig(config) {
|
||||
return validateSchema(gcpConfigSchema, config);
|
||||
}
|
||||
var oidcSchemas = [
|
||||
{ schema: azureConfigSchema, name: "Azure" },
|
||||
{ schema: awsConfigSchema, name: "AWS" },
|
||||
{ schema: jfrogConfigSchema, name: "JFrog" },
|
||||
{ schema: cloudsmithConfigSchema, name: "Cloudsmith" },
|
||||
{ schema: gcpConfigSchema, name: "GCP" }
|
||||
];
|
||||
function credentialToStr(credential) {
|
||||
let result = `Type: ${credential.type};`;
|
||||
const appendIfDefined = (name, val) => {
|
||||
if (isDefined2(val)) {
|
||||
result += ` ${name}: ${val};`;
|
||||
}
|
||||
};
|
||||
appendIfDefined("Url", credential.url);
|
||||
appendIfDefined("Host", credential.host);
|
||||
if (hasUsername(credential)) {
|
||||
appendIfDefined("Username", credential.username);
|
||||
}
|
||||
if ("password" in credential) {
|
||||
appendIfDefined(
|
||||
"Password",
|
||||
isDefined2(credential.password) ? "***" : void 0
|
||||
);
|
||||
}
|
||||
if (hasToken(credential)) {
|
||||
appendIfDefined("Token", isDefined2(credential.token) ? "***" : void 0);
|
||||
}
|
||||
if (isAzureConfig(credential)) {
|
||||
appendIfDefined("Tenant", credential["tenant-id"]);
|
||||
appendIfDefined("Client", credential["client-id"]);
|
||||
} else if (isAWSConfig(credential)) {
|
||||
appendIfDefined("AWS Region", credential["aws-region"]);
|
||||
appendIfDefined("AWS Account", credential["account-id"]);
|
||||
appendIfDefined("AWS Role", credential["role-name"]);
|
||||
appendIfDefined("AWS Domain", credential.domain);
|
||||
appendIfDefined("AWS Domain Owner", credential["domain-owner"]);
|
||||
appendIfDefined("AWS Audience", credential.audience);
|
||||
} else if (isJFrogConfig(credential)) {
|
||||
appendIfDefined("JFrog Provider", credential["jfrog-oidc-provider-name"]);
|
||||
appendIfDefined(
|
||||
"JFrog Identity Mapping",
|
||||
credential["identity-mapping-name"]
|
||||
);
|
||||
appendIfDefined("JFrog Audience", credential.audience);
|
||||
} else if (isCloudsmithConfig(credential)) {
|
||||
appendIfDefined("Cloudsmith Namespace", credential.namespace);
|
||||
appendIfDefined("Cloudsmith Service Slug", credential["service-slug"]);
|
||||
appendIfDefined("Cloudsmith API Host", credential["api-host"]);
|
||||
} else if (isGCPConfig(credential)) {
|
||||
appendIfDefined(
|
||||
"GCP Workload Identity Provider",
|
||||
credential["workload-identity-provider"]
|
||||
);
|
||||
appendIfDefined("GCP Service Account", credential["service-account"]);
|
||||
appendIfDefined("GCP Audience", credential.audience);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
var registryBaseSchema = {
|
||||
/** The type of the package registry. */
|
||||
type: string,
|
||||
/** Whether the registry replaces the base registry for the ecosystem. */
|
||||
"replaces-base": optional(boolean)
|
||||
};
|
||||
function getAddressString(address) {
|
||||
if (address.url === void 0) {
|
||||
return address.host;
|
||||
} else {
|
||||
return address.url;
|
||||
}
|
||||
}
|
||||
|
||||
// src/status-report.ts
|
||||
function getDisplayActionName(actionName) {
|
||||
if (actionName === "finish" /* Analyze */) {
|
||||
@@ -146468,6 +146618,34 @@ function setJobStatusIfUnsuccessful(actionStatus) {
|
||||
);
|
||||
}
|
||||
}
|
||||
function getRegistryTypesFromEnv(logger, env = getEnv()) {
|
||||
const value = env.getOptional("CODEQL_PROXY_URLS" /* PROXY_URLS */);
|
||||
if (value === void 0) {
|
||||
return void 0;
|
||||
}
|
||||
try {
|
||||
const data = JSON.parse(value);
|
||||
if (!isArray(data)) {
|
||||
logger.debug(
|
||||
`Expected '${"CODEQL_PROXY_URLS" /* PROXY_URLS */}' to contain a JSON array, but got '${typeof data}'.`
|
||||
);
|
||||
return void 0;
|
||||
}
|
||||
if (!validateArray(registryBaseSchema, data)) {
|
||||
logger.debug(
|
||||
`Expected '${"CODEQL_PROXY_URLS" /* PROXY_URLS */}' to contain a JSON array of registry objects, but got something else.`
|
||||
);
|
||||
return void 0;
|
||||
}
|
||||
const types2 = new Set(data.map((r) => r.type));
|
||||
return Array.from(types2).sort().join(",");
|
||||
} catch (err) {
|
||||
logger.debug(
|
||||
`Failed to parse '${"CODEQL_PROXY_URLS" /* PROXY_URLS */}': ${getErrorMessage(err)}.`
|
||||
);
|
||||
return void 0;
|
||||
}
|
||||
}
|
||||
async function createStatusReportBase(actionName, status, actionStartedAt, config, diskInfo, logger, cause, exception) {
|
||||
try {
|
||||
const commitOid = getOptionalInput("sha") || process.env["GITHUB_SHA"] || "";
|
||||
@@ -146507,6 +146685,7 @@ async function createStatusReportBase(actionName, status, actionStartedAt, confi
|
||||
job_name: jobName,
|
||||
job_run_uuid: jobRunUUID,
|
||||
ref,
|
||||
registry_types: getRegistryTypesFromEnv(logger),
|
||||
runner_os: runnerOs,
|
||||
started_at: workflowStartedAt,
|
||||
status,
|
||||
@@ -157415,7 +157594,7 @@ var import_async = __toESM(require_async(), 1);
|
||||
var import_path6 = require("path");
|
||||
|
||||
// node_modules/archiver/lib/error.js
|
||||
var import_util33 = __toESM(require("util"), 1);
|
||||
var import_util34 = __toESM(require("util"), 1);
|
||||
var ERROR_CODES = {
|
||||
ABORTED: "archive was aborted",
|
||||
DIRECTORYDIRPATHREQUIRED: "diretory dirpath argument must be a non-empty string value",
|
||||
@@ -157440,7 +157619,7 @@ function ArchiverError(code, data) {
|
||||
this.code = code;
|
||||
this.data = data;
|
||||
}
|
||||
import_util33.default.inherits(ArchiverError, Error);
|
||||
import_util34.default.inherits(ArchiverError, Error);
|
||||
|
||||
// node_modules/archiver/lib/core.js
|
||||
var import_readable_stream2 = __toESM(require_ours(), 1);
|
||||
@@ -161870,142 +162049,6 @@ var path26 = __toESM(require("path"));
|
||||
var core26 = __toESM(require_core());
|
||||
var toolcache4 = __toESM(require_tool_cache());
|
||||
|
||||
// src/start-proxy/types.ts
|
||||
var usernameSchema = {
|
||||
/** The username needed to authenticate to the package registry, if any. */
|
||||
username: optionalOrNull(string)
|
||||
};
|
||||
function hasUsername(config) {
|
||||
return "username" in config;
|
||||
}
|
||||
var usernamePasswordSchema = {
|
||||
/** The password needed to authenticate to the package registry, if any. */
|
||||
password: optionalOrNull(string),
|
||||
...usernameSchema
|
||||
};
|
||||
function hasUsernameAndPassword(config) {
|
||||
return hasUsername(config) && "password" in config;
|
||||
}
|
||||
var tokenSchema = {
|
||||
/** The token needed to authenticate to the package registry, if any. */
|
||||
token: optionalOrNull(string),
|
||||
...usernameSchema
|
||||
};
|
||||
function hasToken(config) {
|
||||
return "token" in config;
|
||||
}
|
||||
function isToken(config) {
|
||||
return "token" in config && validateSchema(tokenSchema, config);
|
||||
}
|
||||
var azureConfigSchema = {
|
||||
"tenant-id": string,
|
||||
"client-id": string
|
||||
};
|
||||
function isAzureConfig(config) {
|
||||
return validateSchema(azureConfigSchema, config);
|
||||
}
|
||||
var awsConfigSchema = {
|
||||
"aws-region": string,
|
||||
"account-id": string,
|
||||
"role-name": string,
|
||||
domain: string,
|
||||
"domain-owner": string,
|
||||
audience: optionalOrNull(string)
|
||||
};
|
||||
function isAWSConfig(config) {
|
||||
return validateSchema(awsConfigSchema, config);
|
||||
}
|
||||
var jfrogConfigSchema = {
|
||||
"jfrog-oidc-provider-name": string,
|
||||
audience: optionalOrNull(string),
|
||||
"identity-mapping-name": optionalOrNull(string)
|
||||
};
|
||||
function isJFrogConfig(config) {
|
||||
return validateSchema(jfrogConfigSchema, config);
|
||||
}
|
||||
var cloudsmithConfigSchema = {
|
||||
namespace: string,
|
||||
"service-slug": string,
|
||||
"api-host": string
|
||||
};
|
||||
function isCloudsmithConfig(config) {
|
||||
return validateSchema(cloudsmithConfigSchema, config);
|
||||
}
|
||||
var gcpConfigSchema = {
|
||||
"workload-identity-provider": string,
|
||||
"service-account": optionalOrNull(string),
|
||||
audience: optionalOrNull(string)
|
||||
};
|
||||
function isGCPConfig(config) {
|
||||
return validateSchema(gcpConfigSchema, config);
|
||||
}
|
||||
var oidcSchemas = [
|
||||
{ schema: azureConfigSchema, name: "Azure" },
|
||||
{ schema: awsConfigSchema, name: "AWS" },
|
||||
{ schema: jfrogConfigSchema, name: "JFrog" },
|
||||
{ schema: cloudsmithConfigSchema, name: "Cloudsmith" },
|
||||
{ schema: gcpConfigSchema, name: "GCP" }
|
||||
];
|
||||
function credentialToStr(credential) {
|
||||
let result = `Type: ${credential.type};`;
|
||||
const appendIfDefined = (name, val) => {
|
||||
if (isDefined2(val)) {
|
||||
result += ` ${name}: ${val};`;
|
||||
}
|
||||
};
|
||||
appendIfDefined("Url", credential.url);
|
||||
appendIfDefined("Host", credential.host);
|
||||
if (hasUsername(credential)) {
|
||||
appendIfDefined("Username", credential.username);
|
||||
}
|
||||
if ("password" in credential) {
|
||||
appendIfDefined(
|
||||
"Password",
|
||||
isDefined2(credential.password) ? "***" : void 0
|
||||
);
|
||||
}
|
||||
if (hasToken(credential)) {
|
||||
appendIfDefined("Token", isDefined2(credential.token) ? "***" : void 0);
|
||||
}
|
||||
if (isAzureConfig(credential)) {
|
||||
appendIfDefined("Tenant", credential["tenant-id"]);
|
||||
appendIfDefined("Client", credential["client-id"]);
|
||||
} else if (isAWSConfig(credential)) {
|
||||
appendIfDefined("AWS Region", credential["aws-region"]);
|
||||
appendIfDefined("AWS Account", credential["account-id"]);
|
||||
appendIfDefined("AWS Role", credential["role-name"]);
|
||||
appendIfDefined("AWS Domain", credential.domain);
|
||||
appendIfDefined("AWS Domain Owner", credential["domain-owner"]);
|
||||
appendIfDefined("AWS Audience", credential.audience);
|
||||
} else if (isJFrogConfig(credential)) {
|
||||
appendIfDefined("JFrog Provider", credential["jfrog-oidc-provider-name"]);
|
||||
appendIfDefined(
|
||||
"JFrog Identity Mapping",
|
||||
credential["identity-mapping-name"]
|
||||
);
|
||||
appendIfDefined("JFrog Audience", credential.audience);
|
||||
} else if (isCloudsmithConfig(credential)) {
|
||||
appendIfDefined("Cloudsmith Namespace", credential.namespace);
|
||||
appendIfDefined("Cloudsmith Service Slug", credential["service-slug"]);
|
||||
appendIfDefined("Cloudsmith API Host", credential["api-host"]);
|
||||
} else if (isGCPConfig(credential)) {
|
||||
appendIfDefined(
|
||||
"GCP Workload Identity Provider",
|
||||
credential["workload-identity-provider"]
|
||||
);
|
||||
appendIfDefined("GCP Service Account", credential["service-account"]);
|
||||
appendIfDefined("GCP Audience", credential.audience);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
function getAddressString(address) {
|
||||
if (address.url === void 0) {
|
||||
return address.host;
|
||||
} else {
|
||||
return address.url;
|
||||
}
|
||||
}
|
||||
|
||||
// src/start-proxy/validation.ts
|
||||
var core25 = __toESM(require_core());
|
||||
function cloneCredential(schema, obj) {
|
||||
|
||||
Reference in New Issue
Block a user