2026 OpenClaw · OpenAPI · リモート Mac

2026 OpenClaw フロント実戦:
リモート Mac で REST/OpenAPI 契約 diff とスモーク curl 一括を連係(失敗要約)

2026.03.31 フロント/リリース責任者向け 約 9 分で読めます

契約ドリフト手作業 curlは再現性を壊しがちです。リモート MacOpenAPIdiffcurl 一括を固定パスへ、OpenClaw失敗要約にすればCIが安定します。プリフライトWeb スモークと併用してください。

01 痛みと成果物の約束

典型は三つです。契約の発見が遅いスモークが断片化してトークンや URL が人依存、失敗が散らばると判断が遅れる、です。

artifacts/api/<buildId>/ に基線・現行・diff・集計・meta.json を置き、終了コード 012 を固定します。OpenClaw はエクスポート→diff→curl→要約の順、通知は buildId で冪等にします。

02 OpenClaw インストールとツール呼び出し

node -v とロックを CI に揃え、diff CLI は devDependencies へ。実行ユーザーは .env.ci と内網へ届く非対話シェルにし、証明書はキーチェーンか SSL_CERT_FILE。初回はクリーンで手動し、artifacts/.../logs/ を確認してから自動化します。

cd /path/to/repo && npm ci && npm install -D @pb33f/openapi-changes
# チーム合意の oasdiff / openapi-diff 等に差し替え可
openclaw run --workspace /path/to/repo --env-file .env.ci \
  --steps export-openapi,openapi-diff,smoke-curl,notify-summary

03 契約 diff とコマンド雛形

基線はマージ済み、現行はゲートウェイ等から。同一フォーマッタ後に比較し、破壊的件数でゲート、報告は build 配下へ。

mkdir -p artifacts/api/$BUILD_ID
curl -sS -o artifacts/api/$BUILD_ID/openapi.current.json "$OPENAPI_URL"
cp contracts/openapi.baseline.yaml artifacts/api/$BUILD_ID/
npx oasdiff breaking contracts/openapi.baseline.yaml \
  artifacts/api/$BUILD_ID/openapi.current.json > artifacts/api/$BUILD_ID/diff.txt

04 スモーク curl 一括

一覧でケース名・パスを読み curl -w '%{http_code}' でコードだけ溜め、本文は短く切って JSON 化。トークンは env、プロキシは HTTPS_PROXYNO_PROXY をタスクに渡します。

BASE_URL="${BASE_URL}"
while read -r name ep; do
  code=$(curl -sS -o /dev/null -w "%{http_code}" -H "Authorization: Bearer $API_TOKEN" \
    --max-time 15 "$BASE_URL$ep" || echo err)
  echo "{\"case\":\"$name\",\"code\":\"$code\"}" >> artifacts/api/$BUILD_ID/curl.ndjson
done < scripts/smoke-endpoints.tsv

05 方針対照表

気づきの位置 コストと運用 向く場面
diff のみマージ前に破壊を止める基線レビューが要る契約駆動
curl のみ死活の確認一覧とトークン速い回帰
diff+curl二系統の信号スクリプト化しやすいプリリリース・固定機

06 失敗要約の生成と CI 直列

diff.txt と curl 集計から summary.md を生成し通知へ。プリフライトの後・Playwrightより前が定石。監査artifacts を揃えると閲覧が楽です。

07 よくある失敗 FAQ

フォーマット差だけで diff が赤い:先に同一整形を通してから比較してください。

curl が一斉にタイムアウト:DNS・証明書・NO_PROXY を順に切り分けます。

通知が二重:キーに buildId と段階名を含めます。

E2E との役割分担:curl は軽い生存確認に留め、深い挙動は E2E へ渡します。

引用メモ:基線 contracts/openapi.baseline.yamlmeta.json に版と SHA。工件は artifacts/api/<buildId>+logs。入口は scripts/ci-api-smoke.sh、終了コード表を README に。

固定 Mac で API ゲート

diff と curl を同じパスに残し要約すると説明が楽です。buy.htmlログイン不要ヘルプ料金 も閲覧のみ。

レンタルへ(ログイン不要)