Heavy-Tools / ci_guard.py
lexicalspace's picture
Update ci_guard.py
cdc6498 verified
raw
history blame contribute delete
853 Bytes
import json
import sys
def run_ci():
"""
UI-safe CI Guard
Returns:
(passed: bool, failed_rules: list)
"""
rules_path = "artifacts/normalized_rules.json"
findings_path = "artifacts/rule_findings.json"
if not os.path.exists(rules_path) or not os.path.exists(findings_path):
return False, ["CI setup incomplete"]
rules = json.load(open(rules_path, "r", encoding="utf-8"))
findings = json.load(open(findings_path, "r", encoding="utf-8"))
critical_rules = {
r["id"]
for r in rules.get("rules", [])
if r.get("severity") == "critical"
}
violated_rules = {
f["rule"]
for f in findings
if f.get("status") == "VIOLATED"
}
failed = sorted(critical_rules & violated_rules)
if failed:
return False, failed
return True, []