"""Adapter: actionlint -format '{{json .}}' normalized to Finding[].""" from __future__ import annotations import json from scripts.manifest import Finding def parse_actionlint_output(stdout: str) -> list[Finding]: try: payload = json.loads(stdout) except json.JSONDecodeError: return [] if not isinstance(payload, list): return [] out: list[Finding] = [] for item in payload: line = item.get("line", 0) out.append(Finding( tool="actionlint", rule_id=item.get("kind", "unknown"), severity="high", file=item.get("filepath", ""), line=line, end_line=line, message=item.get("message", ""), )) return out