openclaw-ghsa-maintainer について
OpenClaw GHSA Maintainerは、openclawリポジトリのGitHubセキュリティアドバイザリを扱うスキルです。アドバイザリの確認、安全な更新準備、公開前後の検証を支援します。
主な機能
- 01アドバイザリとnpmバージョンの取得
- 02プライベートフォークのPR確認
- 03MarkdownとJSONペイロードの準備
- 04アドバイザリPATCH操作の順序管理
- 05公開状態と説明文の検証
活用シーン
- 01リポジトリのセキュリティアドバイザリを確認
- 02アドバイザリ更新ペイロードを準備
- 03公開前の条件を確認
- 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=publishedpublished_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、実装に関するメモは内部証跡に残してください。
コメント
Markdown 対応