diff --git a/git_test.go b/git_test.go index 86af84dfe..b8033ae47 100644 --- a/git_test.go +++ b/git_test.go @@ -262,8 +262,8 @@ func TestGitAuditJasSkipNotApplicableCvesViolations(t *testing.T) { xrayVersion, xscVersion, "", validations.ValidationParams{ Violations: &validations.ViolationCount{ - ValidateScan: &validations.ScanCount{Sca: 8, Sast: 2, Secrets: 2}, - ValidateApplicabilityStatus: &validations.ApplicabilityStatusCount{NotApplicable: 3, NotCovered: 5, Inactive: 2}, + ValidateScan: &validations.ScanCount{Sca: 9, Sast: 2, Secrets: 2}, + ValidateApplicabilityStatus: &validations.ApplicabilityStatusCount{NotApplicable: 3, NotCovered: 6, Inactive: 2}, }, ExactResultsMatch: true, }, @@ -290,8 +290,8 @@ func TestGitAuditJasSkipNotApplicableCvesViolations(t *testing.T) { xrayVersion, xscVersion, "", validations.ValidationParams{ Violations: &validations.ViolationCount{ - ValidateScan: &validations.ScanCount{Sca: 5, Sast: 2, Secrets: 2}, - ValidateApplicabilityStatus: &validations.ApplicabilityStatusCount{NotCovered: 5, Inactive: 2}, + ValidateScan: &validations.ScanCount{Sca: 6, Sast: 2, Secrets: 2}, + ValidateApplicabilityStatus: &validations.ApplicabilityStatusCount{NotCovered: 6, Inactive: 2}, }, ExactResultsMatch: true, }, diff --git a/utils/results/conversion/convertor.go b/utils/results/conversion/convertor.go index a8c7df141..d6e7c52ce 100644 --- a/utils/results/conversion/convertor.go +++ b/utils/results/conversion/convertor.go @@ -1,6 +1,8 @@ package conversion import ( + "slices" + "github.com/CycloneDX/cyclonedx-go" "github.com/jfrog/jfrog-cli-security/utils" "github.com/jfrog/jfrog-cli-security/utils/formats" @@ -43,6 +45,8 @@ type ResultConvertParams struct { Pretty bool // The JFrog platform URL to be used in the results (Sarif only - GitHub integration) PlatformUrl string + // A list of target names to include in the output, if empty all targets will be included + IncludeTargets []string } func NewCommandResultsConvertor(params ResultConvertParams) *CommandResultsConvertor { @@ -109,6 +113,10 @@ func parseCommandResults[T interface{}](params ResultConvertParams, parser Resul return } for _, targetScansResults := range cmdResults.Targets { + if len(params.IncludeTargets) > 0 && !slices.Contains(params.IncludeTargets, targetScansResults.Target) { + // Skip this target as it's not in the include list + continue + } if err = parser.ParseNewTargetResults(targetScansResults.ScanTarget, targetScansResults.Errors...); err != nil { return }