feat(api): auto_repair_service 整合 repair_by_uri (Sprint 3 T6)
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
OG T
2026-04-06 14:39:03 +08:00
parent a4e11bfa92
commit 1644fe6474

View File

@@ -497,19 +497,16 @@ class AutoRepairService:
logger.warning("action_executor_not_available")
return "SKIPPED (executor not available)"
# 2026-04-05 Claude Code: SSH_COMMAND — 主機層修復 (Sprint 3 Host Auto-Repair)
# 2026-04-06 Claude Code: Sprint 3 — repair_by_uri (URI scheme 路由)
if step.action_type == ActionType.SSH_COMMAND:
from src.services.host_repair_agent import HostRepairAgent
agent = HostRepairAgent()
# step.command 格式: "<layer>/<component>" 例如 "docker-110/sentry"
try:
layer, component = step.command.split("/", 1)
except ValueError:
return f"FAILED: invalid ssh_command format '{step.command}' (expected layer/component)"
result = await agent.repair(layer=layer, component=component)
approved = not getattr(step, "requires_approval", False)
result = await agent.repair_by_uri(step.command, approved=approved)
if result.success:
return f"SUCCESS: {result.output}"
return f"FAILED: {result.error}"
else:
return f"FAILED: {result.error}"
return "UNKNOWN_ACTION_TYPE"