"""Adapter: gitleaks --report-format json normalized to Finding[].""" from __future__ import annotations import json from scripts.manifest import Finding def parse_gitleaks_output(stdout: str) -> list[Finding]: try: payload = json.loads(stdout) except json.JSONDecodeError: return [] if not isinstance(payload, list): return [] out: list[Finding] = [] for r in payload: out.append(Finding( tool="gitleaks", rule_id=r.get("RuleID", ""), severity="critical", file=r.get("File", ""), line=r.get("StartLine", 0), end_line=r.get("EndLine", r.get("StartLine", 0)), message=r.get("Description", ""), )) return out