Studyplus Engineering Blog

スタディプラスの開発者が発信するブログ

GitHubのPull Panda連携を(さっそく)導入しました!

Androidチームの若宮(id:D_R_1009)です。 今朝方、Twitterを眺めていたら下記のツイートが目にとまりました。

「これは便利そうだ!」と感じたため社内Slackに投稿し、

f:id:D_R_1009:20190618132709p:plain

利用を開始したところ

f:id:D_R_1009:20190618132725p:plain

期待以上の便利さだったので、本ブログでも紹介したいと思います。

f:id:D_R_1009:20190618132756p:plain

Pull Pandaとは

https://pullpanda.com/

GitHubのリリースでは下記のように紹介されています。

We’re excited to share some big news: we’ve acquired Pull Panda to help teams create more efficient and effective code review workflows on GitHub.

https://github.blog/2019-06-17-github-acquires-pull-panda/

ブログでも紹介されている通り、Pull Pandaには"Pull Reminders"・"Pull Analytics"・"Pull Assigner"の3機能があります。

  • Pull Reminders : Slack通知
    • Pull Requestが開かれた、コメントされたなどの条件でSlack通知をカスタマイズできます
    • 指定の時間にPull Requestをチェックし、コードレビューやコードレビューへの対応を促すリマインダー機能も備えています
  • Pull Analytics : Pull Requestに関連する様々なデータ分析機能
    • Pull Requestの平均マージ時間や修正量、各コントリビューターのコメント量などを一覧にします
    • チームやリポジトリごとの取り組みが可視化されるため、データをベースにした組織文化の改善を行うことができます
  • Pull Assigner : 自動レビュアーアサイン機能
    • Pull Requestへのレビュアーが偏らないよう、自動的にコントリビューターをアサインします

Slack用GitHubアプリとの違い

Slackの公式サイトで紹介されている通り、SlackとGithubを連携させているチームも多いと思います。

https://get.slack.help/hc/ja/articles/232289568-GitHub-%E3%81%A8-Slack-%E3%82%92%E9%80%A3%E6%90%BA%E3%81%95%E3%81%9B%E3%82%8B

大きな違いとしては、下記3点があげられると感じています。

  • 通知をSlackチャンネルだけでなく個人のDMとして受け取ることができるので、Slack通知を個人やチームに合わせてカスタマイズしやすい
  • レビューのリマインダー機能があるため、「レビューをお願いします!」と個人間でやり取りする必要がなくなる
  • 「レビュー終わりました! 対応お願いします!」とレビュアーがレビュイーに連絡する必要がなくなる

どれもチーム内の個人の活動でなんとかしていたことを自動化 + ルールとして運用することができるようになります。 「ツーカーの仲」で開発しているチームより、多人数で協働しているチームをサポートするツールではないでしょうか。

運用ルール

弊Androidチームの場合

現在は下記ルールで運用を開始しています。

  • リマインダー機能(チャンネルへのリマインダー)

    • 11:00と17:00の1日2回リマインダー at #android_pr
    • レビュー待ち、レビューコメント対応待ちの2条件で通知
    • PRは作成されて2時間以上たったものを通知
    • 通知したくないPRには WIP ラベルをつける
  • リマインダー機能(個別DMへのリマインダー)

    • カスタマイズ推奨
    • 開発スタイルに合わせておまかせ
  • 自動アサイン機能(Automated review assignment)

    • Androidチームは CODEOWNER を利用しているため対応しない
    • Androidチームが増えたら対応を検討(2019年6月現在3名)

設定について

スタディプラスでは個々人の働き方に合わせた出勤時間となるため、可能な限り緩めのルールで運用したいと考えています。 そのため、リマインド設定は下記の条件としました。

  • 昨日レビューが終わっていないPull Request ⇨ 11:00にリマインド
  • 当日15時までに作成されたPull Request ⇨ 17:00にリマインド

今後

Androidチームで試験的に取り入れとなりましたが、社内の他チームでも取り入れる機運が高まっています。 社内の全チームで展開し、知見を取り入れてより便利に使っていきたい……と思っていたら、他チームの導入がどんどん進んでいました。

f:id:D_R_1009:20190618143248p:plain

気軽にPull Requestのフローを改善できるので、ぜひぜひ取り入れてみてください!