SMARTCAMP Engineer Blog

スマートキャンプ株式会社(SMARTCAMP Co., Ltd.)のエンジニアブログです。業務で取り入れた新しい技術や試行錯誤を知見として共有していきます。

無償になったPull Remindersを導入してみた!

エンジニアの笹原です。が好物のパンダからもじってパンくんと呼ばれています。

皆さんはGitのリモートリポジトリとして何を使ってますか?弊社ではGitHubを使っています!

GitHubはそれ自体の使いやすさはもちろんですが、各種ツールとの連携のしやすさや自分でGitHub Appsを作ったりMarketplaceを使ったりすることでの拡張性の高さも魅力ですよね!!

先月、GitHubがPull Pandaを買収したことで、Pull Pandaが提供しているツールが無償利用できるようになりました!!

pullpanda.com

そこで、実際に導入したフローを紹介します!

概要

Pull Pandaが提供しているツールは大きく以下の3つに分けられます

  • Pull Reminders
    • PRの状態に応じて通知をしてくれる機能
    • チームに対してSlackのchannel宛に飛ぶ通知と、個人に対してSlackのDM宛に飛ぶ通知がある
  • Pull Analytics
    • PRがマージされるまでの期間などを可視化してくれる機能
  • Pull Assigner
    • PRのレビュワーを自動的に割り振ってくれる機能

導入方法

実際にPull Reminderを導入してみましょう!

マーケットプレイスからとPull Pandaのページからのどちらからでも入れられますが、今回はPull Pandaのページから入れてみたいと思います。

Pull Reminders: Pull request reminders for Slack & GitHub

GitHub・Slackとの連携

Pull PandaのページにAdd To Slackボタンがあるのでそれを押して、まずはSlack連携をします。

f:id:yuma124:20190705094037p:plain

Slack上で与える権限を確認してInstallボタンを押します。

f:id:yuma124:20190705094138p:plain

次に個人アカウントのGitHub連携をします。

f:id:yuma124:20190705094158p:plain

GitHub上で与える権限を確認してAuthorizeします。

f:id:yuma124:20190705094429p:plain

Pull PandaのGitHub AppsをOrganizationもしくはアカウントのレポジトリに入れていきます。

f:id:yuma124:20190705094454p:plain

連携するOrganization、アカウントを選択します。

f:id:yuma124:20190705094517p:plain

どのレポジトリに入れるか選択します。

f:id:yuma124:20190705094546p:plain

ここまでで、連携は一旦完了しました!!!

通知の設定

ここからは各種設定をしていきます。 チーム宛の通知と個人宛の通知をそれぞれ設定できます。

f:id:yuma124:20190705095035p:plain

Team Remindersを押すと、チーム宛の通知をSlackのどのchannelに通知するか選択することになります。

f:id:yuma124:20190705150253p:plain

以下のような項目を設定できます。

  • 通知の日時
  • 通知する条件
    • レビューの状態
    • リポジトリ
    • PRの生存期間・変更されていない期間
    • タイトルやラベルでフィルタリング
    • PRが開かれたり、マージされたりと言ったイベントのフック

f:id:yuma124:20190705150509p:plain

個人宛には、My DM Settingを押して以下のような項目を設定できます。

  • イベントフックの通知
  • レビューをアサインされているPRについての通知

f:id:yuma124:20190705151000p:plain

実際の通知

実際の通知をそれぞれ見てみましょう。

チーム宛の通知は以下のような情報が指定した時間に届きます。 - OpenになっているPRのリスト - どれくらい古いのか - 誰がアサインされているか

f:id:yuma124:20190705155257p:plain

個人宛の通知は以下のように、指定したイベントが発生したタイミングでどういうイベントが発生したか通知してくれます。

f:id:yuma124:20190705154350p:plain

終わりに

Pull Remindersの導入方法を紹介しましたが、Pull Pandaが提供しているツールはどれも、Pull Requestベースで開発しているチームに有効なものだと感じました。

Pull Analyticsを用いて、Pull Requestの運用状況を可視化した上で、リリース頻度を上げたいとか、スキルを平準化したいと言ったチームの課題に応じて、Pull RemindersやPull Assinerの設定を変更したりすると良さそうですね!!