オープンクロー就地が CircleCI Webhook を検証し lockfile 漂移を走査、要約を HTTP で戻す手順です。Node 22.16+/24、
openclaw doctor、ループバック+トンネルが前提です。ゲートウェイはパイプライン入口で身元とペイロードを束ねる層です。GitHub Checks 版併読。
つまずきの整理
1. 広域無認証公開はシークレット流出のリスク。2. プロキシの JSON 整形で署名不一致。3. 共有 clone で lockfile 差分が混線します。
判断表:ゲートウェイ・認証・作業領域・戻し
| 観点 | 推奨 | 避ける |
|---|---|---|
| 待受 | 127.0.0.1+トンネル/プロキシ | 広域直公開 |
| 身元 | CircleCI シークレット署名+冪等キー | クエリだけの合言葉 |
| lockfile | パイプライン単位の隔離 clone | 共有ワークツリー |
| 要約 | POST+指数バックオフ | 失敗放置 |
前置条件(Node・openclaw CLI・トークンと最小権限)
24 系列または22.16+をシェルと LaunchAgent の PATH で揃え、openclaw CLI を入れ openclaw doctor で TLS を点検します。Dashboard と CircleCI シークレットはキーチェーン等に閉じ、repo トークンは読み取り中心、要約 POST 先のみ書き込みに限定します。LaunchAgent でヘルス監視します。
CircleCI Webhook と検証の設定手順
設定で Webhook を作り workflow-completed 等に限定し、共有シークレットで生ボディを HMAC 検証します。URL は ssh -R や Ingress で 127.0.0.1 待受へ中継し JSON 改変を避けます。パイプライン番号・リビジョン・成否を抜き、delivery id で重複を抑止します。
チェックリスト
- イベントを完了系のみに限定した
- シークレットを UI とプロセスで一致させた
- プロキシがボディを改変しないことを確認した
OpenClaw スキル/スクリプト雛形(lockfile 解析・要約)
イベントごとに隔離領域で浅 clone し package-lock.json 等へ git diff で漂移を見ます。サマリと成否を JSON で POST します。npm ci は本流へ寄せゲートウェイは検査のみが安全です。
git fetch origin "$REV" --depth=1 && git checkout -q FETCH_HEAD
git diff --exit-code -- package-lock.json || echo drift
jq -n --arg t "$SUMMARY" '{text:$t,ok:$OK}'|curl -sS -H "Content-Type: application/json" -d @- -X POST "$URL"
署名/タイムアウト/権限の FAQ
署名が一致しない
シークレット不一致とプロキシ改変を疑い、生バイトで検証します。
ハンドラがタイムアウトする
clone 深度とプロキシを見直し、検査のみにするかキューへ載せ、バックオフで再送します。
要約 POST が 403 や 401
トークンスコープと IP 制限を確認し最小権限だけをプロセスへ渡します。