自動化

事件掛鉤

觸發有限範圍 Hermes 工作的外部事件。

概念專屬圖版事件掛鉤hx-graph-context-concept-webhooks正在載入視覺預覽…
以原始尺寸檢視

事件掛鉤

這是什麼

由外部事件觸發、範圍明確受限的 Hermes 工作入口。

白話解釋

想像一棟商辦為每家公司設定有清楚標籤的獨立信箱,而不是共用同一個櫃台。事件掛鉤就像這個信箱:GitHub、表單服務或監控告警等外部系統在事件發生時送來簽章訊息,Hermes 入口會先驗證寄件者身分,確認後才讓內容進入指定信箱並觸發工作。

為什麼重要

外部事件抵達 Hermes API 介面後,事件掛鉤才會真正觸發事件驅動工作。每條路由都刻意限制在明確範圍,避免意外或格式錯誤的承載資料擴散成無關代理行為。這項限制是核心設計:每個入口只應完成一件指定工作,而不是開啟不受約束的工作階段。儀表板 API 會把事件掛鉤與 cron、訊息功能並列成獨立路由群組。

運作方式

每條路由可靜態定義於 config.yaml,或動態保存於 ~/.hermes/webhook_subscriptions.json;設定包含事件過濾器、必要的 HMAC 簽章密鑰、選用提示範本與傳送目標,實作位於 gateway/platforms/webhook.py。外部事件一律送到 POST /webhooks/{route_name};多設定檔 gateway 另提供 POST /p/{profile}/webhooks/{route_name}。介接器會限制請求本文大小,在解析 JSON 前先以原始本文驗證 GitHub、GitLab 或一般 HMAC 簽章,再過濾事件類型並抑制重複的傳送識別碼。只有操作者明確建立相應名稱與 gateway 路徑的路由後,該 URL 才存在;events/outage 這類未設定名稱不會自動出現。

具體範例

操作者建立名為 pr-review 的路由,允許 pull_request 事件、設定 HMAC 簽章密鑰,並讓提示範本引用 {pull_request.title}{pull_request.user.login};傳送目標設為 github_comment,附上儲存庫與 PR 編號。隊友開啟 PR 後,GitHub 對 POST /webhooks/pr-review 傳送簽章請求。Hermes 驗證簽章與事件類型、套用範本,只針對該 PR 執行代理,再透過 gh CLI 把結果回覆到同一個 PR,不需輪詢,也不需額外監控腳本。

如何連結

「事件掛鉤」屬於「自動化」系列。最直接相關的概念包括:「無模型任務」、「事件驅動代理」、「代理執行環境」、「個人作業系統」。這些連結描述教學關係,不取代來源證據。

來源證據

  • route:GET:/api/webhooks — 此基準關聯未納入核准的核心原始碼投影驗證範圍,不能單獨作為已驗證程式行為的依據;上文另依釘選版本來源人工核對。

工作流程

  • 目前尚無第一輪工作流程對應;此概念仍透過文章與來源證據出現在知識庫圖譜中。

相關文章

相關筆記