Dependabotとは?GitHubでの自動依存関係更新
Dependabotは、依存関係、特に既知のセキュリティ脆弱性を持つものを更新するpull requestを自動的に開くGitHubのツールです。
依存関係を最新に保つのは面倒なので、おろそかにされがちで、おろそかにされた依存関係こそ脆弱性が積み重なる場所です。Dependabotはその雑用を自動化します。manifestを監視し、依存関係が古くなったりセキュリティアドバイザリを持ったりしたことに気づき、それを更新するpull requestを、レビュー用のchangelogをその場に添えて開きます。
Dependabotがすること
- Security updates: 既知のadvisoryを持つ依存関係のためのPR。
- Version updates: 依存関係を最新に保つためのスケジュールされたPR。
- Alerts: 脆弱な依存関係が検出されたときの通知。
- PRのノイズを減らすためのGrouped updates。
仕組み
dependabot.ymlのconfigを追加する(またはrepoの設定で有効にする)と、Dependabotはあなたのlockfileとmanifestを読み、advisoryデータや新しいreleaseと比較し、pull requestを立てます。あなたのCIが各PRに対して実行されるため、その更新が何かを壊すかどうかを確認できます。
Security updates対version updates
Security updatesはリアクティブで緊急です。欠陥が公開された、ここにパッチがある、というものです。Version updatesは予防的な衛生管理です。upstreamに近くいることで、いずれのセキュリティ更新も小さくなります。ほとんどのチームは異なるcadenceで両方を有効にします。
なぜ自動化が重要なのか
advisoryとexploitの間の窓は短いことがあります。誰かが気づくのを待つ代わりに数時間以内に修正PRを開くbotは、あなたの露出を劇的に縮小します。人間は依然としてレビューしてmergeします。botは遅延を取り除きます。
botのPRを安全にレビューする
自動化されたPRもmerge前にレビューとCIの通過が必要です。強力なテストカバレッジとCI gateにより、通常の更新を素早く受け入れつつ、たまに起こる破壊的変更を捕まえられます。そのため自動化が基準を下げることなくあなたを加速します。
重要なポイント
- Dependabotは脆弱または古い依存関係にパッチを当てる自動PRを開きます。
- 緊急のsecurity updatesと予防的なversion updatesを提供します。
- advisoryと修正の間の遅延を取り除きます。人間は依然としてレビューします。