Refactor code structure for improved readability and maintainability; optimize performance in key functions.
This commit is contained in:
@@ -78,6 +78,7 @@ internal static class CommandFactory
|
||||
root.Add(BuildRiskCommand(services, verboseOption, cancellationToken));
|
||||
root.Add(BuildReachabilityCommand(services, verboseOption, cancellationToken));
|
||||
root.Add(BuildGraphCommand(services, verboseOption, cancellationToken));
|
||||
root.Add(Binary.BinaryCommandGroup.BuildBinaryCommand(services, verboseOption, cancellationToken)); // Sprint: SPRINT_3850_0001_0001
|
||||
root.Add(BuildApiCommand(services, verboseOption, cancellationToken));
|
||||
root.Add(BuildSdkCommand(services, verboseOption, cancellationToken));
|
||||
root.Add(BuildMirrorCommand(services, verboseOption, cancellationToken));
|
||||
@@ -92,6 +93,8 @@ internal static class CommandFactory
|
||||
root.Add(ScoreReplayCommandGroup.BuildScoreCommand(services, verboseOption, cancellationToken));
|
||||
root.Add(UnknownsCommandGroup.BuildUnknownsCommand(services, verboseOption, cancellationToken));
|
||||
root.Add(ProofCommandGroup.BuildProofCommand(services, verboseOption, cancellationToken));
|
||||
root.Add(ReplayCommandGroup.BuildReplayCommand(verboseOption, cancellationToken));
|
||||
root.Add(DeltaCommandGroup.BuildDeltaCommand(verboseOption, cancellationToken));
|
||||
|
||||
// Add scan graph subcommand to existing scan command
|
||||
var scanCommand = root.Children.OfType<Command>().FirstOrDefault(c => c.Name == "scan");
|
||||
@@ -8970,6 +8973,77 @@ internal static class CommandFactory
|
||||
|
||||
sbom.Add(list);
|
||||
|
||||
// sbom upload
|
||||
var upload = new Command("upload", "Upload an external SBOM for BYOS analysis.");
|
||||
var uploadFileOption = new Option<string>("--file", new[] { "-f" })
|
||||
{
|
||||
Description = "Path to the SBOM JSON file.",
|
||||
Required = true
|
||||
};
|
||||
var uploadArtifactOption = new Option<string>("--artifact")
|
||||
{
|
||||
Description = "Artifact reference (image digest or tag).",
|
||||
Required = true
|
||||
};
|
||||
var uploadFormatOption = new Option<string?>("--format")
|
||||
{
|
||||
Description = "SBOM format hint (cyclonedx, spdx)."
|
||||
};
|
||||
var uploadToolOption = new Option<string?>("--source-tool")
|
||||
{
|
||||
Description = "Source tool name (e.g., syft)."
|
||||
};
|
||||
var uploadToolVersionOption = new Option<string?>("--source-version")
|
||||
{
|
||||
Description = "Source tool version."
|
||||
};
|
||||
var uploadBuildIdOption = new Option<string?>("--ci-build-id")
|
||||
{
|
||||
Description = "CI build identifier."
|
||||
};
|
||||
var uploadRepositoryOption = new Option<string?>("--ci-repo")
|
||||
{
|
||||
Description = "CI repository identifier."
|
||||
};
|
||||
|
||||
upload.Add(uploadFileOption);
|
||||
upload.Add(uploadArtifactOption);
|
||||
upload.Add(uploadFormatOption);
|
||||
upload.Add(uploadToolOption);
|
||||
upload.Add(uploadToolVersionOption);
|
||||
upload.Add(uploadBuildIdOption);
|
||||
upload.Add(uploadRepositoryOption);
|
||||
upload.Add(jsonOption);
|
||||
upload.Add(verboseOption);
|
||||
|
||||
upload.SetAction((parseResult, _) =>
|
||||
{
|
||||
var file = parseResult.GetValue(uploadFileOption) ?? string.Empty;
|
||||
var artifact = parseResult.GetValue(uploadArtifactOption) ?? string.Empty;
|
||||
var format = parseResult.GetValue(uploadFormatOption);
|
||||
var tool = parseResult.GetValue(uploadToolOption);
|
||||
var toolVersion = parseResult.GetValue(uploadToolVersionOption);
|
||||
var buildId = parseResult.GetValue(uploadBuildIdOption);
|
||||
var repository = parseResult.GetValue(uploadRepositoryOption);
|
||||
var json = parseResult.GetValue(jsonOption);
|
||||
var verbose = parseResult.GetValue(verboseOption);
|
||||
|
||||
return CommandHandlers.HandleSbomUploadAsync(
|
||||
services,
|
||||
file,
|
||||
artifact,
|
||||
format,
|
||||
tool,
|
||||
toolVersion,
|
||||
buildId,
|
||||
repository,
|
||||
json,
|
||||
verbose,
|
||||
cancellationToken);
|
||||
});
|
||||
|
||||
sbom.Add(upload);
|
||||
|
||||
// sbom show
|
||||
var show = new Command("show", "Display detailed SBOM information including components, vulnerabilities, and licenses.");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user