func newReportProcessor()

in codecatalyst-runner/pkg/workflows/report_processor.go [48:76]


func newReportProcessor(reportsDir string, report *Report, successCriteria *SuccessCriteria) common.Executor {
	handlers := []reportHandler{
		sarifReportHandler(successCriteria.VulnerabilityThreshold),
	}
	return func(ctx context.Context) error {
		err := filepath.WalkDir(reportsDir, func(path string, d fs.DirEntry, err error) error {
			if d != nil && d.Type().IsRegular() {
				for _, handler := range handlers {
					reportFile, err := os.Open(path)
					if err != nil {
						return err
					}
					defer reportFile.Close()
					if err := handler(reportFile, report); err != nil {
						return nil
					}
				}
			}
			return nil
		})
		if err != nil {
			return err
		}
		if report.Result == "" {
			report.Result = ResultSucceeded
		}
		return nil
	}
}