GitHub の新機能「Code review assignment」を使ってみた
この記事は マイナビ Advent Calendar 2019 8日目の記事となります.
前日は「チャットボットをもくもくして運用した1年間の軌跡」でした.このチャットボット,普段は結構クレイジーな発言が多いですが投げかけた言葉に対して的確に答えたり,盛り上げてくれるようなことをたまに言うので社内で結構人気です.一番スゲーと思ったシーンはこちら(内容は意味わからない感じですが笑笑).
なので↑の記事も是非見てみてください🤖.
前置きはこの辺にして,今回は先日開催された「GitHubUniverse」で発表された「Code review assignment」という機能の使い方についてまとめようと思います.
この機能を設定すると,プルリクエストのコードレビューでチームメンバーからレビュアーを自動でアサインすることができるようになります.
PRのコードレビューのアサインを自動で行えるようになります!アサインの方式はラウンドロビンとロードバランスの2つ。パブリックベータとして、すべてのOrganizationでお使いいただけます! #GitHubUniverse pic.twitter.com/7NvXqcmCUN
— GitHub Japan (@GitHubJapan) 2019年11月13日
設定方法
公式のヘルプを見ながら設定していきます.
前提
「Teams」に設定する機能のため個人のリポジトリではなく,「Organizations」に所属しているリポジトリで設定できます.また,事前に Team を作成し「Code review assignment」を設定したいリポジトリに Team を追加する必要があります.
「Teams」の「Settings」で「Code review assignment」を設定する
「Teams」のページ(https://github.com/orgs/オーガニゼーション名/teams/リポジトリ名
)にアクセスし,「Settings」を選択します.もし「Settings」が表示されない場合は権限が不足しているため管理者に自分のアカウントの権限を上げてもらうか,これから記載する内容を設定してもらうかを相談してみてください.
「Code review assignment」を選択します.
「Enable auto assignment」 にチェックを入れます.すると以下のように「How many team members should be assigned to review?」 (Teams のメンバー内でコードレビューにアサインする人数は何人に設定するか?)や「Routing algorithm」(アサインする時のアルゴリズム)などが表示されるため,設定します.
「Routing algorithm」は現在2つあります.1つ目の「Round robin」は各メンバーが今までアサインされたレビュー数に関係なく、チームメンバーが交互にアサインされるようにするアルゴリズムです.
2つ目の「Load balance」は各メンバーがアサインされたレビュー数に基づいてレビュアーを選択し,過去30日間で各メンバーがアサインされたレビュアー数が均等になるようにするアルゴリズムです.
他にもアサインの対象から除外するメンバーの設定やメンバーをアサインした時にチーム全体ではなく,アサインしたメンバーのみ通知するかどうかなどの設定があります.
今回は以下のように設定し,「Save Changes」を押して設定を保存します.
実際に使ってみる
さあ!実際に使ってみましょう!使い方は簡単で新規または既存のプルリクエストのページで「Reviewers」を選択し,「Code review assignment」を設定した Team を指定します.
※てっきりリポジトリに Team を設定すると「Reviewers」が指定されてないプルリクエストは自動でレビュアーをアサインをするものだと勘違いしていました😅
すると Team の中から1名のメンバーをレビュアーとしてアサインされました.これでもうレビュアーを誰にするか迷う必要は無くなりますね!!
まとめと所感
「Code review assignment」を使ってみました.設定で少し迷う(おそらく自分だけ...)ところはありましたが設定自体は簡単でした.
ちなみに業務では「Pull Panda」という GitHub Apps を使っています.GitHub が買収した企業のアプリで類似する機能がありますが,これからどんな差別化をしていくのか楽しみですね.
「GitHubUniverse」では他にも発表された機能があるので,利用可能になったタイミングで「良いな!!」って思った機能は使い方をまとめていこうと思います!!