Merge branch 'main' of https://git.stella-ops.org/stella-ops.org/git.stella-ops.org
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
api-governance / spectral-lint (push) Has been cancelled
oas-ci / oas-validate (push) Has been cancelled
Policy Simulation / policy-simulate (push) Has been cancelled
sdk-generator-smoke / sdk-smoke (push) Has been cancelled
SDK Publish & Sign / sdk-publish (push) Has been cancelled
Some checks failed
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
api-governance / spectral-lint (push) Has been cancelled
oas-ci / oas-validate (push) Has been cancelled
Policy Simulation / policy-simulate (push) Has been cancelled
sdk-generator-smoke / sdk-smoke (push) Has been cancelled
SDK Publish & Sign / sdk-publish (push) Has been cancelled
This commit is contained in:
@@ -46,6 +46,7 @@ internal static class CommandFactory
|
||||
root.Add(BuildVulnCommand(services, verboseOption, cancellationToken));
|
||||
root.Add(BuildCryptoCommand(services, verboseOption, cancellationToken));
|
||||
root.Add(BuildAttestCommand(services, verboseOption, cancellationToken));
|
||||
root.Add(BuildRiskProfileCommand(verboseOption, cancellationToken));
|
||||
|
||||
var pluginLogger = loggerFactory.CreateLogger<CliCommandModuleLoader>();
|
||||
var pluginLoader = new CliCommandModuleLoader(services, options, pluginLogger);
|
||||
@@ -1850,4 +1851,64 @@ internal static class CommandFactory
|
||||
|
||||
return attest;
|
||||
}
|
||||
|
||||
private static Command BuildRiskProfileCommand(Option<bool> verboseOption, CancellationToken cancellationToken)
|
||||
{
|
||||
_ = cancellationToken;
|
||||
var riskProfile = new Command("risk-profile", "Manage risk profile schemas and validation.");
|
||||
|
||||
var validate = new Command("validate", "Validate a risk profile JSON file against the schema.");
|
||||
var inputOption = new Option<string>("--input", new[] { "-i" })
|
||||
{
|
||||
Description = "Path to the risk profile JSON file to validate.",
|
||||
Required = true
|
||||
};
|
||||
var formatOption = new Option<string?>("--format")
|
||||
{
|
||||
Description = "Output format: table (default) or json."
|
||||
};
|
||||
var outputOption = new Option<string?>("--output")
|
||||
{
|
||||
Description = "Write validation report to the specified file path."
|
||||
};
|
||||
var strictOption = new Option<bool>("--strict")
|
||||
{
|
||||
Description = "Treat warnings as errors (exit code 1 on any issue)."
|
||||
};
|
||||
|
||||
validate.Add(inputOption);
|
||||
validate.Add(formatOption);
|
||||
validate.Add(outputOption);
|
||||
validate.Add(strictOption);
|
||||
|
||||
validate.SetAction((parseResult, _) =>
|
||||
{
|
||||
var input = parseResult.GetValue(inputOption) ?? string.Empty;
|
||||
var format = parseResult.GetValue(formatOption) ?? "table";
|
||||
var output = parseResult.GetValue(outputOption);
|
||||
var strict = parseResult.GetValue(strictOption);
|
||||
var verbose = parseResult.GetValue(verboseOption);
|
||||
|
||||
return CommandHandlers.HandleRiskProfileValidateAsync(input, format, output, strict, verbose);
|
||||
});
|
||||
|
||||
var schema = new Command("schema", "Display or export the risk profile JSON schema.");
|
||||
var schemaOutputOption = new Option<string?>("--output")
|
||||
{
|
||||
Description = "Write the schema to the specified file path."
|
||||
};
|
||||
schema.Add(schemaOutputOption);
|
||||
|
||||
schema.SetAction((parseResult, _) =>
|
||||
{
|
||||
var output = parseResult.GetValue(schemaOutputOption);
|
||||
var verbose = parseResult.GetValue(verboseOption);
|
||||
|
||||
return CommandHandlers.HandleRiskProfileSchemaAsync(output, verbose);
|
||||
});
|
||||
|
||||
riskProfile.Add(validate);
|
||||
riskProfile.Add(schema);
|
||||
return riskProfile;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user