chore: Update markdown summary report format

This commit is contained in:
abhisek 2024-03-26 18:48:29 +05:30
parent cbdec10ca6
commit bfa63005e6
No known key found for this signature in database
GPG Key ID: CB92A4990C02A88F

View File

@ -1,6 +1,7 @@
package reporter
import (
"bytes"
"fmt"
"net/url"
"os"
@ -50,6 +51,7 @@ func NewMarkdownSummaryReporter(config MarkdownSummaryReporterConfig) (Reporter,
}
// TOCTOU here but not a big risk
// We will delete this file on Finish()
tmpFile.Close()
jsonReporter, err := NewJsonReportGenerator(JsonReportingConfig{
@ -104,19 +106,34 @@ func (r *markdownSummaryReporter) Finish() error {
}
var report jsonreportspec.Report
err = utils.FromPbJson(strings.NewReader(string(data)), &report)
err = utils.FromPbJson(bytes.NewReader(data), &report)
if err != nil {
return fmt.Errorf("failed to parse JSON report: %w", err)
}
internalModel, err := r.buildInternalModel(&report)
builder := markdown.NewMarkdownBuilder()
err = r.buildMarkdownReport(builder, &report)
if err != nil {
return fmt.Errorf("failed to build markdown report: %w", err)
}
err = os.WriteFile(r.config.Path, []byte(builder.Build()), 0600)
if err != nil {
return fmt.Errorf("failed to write markdown summary to file: %w", err)
}
return nil
}
func (r *markdownSummaryReporter) buildMarkdownReport(builder *markdown.MarkdownBuilder,
report *jsonreportspec.Report) error {
internalModel, err := r.buildInternalModel(report)
if err != nil {
return fmt.Errorf("failed to build internal data model: %w", err)
}
builder := markdown.NewMarkdownBuilder()
builder.AddHeader(1, r.config.ReportTitle)
builder.AddParagraph("This report is generated by [vet](https://github.com/safedep/vet)")
err = r.addPolicyCheckSection(builder, internalModel)
if err != nil {
@ -138,11 +155,6 @@ func (r *markdownSummaryReporter) Finish() error {
return fmt.Errorf("failed to add violations section: %w", err)
}
err = os.WriteFile(r.config.Path, []byte(builder.Build()), 0600)
if err != nil {
return fmt.Errorf("failed to write markdown summary to file: %w", err)
}
return nil
}