多通道 Webhook 通知

內建的 notify 僅限桌面快顯,而 ChatOps 只內建 Slack 一種傳輸 —— 但無人值守的執行也 想通知 Microsoft Teams、Discord 或一般的 incoming webhook。每一種都是簡單的 JSON POST, 搭配對應傳輸的酬載結構(Slack 與 Teams MessageCard 用 text,Discord 用 content);``notify_webhook`` 會組出正確的本文,並透過受出口守衛保護的 HTTP 用戶端 POST 出去。

傳輸可注入(poster 可呼叫物件或模組層級預設),因此發送在無網路下即可單元測試。純標 準函式庫;不匯入 PySide6

無頭 API

from je_auto_control import notify_webhook, WebhookChannel

notify_webhook("https://hooks.slack.com/...", "Run finished", transport="slack")
notify_webhook("https://discord.com/api/webhooks/...", "Build broke",
               transport="discord", title="CI")
notify_webhook("https://prod.webhook.office.com/...", "Deploy done",
               transport="teams", title="Release")

chan = WebhookChannel("https://hooks.example.com/x", transport="raw")
result = chan.send("hello")          # -> WebhookResult(ok, status, transport)

transportslack / discord / teams / raw;結果的 ok 反映 2xx 狀 態。可傳入 poster(url, payload) -> statusWebhookChannel / notify_webhook (或以 set_default_poster 安裝一個)以走自訂傳輸或測試假物件。

執行器指令

AC_notify_webhook 接受 urltext``(以及選用的 ``transport / title),回傳 {ok, status, transport}。相同操作亦提供為 MCP 工具 ac_notify_webhook,以及 Script Builder 中 Tools 分類下的指令。