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

1from __future__ import annotations 

2 

3from sec_report_kit.models import Finding 

4from sec_report_kit.services.normalize import normalize_severity 

5 

6 

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