RenovateとDependabotのレビュワーを一元管理する
背景
Renovateでは、Dependabot Alerts を参照してセキュリティ PR を作成する機能がデフォルトで有効化されている。
しかし、これはDepedabot自体の「Dependabot Security Updates」とは挙動が微妙に異なる。例えば脆弱性の深刻度を考慮せずにPRを作成していたり、Renovateでは自動的に作られないパターンなどが見られた。仕様か、もしくはRenovateの設定と競合を起こして不安定な挙動をしている可能性がある。
そこで、RenovateとDependabot Security Updatesを併用したい需要が生まれた。しかし、両方を使うことでレビュワーなど指定が分散することは好ましくない。
解決策:CODEOWNERS ファイルを活用する
CODEOWNERS ファイルを活用することで、Renovate と Dependabot のレビュワー設定を一元管理できる。
- Dependabot: CODEOWNERS ファイルを自動的に参照する(設定不要)
- Renovate:
reviewersFromCodeOwners: trueを設定することで、CODEOWNERS ファイルからレビュワーを取得する
これにより、CODEOWNERS ファイル 1 つで両方のレビュワーを統一できる。
NOTEDependabot の
reviewers設定オプションは2025年5月20日に廃止されているため、 CODEOWNERS ファイルを使用する以外の方法はない。
CODEOWNERS ファイルの基本仕様
CODEOWNERS ファイルは、リポジトリの .github/、ルート、または docs/ ディレクトリに配置できる。複数の場所に存在する場合、GitHub は上記の順序で検索し、最初に見つかったファイルを使用する。
基本的なシンタックスは、パターンに続けて GitHub のユーザー名またはチーム名を指定する。
# すべてのファイルに対してグローバルオーナーを指定* @global-owner1 @global-owner2
# .js ファイルに対して特定のオーナーを指定*.js @js-owner
# チームを指定する場合*.txt @org/team-name
# ディレクトリを指定する場合/docs/ @doctocatチームを指定する場合は @org/team-name の形式を使用する。チームはリポジトリへの write 権限を持っている必要がある。
詳細は GitHub Docs - About code owners を参照。
実装方法
CODEOWNERS ファイルの作成
CODEOWNERS ファイルを作成し、レビュワーを指定する。
# すべてのファイルに対してチームを指定* @org/development-teamRenovate の設定
renovate.json に reviewersFromCodeOwners: true を追加する。
{ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": ["config:recommended"], "": true, // Dependabot Alertsを読み取る機能の無効化 "vulnerabilityAlerts": { "enabled": false }}これにより、Renovate は CODEOWNERS ファイルからレビュワーを自動的に取得する。
まとめ
CODEOWNERS ファイルとRenovateのreviewersFromCodeOwnersオプションを利用することで、RenovateとDependabot のレビュワー設定を一元管理できる。