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 つで両方のレビュワーを統一できる。

NOTE

Dependabot の 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-team

#Renovate の設定

renovate.jsonreviewersFromCodeOwners: 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 のレビュワー設定を一元管理できる。