Refactor code structure for improved readability and maintainability; optimize performance in key functions.

This commit is contained in:
master
2025-12-22 19:06:31 +02:00
parent dfaa2079aa
commit 4602ccc3a3
1444 changed files with 109919 additions and 8058 deletions

View File

@@ -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.");