ブログで使うライブラリのアップデートを自動化する

このブログはGatsby.jsでビルドしてGitHub Pagesにホスティングしているんだけど、ビルドするために必要なライブラリをdependabotを使って自動的にアップデートするようにしたところ、とても快適になった。

dependabotはOSSであれば無料で使うことができる。設定したスケジュールに従ってライブラリのアップデートが存在すれば以下のような感じでPull requestを自動的に送ってくれる。

dependabotが送ってきたPull Request

さらにとてもよかったのが、マイナーアップデートであれば自動的にPull requestをmergeするといった、auto mergeの条件を細かく設定できたことだ。これによって大幅に運用の手間が抑えられる。

このブログでは、package.jsonで指定したversion specifierに従ったアップデートは自動的にmergeするようにし、そうでないメジャーアップデートなどは手動でmergeするようにしている。ちょうどさきほどemotionのメジャーアップデートを手動でmergeしていたところだった。breaking changeを含んでいたため、auto mergeにしないで正解だった。

ライブラリのアップデートは忘れがちで、気づいたときにアップデートしようとすると大幅な変更を余儀なくなってしまう。GitHub Pagesで自分のページを運用している開発者にはdependabotのようなサービスをオススメしたい。