This commit is contained in:
+19
-17
@@ -3,6 +3,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import csv
|
import csv
|
||||||
|
import io
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
import tempfile
|
import tempfile
|
||||||
@@ -58,9 +59,9 @@ def write_vulnerabilities(
|
|||||||
new_reports = [r for r in vulnerability_reports if r["id"] not in saved_vuln_ids]
|
new_reports = [r for r in vulnerability_reports if r["id"] not in saved_vuln_ids]
|
||||||
|
|
||||||
for report in new_reports:
|
for report in new_reports:
|
||||||
(vuln_dir / f"{report['id']}.md").write_text(
|
_atomic_write_text(
|
||||||
|
vuln_dir / f"{report['id']}.md",
|
||||||
render_vulnerability_md(report),
|
render_vulnerability_md(report),
|
||||||
encoding="utf-8",
|
|
||||||
)
|
)
|
||||||
saved_vuln_ids.add(report["id"])
|
saved_vuln_ids.add(report["id"])
|
||||||
|
|
||||||
@@ -68,21 +69,22 @@ def write_vulnerabilities(
|
|||||||
vulnerability_reports,
|
vulnerability_reports,
|
||||||
key=lambda r: (_SEVERITY_ORDER.get(r["severity"], 5), r["timestamp"]),
|
key=lambda r: (_SEVERITY_ORDER.get(r["severity"], 5), r["timestamp"]),
|
||||||
)
|
)
|
||||||
csv_path = run_dir / "vulnerabilities.csv"
|
csv_path = run_dir / "vulnerabilities.csv"
|
||||||
with csv_path.open("w", encoding="utf-8", newline="") as f:
|
csv_buf = io.StringIO()
|
||||||
fieldnames = ["id", "title", "severity", "timestamp", "file"]
|
fieldnames = ["id", "title", "severity", "timestamp", "file"]
|
||||||
writer = csv.DictWriter(f, fieldnames=fieldnames)
|
csv_writer = csv.DictWriter(csv_buf, fieldnames=fieldnames, lineterminator="\r\n")
|
||||||
writer.writeheader()
|
csv_writer.writeheader()
|
||||||
for report in sorted_reports:
|
for report in sorted_reports:
|
||||||
writer.writerow(
|
csv_writer.writerow(
|
||||||
{
|
{
|
||||||
"id": report["id"],
|
"id": report["id"],
|
||||||
"title": report["title"],
|
"title": report["title"],
|
||||||
"severity": report["severity"].upper(),
|
"severity": report["severity"].upper(),
|
||||||
"timestamp": report["timestamp"],
|
"timestamp": report["timestamp"],
|
||||||
"file": f"vulnerabilities/{report['id']}.md",
|
"file": f"vulnerabilities/{report['id']}.md",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
_atomic_write_text(csv_path, csv_buf.getvalue())
|
||||||
|
|
||||||
_atomic_write_text(
|
_atomic_write_text(
|
||||||
run_dir / "vulnerabilities.json",
|
run_dir / "vulnerabilities.json",
|
||||||
|
|||||||
Reference in New Issue
Block a user