Zulip bot の準備
個人設定 → ボットで投稿用ボットを作り、メール+ API キーを取得(履歴に残さない)。ストリーム投稿が許可されていることを確認します。
【図①】 ボット作成・権限・キー直前(マスク)。
- 手順 1.
#builds等を用意しボットを購読可にする。 - 手順 2.
0440でbot_emailとapi_keyをゲートウェイのみ読めるパスへ(IM トークンローテ と同型)。 - 手順 3. 疎通:
curl -u "$(cat bot_email):$(cat api_key)" $ZULIP/api/v1/messagesにtype=stream等を urlencode で付与しresult: successを確認。
ゲートウェイの出站ホワイトリスト
ノードから Zulip へ直出さず、ゲートウェイ→組織 FQDN:443 のみ許可。プロキシは HTTPS_PROXY で curl 先検証(ゲートウェイ FAQ)。
【図②】 SG/FW のゲートウェイ→Zulip:443 ルール。
- 手順 1. ビルド Mac の外向き
443は閉じ、成果物の出口は別経路。 - 手順 2. VIP 切替時も更新するのはゲートウェイ側のみ(フェイルオーバー)。
メッセージテンプレート(多ノード要約形式)
ゲートウェイで to/topic/Markdown content を固定し、失敗は一行+ログ URLに抑えます。
【図③】 モバイルで mesh_node_id 行が読めること。
| キー | 例 | 用途 |
|---|---|---|
to | builds | ストリーム名 |
topic | main @ abc1234 | ブランチ+短 SHA |
| 本文 | workflow+絵文字 | 状態の即判別 |
| フッタ | mesh_node_id 等 | どの Mac か |
失敗再試行と冪等キー
ヘルスプローブとアラートの統合
FAQ
- ストリームに出ず
400になる to・購読権・非公開ストリーム方針。エラー JSON はマスクしてログへ。- 成功と失敗で二重通知される
provider_run_idをデバウンスし最終状態のみ、またはトピック固定+スレッド返信に統一。
まとめ・次の一手(公開ページのみ)
ゲートウェイ集約+冪等+プローブ統合で多ノード共有リモート Macの通知経路を増やさない。購入・ヘルプ・OpenClaw 特集・多ノード協働(ログイン不要)。