action-remediate について
action-remediateは、action-auditの結果をもとにGitHub Actionsの問題を修正するための慎重な手順書です。ワークフロー関連の変更を`.github/`内に限定し、承認と差分確認を経てドラフトPRを作成します。
主な機能
- 01変更を伴うAPI呼び出し前の確認
- 02`.github/`内のファイルのみ編集
- 03Actionのバージョン固定や置換
- 04引き継ぎ前の差分確認
- 05ドラフトPRの作成
活用シーン
- 01監査後のAction参照先の更新
- 02複数リポジトリ向け修正の準備と確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ bitwarden/ ai-plugins --skill action-remediateインストール後、Claude Code で/action-remediateを入力して読み込まれたか確認します。
詳細
ルール
- 確認なしに API を変更する呼び出しを行わないでください。
gh apiの GET リクエストは自由に実行できます。-X POST、-X PUT、-X PATCH、または-X DELETEを使う呼び出しは、実行前にユーザーに提示して承認を得る必要があります。 - 強制プッシュ、ブランチの削除、リポジトリの削除は絶対に行わないでください。
- 変更するファイルは
.github/以下に限ります。 ワークフローファイル以外のアプリケーションコード、スクリプト、設定には手を加えないでください。 - コミットに進む前に、差分を提示して確認を得てください。
- すべての PR はドラフトとして作成してください。
- 不確かな点を明示してください。 調査結果が曖昧な場合や、修正によってワークフローが壊れる可能性がある場合は、推測せずに作業を止めて確認してください。
ステップ 1:監査結果を確認する
作業を始める前に、対応すべき監査結果がユーザーにあることを確認します。監査結果は、以前実行した action-audit スキルによるものである必要があります。以下を確認してください。
- 修正対象のリポジトリ(すべて、一部、または特定のリポジトリ)
- 修正方法:
- main に固定 — 内部の
bitwarden/アクションの場合:参照先を@mainに変更します - ピン留めを更新 — 外部アクションの場合:検証済みの 40 文字の SHA とインラインのバージョンコメントに更新します
- 置き換え — 別のアクションに丸ごと置き換えます
- main に固定 — 内部の
- 対象の SHA、置き換えるアクション、または
@mainで修正できることの確認
これらの点が不明確な場合は、続行する前にユーザーに確認してください。
ステップ 2:リポジトリごとに修正を適用する
選択した各リポジトリについて、次の手順を実行します。
-
リポジトリのクローン先であるベースディレクトリがまだ分からない場合は、ユーザーに確認します。
<base-dir>/<repo>にローカルクローンがあるか確認してください。ない場合はユーザーに伝え、そのリポジトリをスキップします。 -
修正用ブランチを作成します。
git checkout -b fix/action-remediation-<action-name-slug> -
修正方法に応じて、影響を受ける各ファイルに修正を適用します。
- main に固定(内部の
bitwarden/アクション): 参照先を@mainに置き換えます。例:uses: bitwarden/gh-actions/action@v1→uses: bitwarden/gh-actions/action@main。SHA の解決は不要です。 - ピン留めを更新(外部アクション):
uses:の行をuses: <action>@<sha> # <original-ref>に置き換えます。 - 置き換え: 適用する前に、置き換え先のアクションが Bitwarden の承認済みアクションリスト(
bitwarden/workflow-linter)に掲載されていることを確認します。その後、uses: <old-action>@<ref>をuses: <new-action>@<sha> # <tag>に置き換えます。
- main に固定(内部の
-
このリポジトリの変更内容を
git diffで提示し、続行する前に確認を得ます。
ステップ 3:コミット、プッシュ、PR の作成
ステージング、コミット、プッシュのコマンドは実行しないでください。各リポジトリについて、ユーザーが手動で実行するための提案として、以下のブロックを提示してください。
git add .github/
git commit -m "Remediate <action-name> action usage"
git push -u origin fix/action-remediation-<action-name-slug>
ユーザーがプッシュを確認したら、ドラフト PR を作成します。
gh pr create \
--title "Remediate <action-name> action usage" \
--body "$(cat <<'EOF'
## Summary
Remediates usage of `<action-name>` across this repository.
**Action taken:** <pin updated to `<sha>` / replaced with `<new-action>`>
**Reason:** <compromised action / deprecated action / unpinned reference>
EOF
)" \
--draft
ステップ 4:最終報告
実行したすべての作業を要約して出力します。
| リポジトリ | 変更したファイル | PR 作成 | 備考 |
|---|---|---|---|
| ... | ... | ... | ... |
コード検索結果が反映されるまで時間がかかる場合があることをユーザーに伝えてください。セキュリティインシデントの場合は、手動で確認して、見落としたリポジトリがないことを確かめるよう促してください。