Skip to content

Commit 99059bd

Browse files
committed
revert sarif
1 parent 5687163 commit 99059bd

File tree

2 files changed

+15
-25
lines changed

2 files changed

+15
-25
lines changed

cmd/analyze.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,7 @@ var analyzeCmd = &cobra.Command{
488488
log.Fatalf("Failed to read merged SARIF output: %v", err)
489489
}
490490

491-
filteredData, err := utils.FilterRulesFromSarif(sarifData)
491+
filteredData, err := utils.FilterRuleDefinitions(sarifData)
492492
if err != nil {
493493
log.Fatalf("Failed to filter rules from SARIF: %v", err)
494494
}

utils/sarif.go

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -204,8 +204,14 @@ func MergeSarifOutputs(inputFiles []string, outputFile string) error {
204204
return fmt.Errorf("failed to read SARIF file %s: %w", file, err)
205205
}
206206

207+
// Filter out rule definitions from each input file
208+
filteredData, err := FilterRuleDefinitions(data)
209+
if err != nil {
210+
return fmt.Errorf("failed to filter rules from SARIF file %s: %w", file, err)
211+
}
212+
207213
var sarif SimpleSarifReport
208-
if err := json.Unmarshal(data, &sarif); err != nil {
214+
if err := json.Unmarshal(filteredData, &sarif); err != nil {
209215
return fmt.Errorf("failed to parse SARIF file %s: %w", file, err)
210216
}
211217

@@ -228,34 +234,18 @@ func MergeSarifOutputs(inputFiles []string, outputFile string) error {
228234
return nil
229235
}
230236

231-
// FilterRulesFromSarif removes rule definitions from SARIF output if needed
232-
// This should be called separately after MergeSarifOutputs if rule filtering is required
233-
func FilterRulesFromSarif(sarifData []byte) ([]byte, error) {
234-
// Use a map to preserve all fields during unmarshaling
235-
var report map[string]interface{}
237+
// FilterRuleDefinitions removes rule definitions from SARIF output
238+
func FilterRuleDefinitions(sarifData []byte) ([]byte, error) {
239+
var report SarifReport
236240
if err := json.Unmarshal(sarifData, &report); err != nil {
237241
return nil, fmt.Errorf("failed to parse SARIF data: %w", err)
238242
}
239243

240-
// Navigate to the runs array and remove rules from each run
241-
if runs, ok := report["runs"].([]interface{}); ok {
242-
for _, run := range runs {
243-
if runMap, ok := run.(map[string]interface{}); ok {
244-
if tool, ok := runMap["tool"].(map[string]interface{}); ok {
245-
if driver, ok := tool["driver"].(map[string]interface{}); ok {
246-
// Always set rules to null to maintain consistent output format
247-
driver["rules"] = nil
248-
}
249-
}
250-
}
251-
}
244+
// Remove rules from each run
245+
for i := range report.Runs {
246+
report.Runs[i].Tool.Driver.Rules = nil
252247
}
253248

254249
// Marshal back to JSON with indentation
255-
filteredData, err := json.MarshalIndent(report, "", " ")
256-
if err != nil {
257-
return nil, fmt.Errorf("failed to marshal filtered SARIF: %w", err)
258-
}
259-
260-
return filteredData, nil
250+
return json.MarshalIndent(report, "", " ")
261251
}

0 commit comments

Comments
 (0)