Agent skill

checking-dependabot-prs

DependabotのPRをレビューの必要度の観点で検証する。「DependabotのPRを確認して」「Dependabotの更新は安全?」などの依頼時に使用する。

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/checking-dependabot-prs

SKILL.md

Dependabot PR Security Review

指定リポジトリのDependabot PRについてセキュリティ検証を行う。

Workflow

Progress:
- [ ] Step 1: PR一覧を取得
- [ ] Step 2: セキュリティ面を確認
- [ ] Step 3: 破壊的変更を確認
- [ ] Step 4: 結果を報告

Step 1: PR一覧を取得

bash
gh pr list --state open --repo OWNER/REPO --author "dependabot[bot]" --json number,title,url,createdAt

DependabotのPRが10件を超える場合はユーザーに確認件数を尋ねる。

Step 2: セキュリティ面を確認

以下の方法で更新対象パッケージの脆弱性を確認する:

curl -s -H "Content-Type: application/json" https://api.osv.dev/v1/query -d QUERY

OSVのQUERY例(エコシステムとパッケージ名を明示する):

bash
curl -s -H "Content-Type: application/json" https://api.osv.dev/v1/query -d '{
  "package": {
    "name": "PACKAGE_NAME",
    "ecosystem": "ECOSYSTEM"
  },
  "version": "X.Y.Z"
}'

エコシステムが不明な場合はユーザーに確認する。

Step 3: 破壊的変更を確認

3-1. バージョン番号から破壊的変更の可能性を判断

PRタイトルからバージョン番号を抽出し、セマンティックバージョニングに基づいて判断:

  • メジャーバージョンアップ (例: 1.x.x → 2.x.x): 破壊的変更の可能性が高い → 詳細確認必須
  • マイナーバージョンアップ (例: 1.1.x → 1.2.x): 機能追加が中心、破壊的変更の可能性は低い
  • パッチバージョンアップ (例: 1.1.1 → 1.1.2): バグ修正が中心、破壊的変更の可能性は極めて低い

3-2. PRの破壊的変更を確認

bash
gh pr view PR_NUMBER --repo OWNER/REPO --json body

Dependabotが生成するPR本文には以下の情報が含まれる:

  • Release notes(リリースノート)
  • Changelog(変更ログ)
  • Commits(コミット一覧)

PR本文を読み込んで破壊的変更が加えられていないかどうか確認する。

3-3. 差分の確認(必要に応じて)

メジャーバージョンアップの場合、実際の変更内容を確認:

bash
gh pr diff PR_NUMBER --repo OWNER/REPO

requirements.txt や pyproject.toml などの依存関係ファイルの変更を確認し、他のパッケージへの影響を評価する。

Step 4: 結果を報告

以下のテンプレートで報告する:

markdown
## Dependabot PR セキュリティレビュー結果

**リポジトリ:** OWNER/REPO
**確認日:** YYYY-MM-DD
**確認件数:** N件

### サマリ
- ✅ 承認推奨: N件
- ⚠️ 要確認: N件
- ❌ 非推奨: N件

### 各PRの詳細

#### パッケージ名 vX.X.X → vY.Y.Y
- **PR:** https://github.com/...
- **脆弱性チェック:** ✅ 既知の脆弱性なし (OSV: [ID/URL])
- **破壊的変更チェック:** ✅ 破壊的変更なし
- **補足:** エコシステム/影響範囲/判断根拠を簡潔に記載
- **判定:** ✅ 承認推奨

Didn't find tool you were looking for?

Be as detailed as possible for better results