/
kremls
/
python-course-junior
Обзор
Документация
Войти
/
kremls
/
python-course-junior
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
03-projects/secure-code-scanner/secure_code_scanner/review_policy.py
91 строка
2 KB
kremls
day 5 done
16 май 2026, 17:26
16 май 2026, 17:26
37c2b45
Код
Авторство
О чём код?
ALLOWED_SEVERITIES = {"LOW", "MEDIUM", "HIGH", "CRITICAL"} def normalize_severity(value: object) -> str: if not isinstance(value, str): return "LOW" normalized = value.strip().upper() if normalized not in ALLOWED_SEVERITIES: return "LOW" return normalized def has_meaningful_text(value: object) -> bool: return isinstance(value, str) and bool(value.strip()) def is_high_risk_severity(severity: str) -> bool: return severity in {"HIGH", "CRITICAL"} def get_review_priority(severity: str) -> str: match severity: case "CRITICAL": return "P1" case "HIGH": return "P2" case "MEDIUM": return "P3" case "LOW": return "P4" case _: return "P4" def is_valid_finding(finding: object) -> bool: if not isinstance(finding, dict): return False file_name = finding.get("file") line = finding.get("line") rule_id = finding.get("rule_id") severity = normalize_severity(finding.get("severity")) if not has_meaningful_text(file_name): return False if not isinstance(line, int) or line < 1: return False if not has_meaningful_text(rule_id): return False return severity in ALLOWED_SEVERITIES def filter_reportable_findings(findings: list[dict]) -> list[dict]: result = [] for finding in findings: if not is_valid_finding(finding): continue severity = normalize_severity(finding.get("severity")) if not is_high_risk_severity(severity): continue result.append(finding) return result def enrich_finding_with_priority(finding: dict) -> dict: severity = normalize_severity(finding.get("severity")) return { **finding, "severity": severity, "priority": get_review_priority(severity), } def enrich_findings_with_priority(findings: list[dict]) -> list[dict]: return [ enrich_finding_with_priority(finding) for finding in findings if is_valid_finding(finding) ]