Renovate が作成した GitHub PR の依存関係更新内容を詳細にチェックする。Renovate PR の URL が渡された時、または依存関係更新の PR をレビューする時に使用する。
Renovate が作成した依存関係更新 PR を包括的に分析し、日本語でレポートを作成します。
GitHub PR URL から以下のコマンドで情報を取得:
gh pr view <PR_URL> --json title,body,files,headRefName,baseRefName,additions,deletions
PR タイトルからパッケージ名とバージョン変更を抽出する。
セマンティックバージョニングに基づいて判定:
WebFetch または WebSearch を使用して:
https://github.com/<owner>/<repo>/releases)を確認リリースノートから以下を探す:
Grep ツールを使用して検索:
# ESM import
rg "from ['\"]<package-name>" --type ts --type tsx --type js --type jsx
# CommonJS require
rg "require\(['\"]<package-name>" --type ts --type js
# 設定ファイルでの参照
rg "<package-name>" -g "*.config.*" -g "*.json"
影響を受けるファイル一覧と利用方法を出力する。
更新対象パッケージと、プロジェクト内の他のパッケージとの互換性を確認:
package.json の依存関係を確認:
cat apps/frontend/package.json | jq '.dependencies, .devDependencies'
cat apps/backend/package.json | jq '.dependencies, .devDependencies'
peerDependencies の確認:
主要な依存関係の組み合わせを確認:
| 更新対象 | 確認すべき関連パッケージ |
|---|---|
| React | Next.js, React DOM, @types/react, Radix UI, Framer Motion |
| Next.js | React, React DOM, eslint-config-next, @next/* パッケージ |
| TypeScript | @types/* パッケージ、ts-node、各種型定義 |
| Prisma | @prisma/client と prisma CLI のバージョン一致 |
| GraphQL | graphql-request, @graphql-codegen/*, graphql-yoga |
| ESLint | eslint-config-, eslint-plugin-, @typescript-eslint/* |
| Biome | @biomejs/biome(単独で動作、依存少ない) |
互換性マトリクスの確認:
バージョン制約の確認:
# npm でパッケージの peerDependencies を確認
npm view <package-name>@<version> peerDependencies
以下を確認:
本リポジトリで使用しているツールとの互換性をチェック:
tsconfig.json の設定、型定義の変更biome.json での設定との互換性以下の形式で日本語レポートを出力:
# Renovate PR チェックレポート
## 基本情報
| 項目 | 内容 |
|------|------|
| パッケージ名 | `<package-name>` |
| バージョン変更 | `<old-version>` → `<new-version>` |
| 変更種別 | **Major** / **Minor** / **Patch** |
| PR URL | <url> |
## 変更内容サマリー
<日本語で変更内容を要約(3-5文程度)>
### 主な変更点
- <変更点1>
- <変更点2>
- <変更点3>
## Breaking Changes
<Breaking Changes の有無>
### 詳細(該当する場合)
- <breaking change 1>
- <breaking change 2>
### 必要な対応
<マイグレーション手順や対応方法>
## 本リポジトリでの利用箇所
| ファイル | 利用方法 |
|---------|---------|
| `<file1>` | <usage1> |
| `<file2>` | <usage2> |
**影響範囲**: <影響の大きさを評価>
## 依存関係の互換性
| 関連パッケージ | 現在のバージョン | 互換性 | 備考 |
|---------------|-----------------|--------|------|
| `<package1>` | <version> | OK/要確認/要アップデート | <詳細> |
| `<package2>` | <version> | OK/要確認/要アップデート | <詳細> |
**同時アップデート必要**: <必要なパッケージがあれば記載>
## 環境要件の変更
| 項目 | 変更前 | 変更後 | 対応必要 |
|------|--------|--------|----------|
| Node.js | <old> | <new> | Yes/No |
| peerDependencies | <old> | <new> | Yes/No |
## ツール互換性
| ツール | 互換性 | 備考 |
|--------|--------|------|
| TypeScript | OK/要確認/NG | <詳細> |
| Biome | OK/要確認/NG | <詳細> |
| Next.js | OK/要確認/NG | <詳細> |
## リスク評価
- [ ] **低リスク**: そのままマージ可能
- [ ] **中リスク**: ローカルでの動作確認推奨
- [ ] **高リスク**: 詳細なテストと移行作業が必要
### 推奨アクション
1. <アクション1>
2. <アクション2>
3. <アクション3>
## 参考リンク
- [リリースノート](<url>)
- [CHANGELOG](<url>)
- [マイグレーションガイド](<url>)(該当する場合)
レポート作成後、結果を PR のコメントとして投稿する:
gh pr comment <PR_NUMBER> --body "$(cat <<'EOF'
# Renovate PR チェックレポート
## 基本情報
| 項目 | 内容 |
|------|------|
| パッケージ名 | `<package-name>` |
| バージョン変更 | `<old-version>` → `<new-version>` |
| 変更種別 | **Major** / **Minor** / **Patch** |
## 変更内容サマリー
<簡潔な要約>
### 主な変更点
- <変更点1>
- <変更点2>
- <変更点3>
## Breaking Changes
<Breaking Changes の有無と詳細>
## 本リポジトリでの利用箇所
| ファイル | 利用方法 |
|---------|---------|
| `<file1>` | <usage1> |
## 依存関係の互換性
| 関連パッケージ | バージョン | 互換性 |
|---------------|-----------|--------|
| `<package1>` | <version> | ✅ OK / ⚠️ 要確認 |
## CI ステータス
| チェック | 結果 |
|---------|------|
| format | ✅ SUCCESS / ❌ FAILURE |
| lint | ✅ SUCCESS / ❌ FAILURE |
| typecheck | ✅ SUCCESS / ❌ FAILURE |
| test | ✅ SUCCESS / ❌ FAILURE |
## リスク評価
✅ **低リスク**: そのままマージ可能
/ ⚠️ **中リスク**: ローカルでの動作確認推奨
/ ❌ **高リスク**: 詳細なテストと移行作業が必要
### 推奨アクション
1. <アクション1>
2. <アクション2>
## 参考リンク
- [リリースノート](<url>)
---
🤖 Generated by Renovate Check
EOF
)"
重要: レポートは簡潔にまとめ、GitHub コメントの文字数制限(65536文字)を超えないようにする。詳細版はユーザーへの出力として表示し、コメントには要約版を投稿する。