AIREITER

Factory Automations 評測:Slack、GitHub 與 Webhook

最近更新: 2026-09-30 19:01:14

Factory Automations 可以透過排程、Slack 頻道中的頂層訊息、GitHub 事件,或外部 HTTP 請求啟動 Droid 工作階段。Webhook 觸發目前仍屬 Private Preview;排程則採固定 UTC 時間,不會隨夏令時間自動調整。它適合進行範圍明確的試行,但還不是可以直接全面投入正式環境的萬用方案。

Factory Automations 文件展示觸發類型與設定選項

Factory Automations 實際上會執行什麼

每個自動化流程都由觸發條件、操作指示、執行身分與執行目標組成(Factory 文件)。

觸發方式什麼情況會啟動主要執行細節
排程自然語言頻率或五欄位 cron在指定電腦或執行目標上執行;受管理電腦支援 10 個自動化流程,其中 5 個可設定為每分鐘執行
Slack符合條件的頻道頂層訊息在原始訊息的討論串中回覆
GitHubPull request、留言、推送、標籤、檢查結果或排程完成設定並合併後,在 GitHub Actions 中執行
Webhook其他服務送出的 HTTP POSTDroid Computer 或執行範本;Private Preview

自動化流程可以設為私人使用,也可以與組織共用。工作階段的隱私設定則是另一層控制,決定誰能開啟由這些執行結果建立的工作階段。

不同觸發方式,代表不同的維運模式

排程執行:最適合拿來起步

排程可以接受「every Monday at 9am PST」這類自然語言,也能使用 0 9 * * 1 這種 cron 表達式。Factory 會預覽實際執行時間,但 cron 採用 UTC。若輸入明確的時區,系統會將時間換算成固定的 UTC 排程,不會隨夏令時間自動調整(Factory 文件)。

適合一開始嘗試的工作,包括每日狀態摘要、依賴套件稽核、過期文件檢查,或只負責整理證據、不直接合併程式碼的 PR 審查員。

Slack 訊息:好用,但只處理頂層訊號

Slack 自動化會在可存取頻道中出現符合條件的頂層訊息時啟動。討論串中的回覆不會獨立觸發執行。篩選條件可以依頻道模式、寄件者類型、關鍵字、排除關鍵字或排除寄件者進一步限制。

執行結果會回覆在觸發訊息的討論串中。如果有多個自動化流程同時符合條件,只有第一個會在該討論串回覆,其餘流程則會發布獨立訊息,並附上原始訊息的連結。Factory 文件也說明了包括私人頻道存取規則在內的相關行為(Factory 文件)。這很適合用在受控的事故處理頻道,但不適合依賴每一則後續回覆的工作流程。

GitHub 事件:設定閘門清楚,完成後威力十足

自訂 GitHub 自動化可以監聽 Pull request、推送、留言、標籤變更、檢查完成或排程事件。它們會在 GitHub Actions 中執行,而建立流程時,Factory 會在每個選定的儲存庫開啟一個設定用 pull request。

這個設定用 pull request 必須先合併,自動化工作流程才會啟用。在工作流程進入預設分支之前啟動的執行都會失敗;在此之前,自動化也無法發布留言、推送提交或開啟 pull request。如果週期性工作本來就由儲存庫事件觸發,且正常的 pull-request 審查仍是交付前的最後一道關卡,GitHub 會是最有力的選擇。

Webhook:功能到位,但可用性仍有限

Factory 將 Webhook 自動化列為 Private Preview,並要求組織聯絡支援團隊才能啟用。Webhook 會由外部 HTTP POST 啟動工作,但不能在使用者的本機執行;它需要 Droid Computer 或執行範本。

Factory 會提供 Webhook URL、X-Webhook-Secret 標頭選項,以及讓無法設定標頭的發送端使用的 URL 格式。文件建議優先使用標頭,因為 URL 中的密鑰可能出現在記錄檔裡;密鑰只會顯示一次,而輪換密鑰後,舊值就會失效(Factory Webhook 文件)。

同一份文件列出 200 KiB 的請求本文上限、每分鐘接受 60 個請求、保存 30 天的傳遞記錄、相同本文 10 分鐘內的去重視窗,以及每小時最多執行 10 次的限制。這些控制讓 Webhook 足以用來測試警報回應,但只要正式環境需要穩定且可預期的存取,Private Preview 狀態就仍是阻礙。

決定自動化是否安全的控制項

排程、Slack 與 Webhook 自動化可以使用目前使用者身分,或共用服務帳戶執行。執行身分會影響連接器存取權、計費與 Slack 顯示的身分;執行目標規則則詳列於 Factory 文件。

讓操作指示保持精準,使用可以撤銷的憑證,選擇專用執行目標,並把部署與合併權限留在現有的儲存庫控制機制中。Factory 在 Slack Marketplace 上的頁面也明確提醒,這個應用程式可能出錯,使用者應再次確認程式碼與回應。

有使用者指出幾項監督上的缺口,包括沒有 Linux 桌面應用程式,也沒有跨電腦同步功能(@JoelDeTeves 在 X 的貼文);如果團隊預期能離開桌面環境後,仍然監督長時間執行的自動化工作,這些限制就值得納入考量。

Factory Automations 與簡單 GitHub Action 的差異

需求Factory Automations簡單 GitHub Action
對儲存庫執行一段操作指示原生 Droid 工作階段與執行目標團隊自行提供代理程式執行環境與工作流程程式碼
排程工作自然語言或 cron,但有 UTC 限制GitHub cron 與自訂邏輯
Slack 觸發支援篩選與討論串回覆的頂層訊息自行處理 Slack 應用程式或 Webhook 串接
GitHub 事件引導式設定 PR 與 GitHub Actions 執行直接撰寫工作流程檔案
Webhook內建,但屬於 Private Preview自行建立端點、驗證、重試機制與工作程序
審查界線可以先準備工作,交由人工審查取決於工作流程權限

如果工作只是確定性高的 API 串接,例如每日產生 PR 摘要,使用 GitHub Action 就好。若週期性工作需要調查、掌握儲存庫脈絡、提出程式碼變更,或產出人類易讀的工作階段,才適合選擇 Factory。不要只是為了省下幾行短程式,就改用代理程式平台。

讓自動化逐步取得更多權限的低風險試行方案

  1. 選擇一項輸入範圍明確的週期性工作,例如審查新 pull request 或檢查產生的檔案。
  2. 先從排程自動化開始,不要一開始就用 Webhook;這樣可以避開預覽功能的存取限制,也更容易檢查執行頻率。
  3. 讓輸出結果成為報告或 pull request,而不是部署或合併。
  4. 記錄失敗的執行、被阻擋的工作、變更過的檔案,以及人工修正內容;只有已接受的 pull request,還不足以作為判斷依據。
  5. 一次只擴大一個維度:另一種工作類型、另一個儲存庫,或另一種觸發方式。

Factory 的工作流程指南建議,先重現原始失敗,再於乾淨環境測試修正,最後檢查相鄰案例,確認無誤後才保留成可重複使用的指示。這也應該成為 Automation 試行時採用的標準。

常見問題

Factory Automations 支援 Webhook 嗎?

支援,但 Webhook 觸發目前屬於 Private Preview,可能需要組織層級的啟用權限。執行時需要 Droid Computer 或執行範本。詳情請參閱上方的 Webhook 章節。

Slack 討論串中的回覆會觸發自動化嗎?

不會。只有符合條件的頂層訊息會啟動執行;請參閱 Slack 訊息。

排程會跟著夏令時間調整嗎?

不會。Factory 儲存的是固定的 UTC 排程;當所在地的夏令時間規則變更時,請重新檢查排程。請參閱排程執行。

GitHub 自動化會在設定用 pull request 合併前執行嗎?

不會。設定用 pull request 必須先進入預設分支;更早啟動的執行會失敗。請參閱GitHub 事件。

Webhook 傳遞重複時會怎樣?

如果 10 分鐘內收到相同本文,系統會將其記錄為 Deduped,不會再次啟動執行。Factory 也會記錄被篩除、達到速率上限、略過及失敗的傳遞。

別忘了它的取捨

如果輸出可以留在 pull-request 審查流程內,就可以優先試行排程或 GitHub 觸發的工作。Slack 在團隊採用頂層訊息規範時相當實用;Webhook 雖然已具備足夠細節可供測試,但由於仍是 Private Preview,現階段不應成為正式事故處理系統的基礎。