From 10adce21adca8f6a1598a3eb479046ed93e28e2f Mon Sep 17 00:00:00 2001 From: OG T Date: Tue, 24 Mar 2026 22:16:45 +0800 Subject: [PATCH] =?UTF-8?q?fix(webhooks):=20primary=5Fresponsibility=20?= =?UTF-8?q?=E5=B7=B2=E6=98=AF=20str=20=E4=B8=8D=E9=9C=80=20.value?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.5 --- apps/api/src/api/v1/webhooks.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/api/src/api/v1/webhooks.py b/apps/api/src/api/v1/webhooks.py index 710fcd1dd..3d271f26d 100644 --- a/apps/api/src/api/v1/webhooks.py +++ b/apps/api/src/api/v1/webhooks.py @@ -1194,11 +1194,11 @@ async def alertmanager_webhook( if analysis_result: # analysis_result 是 OpenClawDecision Pydantic 模型 - risk_level = analysis_result.risk_level.value # e.g., "low", "medium", "critical" + risk_level = analysis_result.risk_level.value # enum → "low", "medium", "critical" action = f"{analysis_result.action_title} | {analysis_result.kubectl_command}" root_cause = analysis_result.description or message estimated_downtime = analysis_result.blast_radius.estimated_downtime if analysis_result.blast_radius else "~30s" - primary_responsibility = analysis_result.primary_responsibility.value if hasattr(analysis_result, 'primary_responsibility') and analysis_result.primary_responsibility else "COLLAB" + primary_responsibility = analysis_result.primary_responsibility or "COLLAB" # 已是 str confidence = analysis_result.confidence # 建立 ApprovalRecord