Agent SkillsでDependabot PRのトリアージを効率化する
Dependabotから届く大量のプルリクエスト、そのすべてを丁寧に確認するのは骨が折れる作業です。
本記事では、Claude CodeでAgent Skillsを活用しDependabot PRのトリアージを支援する仕組みとその実装方法を紹介します。
背景と狙い
Dependabot PRを安全にマージするには、最低限以下の2点を確認する必要があります。
- 更新先バージョンに新しい脆弱性が含まれていないか
- 脆弱性につながる破壊的変更が含まれていないか
これらを毎回手動で確認するのはコストが高いため、機械的に判断できる部分をAIに任せ、人間は重要な判断に集中できる状態を目指します。
なぜAgent Skillsか
確認作業とセッションのコンテキストを共有する必要はないため、当初はClaude CodeのSubagentsにすることを検討しました。
しかし、最近Codexでサポートされるなど他のツールでもAgent Skillsのサポートが広がっていることから、様々なツールで使えるようAgent Skillsとして実装しました。
※ 動作の確認はClaude CodeとCodex CLIで行いました。
作成したSKILL.mdは以下で公開しています。
https://github.com/ysmazda/checking-dependabot-prs
自動化のワークフロー
この仕組みではトリアージの支援目的で以下の3ステップをAgent Skillsによって自動化しています。
1. OSV (Open Source Vulnerability) による確認
Dependabotの更新先のバージョンに脆弱性が報告されていないかをOSV.devのAPIを利用してチェックします。
近年、新しく公開されたバージョンに悪意のあるコードが仕込まれる事例が多数報告されています。
このチェックにより、既知の脆弱性が含まれるバージョンを不運なタイミングで取り込んでしまうリスクの低減を狙っています。
ただしOSVに登録されていない脆弱性やサポートされていないエコシステムについてはスコープ外です。
Dependabotのcooldownの設定と組み合わせるとより安全性を高められるでしょう。
2. 破壊的変更(Breaking Changes)の抽出
パッケージのリリースノートやChangelogを読み込んで、破壊的変更の有無を確認します。
特に破壊的変更(設定のデフォルト値の変更など)が間接的に脆弱性につながる可能性の有無を確認のポイントとしています。
ただしChangelogの品質や記述粒度に強く依存するため、
- 破壊的変更が明示されていない
- 設定デフォルトの変更が記載されていない
といったケースでは検出できない可能性があります。
3. トリアージ用サマリの生成
収集した情報を元に、人間が判断しやすいようサマリを生成します。
| 項目 | 内容 |
|---|---|
| PR | PRのURL |
| 脆弱性チェック | OSV上での既知の脆弱性有無 |
| 破壊的変更チェック | Changelog等から抽出した影響箇所 |
| 判定 | 優先確認が必要、問題なくマージできそうなどの参考情報 |
実行例
以下はClaude Code上で実行した例です。
自動化の限界と前提
本ツールによって、トリアージ時に優先して見るべきPRと問題がなさそうなPRの仕分けが容易になりますが、あくまで支援の仕組みであり、以下の限界があることを理解して運用する必要があります。
- OSV以外の脆弱性情報源は見ていない
- Changelogに記載されない変更は検出できない
- LLMによる要約・抽出の誤りや漏れが起こりうる
そのため
- 最終的なマージ判断は人が行う
- セキュリティレビューの代替にはならない
という前提ではあります。
一方で、これまでほぼ内容を確認せずにDependabot PRをマージしていたということであれば、一段階の自動チェックを挟むだけでもリスク低減に役立つと思います。
まとめ
Claude CodeでAgent Skillsを動かすことで、Dependabot PRのトリアージを支援する仕組みを作成しました。
Agent Skillsという形で切り出しておくことで、他のエージェントツールへ移行しても利用できることが期待できます。
