bannzai / fix-dependabot-prs
Install for your project team
Run this command in your project directory to install the skill for your entire team:
mkdir -p .claude/skills/fix-dependabot-prs && curl -L -o skill.zip "https://fastmcp.me/Skills/Download/3670" && unzip -o skill.zip -d .claude/skills/fix-dependabot-prs && rm skill.zip
Project Skills
This skill will be saved in .claude/skills/fix-dependabot-prs/ and checked into git. All team members will have access to it automatically.
Important: Please verify the skill by reviewing its instructions before using it.
dependabotから上がってきた複数のPRを一括で解決し、まとめPRを作成する。dependabotのPR対応を依頼された時に使用。
0 views
0 installs
Skill Content
--- name: fix-dependabot-prs description: dependabotから上がってきた複数のPRを一括で解決し、まとめPRを作成する。dependabotのPR対応を依頼された時に使用。 allowed-tools: Read, Bash(gh run:*), Bash(gh pr:*), Bash(git status:*), Bash(git push:*), Bash(git add:*), Bash(git commit:*), Bash(git cherry-pick:*), Bash(git merge:*), Bash(git fetch:*), Bash(git pull:*), Bash(git diff:*), Bash(git checkout:*), Bash(flutter:*), Bash(dart:*), Bash(pod:*), Glob, Grep, Write --- # Dependabot PRまとめ解決スキル dependabotから上がってきた複数のPRを一括で解決し、まとめPRを作成します。 ## 実行手順 ### 1. dependabotのPR一覧を取得 ```bash gh pr list --author "app/dependabot" --state open ``` ### 2. 各PRの状態を確認 各PRについて以下を確認する: - PRの変更内容(`gh pr view <PR番号>`) - GitHub ActionsのCI結果(`gh pr checks <PR番号>`) - 差分内容(`gh pr diff <PR番号>`) ### 3. まとめブランチを作成 ```bash git checkout main git pull origin main git checkout -b chore/dependabot-updates-$(date +%Y%m%d%H%M%S) ``` ### 4. 各PRの変更を取り込む 各dependabot PRのブランチから変更を取り込む: ```bash # 例: dependabot/npm_and_yarn/パッケージ名-バージョン のようなブランチ名 git fetch origin <dependabotブランチ名> # コミットハッシュは `gh pr view <PR番号> --json commits --jq '.commits[0].oid'` で取得できます git cherry-pick <コミットハッシュ> # または git merge origin/<dependabotブランチ名> --no-edit ``` ### 5. 矛盾の解決 PR同士で矛盾する変更がある場合: - 両方の変更を取り込むのが難しい場合は、片方を諦めてOK - 諦めた理由と背景は、後でまとめPRにコメントとして記載する ### 6. コード生成の実行 dependabot PRはCIのcodegenステップで落ちていることが多いため、必ず実行する: ```bash flutter pub run build_runner build --delete-conflicting-outputs dart format lib ``` 変更があればコミット: ```bash git add -A git commit -m "chore: run build_runner after dependency updates" ``` ### 7. iOS Podfile.lockの更新 iOSの依存関係も更新が必要な場合が多い: ```bash cd ios pod install --repo-update cd .. ``` 変更があればコミット: ```bash git add ios/Podfile.lock git commit -m "chore: update Podfile.lock" ``` ### 8. ビルド・テストの確認 ```bash flutter analyze flutter test ``` ### 9. まとめPRを作成 ```bash git push origin HEAD gh pr create --title "chore: dependabot PRまとめ更新" --body "$(cat <<'EOF' ## 概要 dependabotから上がってきた複数のPRをまとめて対応しました。 ## 取り込んだPR - #PR番号1: パッケージ名 x.x.x → y.y.y - #PR番号2: パッケージ名 x.x.x → y.y.y ... ## 追加対応 - [ ] build_runner実行 - [ ] Podfile.lock更新 ## 除外したPR(ある場合) - #PR番号: 除外理由 EOF )" ``` ### 10. 除外したPRがある場合 まとめPRにコメントで理由を記載: ```bash gh pr comment <まとめPR番号> --body "$(cat <<'EOF' ## 除外したdependabot PR ### #PR番号: パッケージ名の更新 **理由**: (例)他のパッケージとの依存関係が矛盾するため **背景**: (詳細な説明) **今後の対応**: (必要であれば) EOF )" ``` ### 11. 元のdependabot PRをクローズ まとめPRがマージされた後、元のdependabot PRをクローズする: ```bash gh pr close <PR番号> --comment "まとめPR #<まとめPR番号> で対応しました" ``` ## 注意点 - dependabotのPRは作成時点でCIが落ちていることが多いので、必ずCI結果を確認する - Flutter/Dartプロジェクトでは`build_runner`の実行が必要なことが多い - iOSビルドには`Podfile.lock`の更新が必要なことが多い - 複数のパッケージ更新で依存関係が矛盾する場合は、無理に両方を取り込まず、片方を諦める判断も重要 - 諦めた場合は必ず理由を記録する