おいしい健康 開発者ブログ

株式会社おいしい健康で働くエンジニア・デザイナーが社内の様子をお伝えします。

Probot で GitHub の PullRequest のレビューアサイン, ブランチ削除を自動化する

Probot ご存知でしょうか!?

今回は、GitHub に便利な自動化ツールを追加できる Probot を弊社事例とともにお伝えしていきます。

Probot is 何

Probot は GitHub apps を Node.js により作れるフレームワークです。

probot.github.io

GitHubを使っているときに、「あぁ。。これ自動でなんとかしたい」と思うことはないでしょうか。

  • PullRequest(以下、PR) をマージしたら、ブランチを毎回手動で消すのめんどい
  • レビュワーを自動でアサインしてほしい
  • 最低一人に approve をしてもらわないと、マージできないルールで運用しているので、approve がないPRはマージボタンを無効にしたい

こういったことを実現するために自分で GitHub apps を書いたり、 APIでなんとかしようとしたりも出来ますが、そこまで時間的コストをかけられない。という方々も多いハズ。

Probot は GitHub Apps の開発フレームワークを提供していますが、更に Probot で開発された GitHub Apps の一覧も公開してくれており、既に公開されている GitHub Apps を使うことで、上記の様な願いはすぐに叶えられるようになっています 😇

おすすめ GitHub Apps by Probot

ここからは、弊社でも使っている便利な GitHub Apps をご紹介します。

Auto Assign

probot.github.io

PR を出すたびに指定した GitHub ユーザーの中から何名かをランダムに選択しレビューワーへのリクエストを飛ばす GitHub App です。

おいしい健康では、(ほぼ)すべてのPRを必ず他のエンジニアがコードレビューをします。

コードレビューでは、プログラムが設計通りにかけているかを始め、より良い解決方法はないか。などを中心にやり取りが行われます。在籍期間が長くなればなるほど、コードレビューを活発に行える一方で、新しく入ってきたばかりの人は、書かれたコードの前後背景がわからなかったり、コメントするポイントがわからなかったりして、レビューに参加しにくいことも珍しくありません。

そこで、この Auto Assign の登場です。

レビュワーはランダムに割り当てられるため、誰もが均等にレビューをする機会を得ることになります。

前後背景の知識を持っている人は、コードに考慮漏れがないかなどを中心に。 前後背景の知識を持っていない人は、今後前後背景の知識を蓄えられるように。この Auto Assign は役立っています。 もちろん、前後背景を知らない人たちばかりがアサインされてしまい、ちょっと不安だな。と思うときには、手動で新たにレビューワーを追加するなどの対応は必要になってきます。

なんにせよ、この GitHub Apps を入れてから、レビューが活発になったのは確かです。

Delete merged branch

probot.github.io

PR をマージしたら、マージ済みのブランチを自動で消してくれる GitHub App です。 マージ後のブランチは基本的に用済みであり、トラブルがあれば Restore もできるため、消してしまうのが弊社の通常運用になっています。

この GitHub App を導入するまでは定期的に消し忘れているものをチェックしたり、あまり消す習慣のない人にはリマインドを送ったりと、地味に手間な運用が行われていました。

すごく簡易な機能だけの GitHub App ですが、めちゃくちゃ役立っています。

おわりに

今回は便利 GitHub Apps の紹介がメインとなりましたが、自分で作るのもとても簡単なようです。(私はまだ作っていない) Probot を用いた自作 GitHub App の良い事例がでてきましたら、またお知らせします。