CI の成否Discord へ、Incoming Webhook の最小権限で届ける手順です。リモート MacOpenClaw ゲートウェイ向けに、curl/npmopenclaw onboardDashboardWebhook の curl 検証を一列にします。関連:多端点ルーティングと CI 要約インストール排障LaunchAgent 健康診断ヘルプ購入ホームはログイン不要で閲覧可。

① 環境前置と最小権限の原則

公式 curlnpm i -g openclaw@latest。SSH シェルと launchd のゲートウェイ同一 Node22.16+ または 24 LTS)に揃えます。openclaw doctorlaunchctl printPATH/プロキシ/CA を照合します。

最小権限:Discord は Webhook のみDISCORD_WEBHOOK_URL は env/シークレットのみ。URL 漏洩=第三者投稿になり得ます。

項目 推奨 避ける
Node 全経路で 24 LTS(または文書下限 22.16+) SSH と launchd で別バイナリ
秘密 plist・env ファイル(600)・CI Secret Git・スクリーンショット・チャット貼り付け
観測 ゲートウェイログのローテと容量監視 デバッグでルート領域を埋める

② Discord Webhook の作成とゲートウェイ側バインド

openclaw onboard で設定を書き、Dashboard(多くは 127.0.0.1)で待受を確認します。

Discord:チャンネル設定の Webhooks で URL を作成(https://discord.com/api/webhooks/ 始まり)。ゲートウェイの通知設定または中継で DISCORD_WEBHOOK_URL を渡し、変更後 launchctl kickstart -k で再読み込みします。

手順 作業 合格条件
1 onboard 後に Dashboard が開く 本機 curl でルートまたは /health が期待どおり
2 Webhook を環境変数に入れてサービス再起動 launchctl print に変数が見える
3 下記 curl で疎通 HTTP 204 かつチャンネルに表示
export WH='https://discord.com/api/webhooks/ID/TOKEN' curl -sS -o /dev/null -w "%{http_code}\n" -X POST "$WH" \ -H "Content-Type: application/json" \ -d '{"content":"OpenClaw ゲートウェイ疎通 — リモート Mac"}'

届かない:URL 欠け・環境取り違え・contentembeds 同時空・文字数超過を確認します。

③ CI ビルド要約の payload ひな形とフィールド対応

パイプライン末尾で JSON を組み、embed に載せると一覧性が上がります。

表示名 取得元の例 Discord 側
リポジトリ GITHUB_REPOSITORY embeds[0].fields[]
ブランチ/タグ GITHUB_REF_NAME field または footer
コミット git rev-parse --short HEAD field+コミット URL
結果・所要 終了コードと経過秒 color(緑/赤)と description
# 最小 embed 例(CI では jq や heredoc で変数展開) read -r -d '' PAYLOAD <<'EOF' { "embeds": [{ "title": "CI ビルド要約", "description": "main @ abc1234 — **success** — 3m12s", "color": 3066993 }] } EOF curl -sS -X POST "$DISCORD_WEBHOOK_URL" -H "Content-Type: application/json" -d "$PAYLOAD"

ゲートウェイ経由なら内製 API に POST し、request_id で追跡します。

④ 署名・レート制限・失敗時の再試行パラメータ

Discord 直 POST は URL が鍵のため署名は補助的。社内 API を挟む場合のみ HMAC を検討。ログに生 URL を出さない。

429Retry-After 遵守、通知の束ねとジッタ。タイムアウト--connect-timeout 5 --max-time 20、再試行 最大 3 回・2s/4s/8s。Runner とゲートウェイの NO_PROXY を一致させます。

⑤ よくあるエラー FAQ(403/429/タイムアウト)

HTTP 403 Forbidden

Webhook 削除・URL 欠損が多い。作り直し、Secret 更新、投稿権限を確認。

HTTP 429 Too Many Requests

頻度削減・embed 統合・Retry-After 遵守。

タイムアウトや exit 56

プロキシ/DNS/FW を疑い、同一環境で discord.com へ短い curl で再現します。

まとめNode 統一onboard/DashboardWebhook 最小権限embed ひな形で OpenClaw と CI 通知を最短結線。リモート Mac で常時稼働にするとローカル切断リスクを下げられます。ヘルプホームもどうぞ。

Discord × OpenClaw

ゲートウェイと CI 通知をリモート Mac で常駐

ヘルプセンター購入ページホームはログイン不要。OpenClaw 関連は 技術ブログ一覧 から。

複数リージョン
SSH
柔軟な契約
サポート