dependabot が生成する pull request で圧死しそうになってる日々です。
増築を重ねた build.gradle
だと、以下みたいな感じで必要なライブラリが無尽蔵に増えてしまうことがよくあり、あるライブラリとそのサブライブラリのバージョンが一致すべきものも、特に考えなしにたくさん並べてしまう場合もある。
dependencies { implementation "com.example:hogehoge:1.0.0" implementation "com.example:hogehoge-aaa:1.0.0" implementation "com.example:hogehoge-bbb:1.0.0" implementation "com.example:hogehoge-ccc:1.0.0" }
それでいざライブラリの更新を dependabot が検出すると、サブライブラリそれぞれの PR まで個別につくられてしまう。(↓がその例)
全部 CI が pass してくれれば、順番に粛々と rebase して merge すれば良いが、それでも間にバージョン不一致な状態の commit が残るのは正直気持ち悪い。
PR をつくる時点でいい感じに dependabot が忖度してくれればいいが、実際にそういう機能はこれを書いている時点では未実装である。
みんな困っていないのかと思って調べてみると、build.gradle
内で dependabot が解釈できる書き方にすれば、やってくれることがわかった。
ext { hogehogeVersion = "1.0.0" } dependencies { implementation "com.example:hogehoge:$hogehogeVersion" implementation "com.example:hogehoge-aaa:$hogehogeVersion" implementation "com.example:hogehoge-bbb:$hogehogeVersion" implementation "com.example:hogehoge-ccc:$hogehogeVersion" }
バージョンを変数に入れて一元管理すると良い。具体的には dependabot-core の中で定義されている正規表現にマッチさせるようにすれば良さそう。
ちなみにこういうことをせずに放っておくと、リポジトリあたりの PR 生成上限数に抵触して、それ以上生成してもらえないという悲しい状態になるため、みんなは気をつけて欲しい。