mcpField
O
openclaw-ghsa-maintainer

openclaw-ghsa-maintainer

github.com/openclawセキュリティ393.3k665 回インストール今日更新
リポジトリ

openclaw-ghsa-maintainer について

OpenClaw GHSA Maintainerは、openclawリポジトリのGitHubセキュリティアドバイザリを扱うスキルです。アドバイザリの確認、安全な更新準備、公開前後の検証を支援します。

主な機能

  1. 01アドバイザリとnpmバージョンの取得
  2. 02プライベートフォークのPR確認
  3. 03MarkdownとJSONペイロードの準備
  4. 04アドバイザリPATCH操作の順序管理
  5. 05公開状態と説明文の検証

活用シーン

  1. 01リポジトリのセキュリティアドバイザリを確認
  2. 02アドバイザリ更新ペイロードを準備
  3. 03公開前の条件を確認
  4. 04アドバイザリの公開結果を検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/openclaw/openclaw --skill openclaw-ghsa-maintainer

インストール後、Claude Code で/openclaw-ghsa-maintainerを入力して読み込まれたか確認します。

詳細

OpenClaw GHSA メンテナー

このスキルは、リポジトリのセキュリティアドバイザリーワークフロー専用です。一般的なリリース作業には release-openclaw-maintainer を使用してください。

アドバイザリーのガードレールを守る

  • リポジトリアドバイザリーを確認または公開する前に、SECURITY.md を読んでください。
  • 公開操作を行う前に、許可を求めてください。
  • このスキルは GHSA 専用として扱ってください。安定版またはベータ版のリリース作業には使用しないでください。

アドバイザリーの状態を取得して確認する

現在のアドバイザリーと、公開されている最新の npm バージョンを取得します。

gh api /repos/openclaw/openclaw/security-advisories/<GHSA>
npm view openclaw version --userconfig "$(mktemp)"

パッチを適用する前に、取得結果を使ってアドバイザリーの状態、リンクされたプライベートフォーク、脆弱性ペイロードの形式を確認してください。

プライベートフォークの PR がクローズされていることを確認する

公開する前に、アドバイザリーのプライベートフォークにオープンな PR がないことを確認します。

fork=$(gh api /repos/openclaw/openclaw/security-advisories/<GHSA> | jq -r .private_fork.full_name)
gh pr list -R "$fork" --state open

公開する前に、PR の一覧が空でなければなりません。

アドバイザリーの Markdown と JSON を安全に準備する

  • アドバイザリーの Markdown はヒアドキュメントを使って一時ファイルに書き込みます。エスケープされた \n 文字列は使用しないでください。
  • PATCH ペイロードの JSON は、手作業でエスケープしたシェル JSON ではなく jq で作成します。

使用例:

cat > /tmp/ghsa.desc.md <<'EOF'
<markdown description>
EOF

jq -n --rawfile desc /tmp/ghsa.desc.md \
  '{summary,severity,description:$desc,vulnerabilities:[...]}' \
  > /tmp/ghsa.patch.json

正しい順序で PATCH 呼び出しを適用する

  • 同じ PATCH 呼び出しで severity と cvss_vector_string を設定しないでください。
  • アドバイザリーで両方のフィールドが必要な場合は、別々に呼び出してください。
  • 公開するには、アドバイザリーに PATCH を行い、"state":"published" を設定します。独立した /publish エンドポイントはありません。

使用例:

gh api -X PATCH /repos/openclaw/openclaw/security-advisories/<GHSA> \
  --input /tmp/ghsa.patch.json

公開して成功を確認する

公開後、アドバイザリーを再取得して、次の点を確認します。

  • state=published
  • published_at が設定されている
  • 説明にエスケープされたリテラルの \\n が含まれていない

確認例:

gh api /repos/openclaw/openclaw/security-advisories/<GHSA>
jq -r .description < /tmp/ghsa.refetch.json | rg '\\\\n'

よくある GHSA の落とし穴

  • 必須フィールドが不足している場合、またはプライベートフォークにオープンな PR が残っている場合、公開は HTTP 422 で失敗します。
  • Markdown をエスケープされた改行文字列で組み立てると、シェル上では正しく見えるペイロードでも、実際には誤っていることがあります。
  • アドバイザリーの PATCH の順序は重要です。GHSA API の制約で必要な場合は、フィールドの更新を分けてください。
  • 公開されるハードニング/非公開コメントや下書きテキストには、生のコミットハッシュ、PR のタイトルや番号、修正メカニズムの要約を含めないでください。修正済みバージョンのフィールドか、リリースに関する記述のみを使用してください。SHA、PR、実装に関するメモは内部証跡に残してください。

コメント