OpenClaw 實戰 · Linear · 多節點 Mesh

2026 OpenClaw MeshMac 實戰:對接 Linear Webhook 觸發共享建置狀態廣播與摘要回傳的最小可複現步驟

2026.04.10 Meshmac 約 7~9 分鐘閱讀

團隊在 Linear 對齊狀態時,常要「卡片一動,MeshMac 共享池即排程建置,頻道單則廣播,必要時兩三行摘要回寫議題」。做法是網關優先:單一 OpenClaw 驗簽與入佇列,各節點共用腳本;加節點只加算力,不必輪替 Webhook 密鑰。以下為編號步驟與多節點內鏈。

網關安裝與健康檢查

網關收 Linear POST;換機或升級 Xcode 不必改 Linear URL。工作者以 mesh_node_id 標示,不各自暴露公網。角色與安裝見 多節點部署指南;對 Linear API 與聊天 Webhook 的出站宜由網關統一。

  1. 步驟 1. 在網關主機安裝 OpenClaw,設定 OPENCLAW_CONFIG_ROOT,以 LaunchDaemon(或等效常駐)執行,確保重開機後仍能收 Linear 事件。
  2. 步驟 2. 將準備貼到 Linear 的 https://… 主機名對應到該網關;Webhook 路徑單獨做反向代理 location,並設定合理本文大小上限(TLS 邊界可參考 Nginx/Caddy 決策矩陣)。
  3. 步驟 3.openclaw doctor、日誌抽樣與 GET /health(或與 技能預熱與健康探針合併)驗證就緒,讓負載均衡在釋出版本時能排空不健康實例。
  4. 步驟 4. 記錄 correlation_id、路由與入佇列延遲;以 網關限流與工作階段併發 為 Webhook 留預算。廣播可對齊 共享建置通知OpenClaw 索引

多儲存庫共用網關時可收斂 專案設定與日誌

Linear 簽名驗證

先驗簽、再解析。Linear 簽的是完整原始本文;先 parse 再 stringify 常在負載下弄壞 HMAC。

  1. 步驟 1. 於 Linear 建立 Webhook,複製一次性簽章密鑰,依 密鑰與最小權限 寫入僅守護行程可讀檔(例如 /etc/openclaw/secrets.d/linear/webhook.secret,權限 0440)。
  2. 步驟 2. 緩衝原始位元組,依文件算 HMAC-SHA256,與 Linear-Signature 常數時間比對;有時間戳防重放則收緊視窗。
  3. 步驟 3. 簽名錯誤回 401,日誌只留去識別後的中繼資料(與 Teams 建置狀態 Webhook 相同衛生習慣)。
  4. 步驟 4. 僅在入佇列已持久化後回 200,以免 Linear 重試放大重複任務;排序與交接細節見 部署與任務佇列同步

與共享建置腳本串聯

已驗簽載荷正規化為池內任一台 Mac 可跑的任務:儲存庫、ref、議題 id、觸發者、標籤與 idempotency_key(取自 Linear 傳遞中繼)。節點 A 忙時由 B 跑同一進入點,對外仍單一 Webhook。

  1. 步驟 1. 白名單應觸發建置的狀態(例如特定欄位或 ci 標籤);其餘事件快速 200 略過。
  2. 步驟 2. 將任務推入共享佇列(Redis、RabbitMQ 或 OpenClaw 任務,細節見 任務佇列重試步驟),欄位至少含 linear_issue_id、團隊、請求者與冪等鍵。
  3. 步驟 3. 全池使用版本鎖定的同一進入點(技能版本鎖與環境樣板);若 monorepo 並行建置,必要時搭配 worktree 與 lockfile 矩陣
  4. 步驟 4. 完成後發事件,附 mesh_node_id、耗時、日誌摘錄、產物連結;網關統一廣播到聊天(版型見 SlackGoogle ChatTeams)。
  5. 步驟 5.摘要回 Linear 時,網關以具留言權的 API 金鑰呼叫 GraphQL(輪替:權杖輪替):圖示、短 SHA、節點、流水線連結與兩行 OpenClaw 摘要。

Linear 亦觸發 GHA 時,與 Runner 路由 分車道,避免與共享 Mac 互搶磁碟。

失敗重試與通知

節點多則失敗型態多;維持單一通知故事,入站(Linear→你)與出站(你→聊天/Linear API)分開治理。

  1. 步驟 1. 驗簽通過後盡快在持久化入佇列後回應;讓 Linear 邊緣依其政策重試。處理逾時須落在 網關併發預算 內。
  2. 步驟 2. 對聊天 Webhook:4295xx 使用指數退避加抖動、次數上限,並以 idempotency_key + state 在約 24~72 小時窗內去重(可比照 Teams 文內 dedupe 做法)。
  3. 步驟 3. 對 Linear GraphQL:記錄 errors[],遇限速退避;遇 401 勿盲目重試,先修正金鑰與範圍。
  4. 步驟 4. 若聊天與 Linear 更新皆失敗,改走 IM 告警;網關層高可用可對照 負載均衡與故障轉移

FAQ

本機 curl 驗簽通過,上線卻失敗?
框架實際收到的位元組常與手測不同:對照預發 raw body、關閉邊緣 gzip 重編碼、確認 WAF 未剥標頭;可用已遮罩存取日誌片段重算。
拖曳卡片很快時會重複排程建置?
對狀態轉移防抖或要求「可建置」標籤;冪等鍵組合議題 id、欄位 id 與短時間桶。
建置綠燈但 Linear 留言從未出現?
查 API 金鑰留言權、issueId 與 GraphQL 變數一致,並看 schema 是否隨 API 升級漂移。
真的只能讓「一台/一層」對 Linear 說話?
建置節點可替換、少持密;網關持驗簽與 API/聊天秘密,加節點才是容量題而非資安審查。
Mesh 要訣:單一對外 Webhook、raw body 驗簽、持久化後才 200、出站廣播+選用 GraphQL 摘要、429/5xx 有界重試。

下一步(僅公開頁)

單一網關終止 Linear 與對外通知。免登入:首頁購買/套餐幫助中心部落格OpenClaw 索引。擴多節點池請先在套餐頁對齊併發與地域,再分離網關與建置機。

多節點 · Linear · 免登入

擴 Mesh 只加算力,不必重拉 Linear Webhook

公開方案頁選節點與地域,幫助中心完成 SSH/VNC;部落格與 OpenClaw 索引補佇列與限流。下列皆公開頁

免登入・購買/套餐