Canonical NormalizedFinding schema with Severity enum (CRITICAL/HIGH/MEDIUM/LOW/INFO). Per-project adapters for 9 tools with severity mapping for string labels, int 1-10, float 0-1, Python Enum, and computed properties. CLI pipe interface and registry. Nightshift-Task: event-taxonomy Nightshift-Ref: https://github.com/marcus/nightshift
17 lines
578 B
Python
17 lines
578 B
Python
from typing import Any
|
|
|
|
from event_taxonomy.adapters._severity import map_int_severity
|
|
from event_taxonomy.schema import NormalizedFinding
|
|
|
|
|
|
def normalize(finding: dict[str, Any]) -> NormalizedFinding:
|
|
return NormalizedFinding(
|
|
tool="perf-regression-spotter",
|
|
category=finding.get("pattern", "performance"),
|
|
severity=map_int_severity(finding["severity"]),
|
|
message=finding["message"],
|
|
file=finding.get("file"),
|
|
line=finding.get("line"),
|
|
metadata={"snippet": finding["snippet"]} if finding.get("snippet") else {},
|
|
)
|