in commands/credential_scan.go [399:440]
func storeCredScanErrors(wd string, credScanErrors []CredScanError) {
reportDir := fmt.Sprintf("armstrong_credscan_%s", time.Now().Format(time.Stamp))
reportDir = strings.ReplaceAll(reportDir, ":", "")
reportDir = strings.ReplaceAll(reportDir, " ", "_")
reportDir = path.Join(wd, reportDir)
err := os.Mkdir(reportDir, 0755)
if err != nil {
logrus.Fatalf("error creating report dir %s: %+v", reportDir, err)
}
markdownFileName := "errors.md"
credScanErrorsMarkdown := `
| File Name | Line Number | Name | Type | Property Name | Error Message |
| --- | --- | --- | --- | --- | --- |
`
for _, r := range credScanErrors {
credScanErrorsMarkdown += fmt.Sprintf("| %s | %d | %s | %s | %s | %s |\n", r.FileName, r.LineNumber, r.Name, r.Type, r.PropertyName, r.ErrorMessage)
}
markdownFileName = path.Join(reportDir, markdownFileName)
err = os.WriteFile(markdownFileName, []byte(credScanErrorsMarkdown), 0644)
if err != nil {
logrus.Errorf("failed to save markdown report to %s: %+v", markdownFileName, err)
} else {
logrus.Infof("markdown report saved to %s", markdownFileName)
}
jsonFileName := "errors.json"
jsonContent, err := json.MarshalIndent(credScanErrors, "", " ")
if err != nil {
logrus.Errorf("failed to marshal json content %+v: %+v", credScanErrors, err)
}
jsonFileName = path.Join(reportDir, jsonFileName)
err = os.WriteFile(jsonFileName, jsonContent, 0644)
if err != nil {
logrus.Errorf("failed to save json report to %s: %+v", jsonFileName, err)
} else {
logrus.Infof("json report saved to %s", jsonFileName)
}
}