Coverage for src \ sec_report_kit \ parsers \ trivy.py: 100%
11 statements
« prev ^ index » next coverage.py v7.14.0, created at 2026-05-13 08:06 +0530
« prev ^ index » next coverage.py v7.14.0, created at 2026-05-13 08:06 +0530
1from __future__ import annotations
3from sec_report_kit.models import Finding
4from sec_report_kit.services.normalize import normalize_severity
7def parse_trivy_json(data: dict) -> list[Finding]:
8 findings: list[Finding] = []
9 for result in data.get("Results", []):
10 target = result.get("Target", "unknown")
11 source_type = result.get("Type", "unknown")
12 for vuln in result.get("Vulnerabilities", []) or []:
13 findings.append(
14 Finding(
15 source_type=source_type,
16 target=target,
17 severity=normalize_severity(vuln.get("Severity")),
18 vulnerability_id=vuln.get("VulnerabilityID", "-"),
19 package=vuln.get("PkgName", "-"),
20 installed_version=vuln.get("InstalledVersion", "-"),
21 fixed_version=vuln.get("FixedVersion") or "-",
22 title=vuln.get("Title") or "-",
23 primary_url=vuln.get("PrimaryURL") or "",
24 )
25 )
26 return findings