HRプロダクト領域の開発を担当しています。アプリを開発するのが好きで、プライベートでも『Hackaru』という時間を管理できるアプリを開発しています。今回は初めてブログを書かせていただきます。本稿では、依存パッケージの更新業務のフローを改善した話を紹介します!依存パッケージの更新とはHRプロダクト開発チームでは、毎週火曜日〜金曜日に依存パッケージの更新をしています。Gemfileやpackage.jsonのような、プロダクトで使用しているパッケージをバージョンアップする作業です。中には脆弱性を修正するような重要な更新も含まれているので、定期的にアップデートするのは大切な作業になります。Dependabotを使用しています。依存パッケージのバージョンアップには、「Dependabot」を使用しています。「Dependabot」を使えば、依存しているパッケージの新しいバージョンを検知して自動でプルリクエストを作成してくれます!とても便利。設定画面から検知する間隔も設定できます。HR開発チームでは、毎週月曜日にプルリクエストを作成するように設定しています。現状のフローはこんな感じです。月曜日に自動作成されたプルリクエストを担当者がチェック。問題なければリリースするという流れです。毎週、持ち回りで担当者を1人割り当てる。1人の担当者がDependabotが作成したPRを全部レビュー。問題なければmasterにマージ。すべてmasterにマージしたら、本番へリリース作業を行う。シンプルですね!で、何が問題なの?フローはとても分かりやすいのですが、以下のような課題がありました。週によってはPRの数にバラツキがある。多いときだと30件以上。多すぎると担当者が大変。担当者によって得意分野の差があるので、1人ですべてのPRをレビューするのは限界がある。少ないときはいいのですが、多いときは量がとても多い!それを1人の担当者で全て見るというのも無理がありました。オートマージ機能を使おう。Dependabotの機能一覧をざっくり見ているとオートマージ機能というものが。automatically.https://dependabot.com/docs/config-file/#automerged_updatesDependabotがPRをだしたうえでマージまで自動でしてくれます。これなら、レビューするプルリクエストの件数自体を減らせそうです。テストや開発環境でしか使用しないパッケージはオートマージするようにしました。all設定も簡単ですね。ちなみに設定ファイルの書式が正しいかどうか下記のページで検査できます。本番に投下する前に、事前に検査しておくと安心です。https://dependabot.com/docs/config-file/validator/ついでにオートマージ先のブランチの作成も自動化しよう。マージ先にするブランチを指定する必要があります。HR開発チームでは、マージ先にするブランチは、masterブランチではなく別のブランチにしています。いうのも、masterブランチにマージするには、事前にチームのレビューが必須の運用になっているからです。GitHubの設定でも1件以上のApproveが必須の設定になっていて、Dependabotのオートマージ先にmasterブランチを指定してもオートマージはできないようになっています。そのため、オートマージ先にする一時的なブランチを作成することにしました。使ってブランチも自動で作成するようにしました。masterブランチの最新を取り込むようにしました。00:00に実行します。dependabotの実行が月曜日のため、日曜日には作成しておく。master毎週日曜日になると、CircleCIが自動でmilestone_dependabotブランチを作成してくれます。月曜日にDependabotがプルリクエストを自動で作成。日曜日に自動作成されたmilestone_dependabotブランチに自動でマージされます。レビュー作業もチーム全員でやろう。プルリクエストのレビューの方法も見直しました。update会という会を開いて、チーム全員でPRの確認作業をすることにしました。今までは1人の担当者で確認作業をしていたのですが、担当者によって得意分野の違いがあるので、1人ですべてのPRをレビューすると、時間がかかる課題がありました。この会を開くことで、全員の知見を集結することができ、20分〜30分ほどの時間で全てのプルリクエストをレビューすることができるようになっています。おわりにHR開発チームでは、こういった「改善しなくてもなんとかなるけど、改善しないと後々つらくなる課題」を積極的に改善していく雰囲気があり、1メンバーとして誇らしいなと感じてます!こういう課題はついつい保留にしてしまいがちですが、保留にせず取り組むことが大切ですね。—マネーフォワードでは、エンジニアを募集しています。ご応募お待ちしています。