fix(alerts): level OK is a stand-down, not a green alarm

This commit is contained in:
hh
2026-07-23 03:42:01 +02:00
parent 5d784c3144
commit e76439e36b
+9 -3
View File
@@ -102,7 +102,10 @@ def _describe(kind: str, d: dict) -> tuple[str, list[str]]: # noqa: C901, PLR09
def format_alert(payload: dict) -> str: def format_alert(payload: dict) -> str:
level = str(payload.get("level", "")).upper() level = str(payload.get("level", "")).upper()
resolved = bool(payload.get("resolved")) # level=OK — это тоже «отбой», просто Komodo сообщает его уровнем, а не
# флагом. Без этой проверки приходило зелёное сообщение с тревожным
# текстом: галочка и «git разошёлся с Komodo» одновременно.
resolved = bool(payload.get("resolved")) or level == "OK"
data = payload.get("data") or {} data = payload.get("data") or {}
kind = str(data.get("type") or "Unknown") kind = str(data.get("type") or "Unknown")
inner = data.get("data") or {} inner = data.get("data") or {}
@@ -110,9 +113,12 @@ def format_alert(payload: dict) -> str:
icon = "" if resolved else LEVEL_ICON.get(level, "🔔") icon = "" if resolved else LEVEL_ICON.get(level, "🔔")
title, details = _describe(kind, inner if isinstance(inner, dict) else {}) title, details = _describe(kind, inner if isinstance(inner, dict) else {})
lines = [f"{icon} {title}"]
if resolved: if resolved:
lines.append("<i>Проблема закрылась.</i>") return "\n".join(
[f"{icon} Отбой: {title}", f"<i>Komodo · {html.escape(kind)}</i>"]
)
lines = [f"{icon} {title}"]
lines.extend(x for x in details if x) lines.extend(x for x in details if x)
lines.append(f"<i>Komodo · {html.escape(kind)}</i>") lines.append(f"<i>Komodo · {html.escape(kind)}</i>")
return "\n".join(lines) return "\n".join(lines)