依存しているライブラリを定期的に更新したくてdependabotを設定しているものの、dependabotが出すPRがひとつずつなので毎回通知スパムと一個ずつアプルーブマージしていくのが面倒でどうしたものかと。
CIが通っていればそのままマージされてしまって概ね問題ない、PRのマージには1人以上Approveが必要という前提がある。
- 自動マージを頑張る
- CIのなにかで自動マージ
- GitHub ActionsでLGTMマージ
- PRを減らす
- renovateに乗り換えてPRをまとめる
- いい感じのものを自作
このあたりが考えた選択肢。
CIのなにかで全自動マージをしようとすると、Botアカウントを作ってPATを生成、みたいなやり方がありそう。この場合はアカウントとPATの管理が必要になってちょっと面倒ではある。自分のアカウントを使うにしても、結局PATの管理が必要。
Github Actionsだとトークンが出てくるけど、1人以上Approveが必要、という制約のせいで自動マージができない。自動アプルーブ+マージみたいなやり方になりそうだけど、結局それにはPATが必要。
PATを管理しなくていいやり方として、LGTMコメントをして、マージするというのがある。コメント時にそのユーザのトークンが取れることを利用している。
これを使うとdependabotに限らず、コードオーナーになっているライブラリのレビュー+マージが捗るというメリットがある。
renovateを使えば条件を決めてPRをひとつにまとめてくれる。なんならgo mod tidyもできるのでdependabotよりいいのではないだろうか。自動マージはやっぱり何か実装が必要。
Noise Reduction - Renovate Docs | Renovate Docs
自作はちょっと大変。結局PRを作ってマージする、になるとPATが必要。PRを作らず、更新するコミットをつくるだけなら Github Actionsでcronなタスクを作るとよさそう。CIでやっている相当のことを確認するのがちょっと面倒なイメージ。
dagger.io というCI/CDパイプラインをベンダーフリーにするようなものも出てきているので、これをベースにできると環境を気にしなくてよくなり、どこでも同じCI/CDパイプラインを起動できるので、この件の悩みポイントも少し解消するかもしれない。