fix(alerts): level OK is a stand-down, not a green alarm
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user