TL;DR
-
Dependabotがversion catalogに対して更新対象を検索する場合、repositories設定はルートに定義された値が参照されるらしい - 当該プロジェクトでは、
GitHub Packagesへのアクセス設定が各サブモジュールにしか定義されておらず、検索が失敗していた- 見つからない依存が有った場合も、
Dependabotのアクションは失敗にならないようだった
- 見つからない依存が有った場合も、
状況
gradleのマルチモジュールプロジェクトをversion catalog移行した際、社内のGitHub Packagesに置かれた依存に対してDependabotが反応しませんでした。
ログを見た所、ステータスそのものは正常終了となっていましたが、当該依存に関する検索結果が404になっていました。
原因と対処
GitHub Packagesに置かれた依存を使うためには、通常ではrepositoriesにシークレット関連の設定が必要1です。
当該リポジトリでは、それらのシークレット設定は各サブモジュールに書かれていました。
これまでのDependabot設定ではモジュール毎に指定が有ったためか、この状態で問題無く動いていましたが、version catalog化後の設定では、プロジェクトルートにもこの設定が必要となるようです。
弊チームでは、allProjectsに一括設定する方針としました。
allprojects {
repositories {
mavenCentral()
// dependabotが社内GitHub Packagesの依存を検索できるようにする設定
maven {
/* シークレット設定 */
}
}
}