diff --git a/internal/commands/result.go b/internal/commands/result.go index 853fa30da..ba706a3c4 100644 --- a/internal/commands/result.go +++ b/internal/commands/result.go @@ -86,7 +86,8 @@ func NewResultsCommand( resultsWrapper wrappers.ResultsWrapper, scanWrapper wrappers.ScansWrapper, codeBashingWrapper wrappers.CodeBashingWrapper, - bflWrapper wrappers.BflWrapper) *cobra.Command { + bflWrapper wrappers.BflWrapper, +) *cobra.Command { resultCmd := &cobra.Command{ Use: "results", Short: "Retrieve results", @@ -289,7 +290,6 @@ func SummaryReport( return nil, err } summary.BaseURI = wrappers.GetURL(fmt.Sprintf("projects/%s/overview", summary.ProjectID)) - summary.TotalIssues = int(results.TotalCount) for _, result := range results.Results { countResult(summary, result) } @@ -308,20 +308,25 @@ func SummaryReport( func countResult(summary *wrappers.ResultSummary, result *wrappers.ScanResult) { engineType := strings.TrimSpace(result.Type) - if engineType == commonParams.SastType { + if engineType == commonParams.SastType && result.State != notExploitable { summary.SastIssues++ + summary.TotalIssues++ } else if engineType == commonParams.ScaType { summary.ScaIssues++ - } else if engineType == commonParams.KicsType { + summary.TotalIssues++ + } else if engineType == commonParams.KicsType && result.State != notExploitable { summary.KicsIssues++ + summary.TotalIssues++ } severity := strings.ToLower(result.Severity) - if severity == highLabel { - summary.HighIssues++ - } else if severity == lowLabel { - summary.LowIssues++ - } else if severity == mediumLabel { - summary.MediumIssues++ + if result.State != notExploitable { + if severity == highLabel { + summary.HighIssues++ + } else if severity == lowLabel { + summary.LowIssues++ + } else if severity == mediumLabel { + summary.MediumIssues++ + } } } diff --git a/internal/commands/scan.go b/internal/commands/scan.go index 030b2a1a2..3897cb01f 100644 --- a/internal/commands/scan.go +++ b/internal/commands/scan.go @@ -38,6 +38,7 @@ const ( thresholdMsgLog = "Threshold check finished with status %s : %s" mbBytes = 1024.0 * 1024.0 scaType = "sca" + notExploitable = "NOT_EXPLOITABLE" ) var ( @@ -1150,8 +1151,10 @@ func getSummaryThresholdMap(resultsWrapper wrappers.ResultsWrapper, scanID strin } summaryMap := make(map[string]int) for _, result := range results.Results { - key := strings.ToLower(fmt.Sprintf("%s-%s", result.Type, result.Severity)) - summaryMap[key]++ + if !strings.EqualFold(result.State, notExploitable) { + key := strings.ToLower(fmt.Sprintf("%s-%s", result.Type, result.Severity)) + summaryMap[key]++ + } } return summaryMap, nil }