fix-dependabot について
Bun のモノレポで Dependabot のプルリクエストを修正するリポジトリ用スキルです。ほかのパッケージの依存バージョンとロックファイルを更新して変更を確認し、依存関係の競合や破壊的変更を伴う可能性のあるメジャーアップグレードにも対処します。
主な機能
- 01Dependabot PR の詳細確認
- 02モノレポ内の該当パッケージのバージョン更新
- 03`bun install` による `bun.lock` の再生成
- 04コミット前の変更ファイル確認
- 05コミット、プッシュ、元のブランチへの復帰
活用シーン
- 01Dependabot の更新をほかのパッケージにも反映
- 02依存更新後に古いロックファイルを再生成
- 03メジャーアップグレードや依存競合の検討
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ remotion-dev/ remotion --skill fix-dependabotインストール後、Claude Code で/fix-dependabotを入力して読み込まれたか確認します。
詳細
Dependabot の PR は 1 つの package.json だけを更新し、bun install は実行しないため、bun.lock ファイルが古くなり、モノレポ内の他のパッケージも古いバージョンを参照したままになります。このスキルは両方の問題を解決します。
手順
-
PR の情報を取得する —
gh pr view <number> --json headRefName,files,title,bodyを使用して、ブランチ名、更新された依存関係、更新前後のバージョンを確認します。 -
ブランチをチェックアウトする:
git fetch origin <branch>
git checkout <branch>
- モノレポ内のすべての該当箇所を更新する — Dependabot は 1 つのパッケージしか更新しません。同じ依存関係を古いバージョンで参照している他の
package.jsonファイルをすべて検索し、更新します:
rg '"<dependency>": "[~^]?<old-version>"' --glob '**/package.json'
該当するすべての箇所を新しいバージョンに更新します。各パッケージで使われているプレフィックスの形式(^、~、または固定バージョン)を維持してください。
-
リポジトリのルートで
bun installを実行し、bun.lockを再生成します。 -
確認する —
git statusを実行し、変更されたのがbun.lockと想定されるpackage.jsonファイルだけであることを確認します。想定外のファイルが変更されている場合は、先に原因を調査してください。 -
コミットしてプッシュする:
git add -u
git commit -m "Update <dependency> to <version> across all monorepo packages"
git push
- 元に戻す — 以前のブランチ(通常は
main)に戻ります:
git checkout main
注意事項
- Dependabot は「自分で変更しない限り、この PR の競合は Dependabot が解決します」としていますが、ロックファイルと関連パッケージの更新は想定されたワークフローであり、問題は発生しません。
- バージョンの更新がメジャーバージョン(例:vite 5 → 6)の場合は、アップグレードが適切か、無視すべきかを検討してください。破壊的変更を確認してください。
bun installが失敗する場合、依存関係のバージョンが他のパッケージと競合している可能性があります。その場合は PR をクローズし、理由をコメントしてください。
コメント
Markdown 対応