IntelliJ IDEAでGitHubのPull requestをレビューしてみた

2020.08.04

これまでは、プルリクエストの初期サポートとして、プルリクエストの一覧を参照したり、コメントを表示したりと主にプルリクエストを表示する機能がサポートされていました。 今回のアップデート(IntelliJ IDEA 2020.2)で、GitHubプルリクエストの完全サポートがリリースされたので、早速使ってみようと思います。

IntelliJ IDEA - 2020.2の新機能

確認環境

  • IntelliJ IDEA 2020.2(Ultimate Edition)

事前準備

IntelliJ IDEAにGitHubアカウントを登録していない場合は、登録する必要があります。 既存のアカウントを連携する場合は、以下の通りとなります。

[Preferences] → [Version Control] → [GitHub]を開き、Add Account...をクリックします。 ブラウザが立ち上がり、以下の画面が表示されるので、Authorize in GitHubをクリックします。

GitHubへのアクセスの許可を求められますので、Authorize JetBrainsをクリックし、許可します。

これでGitHubアカウントを登録することができました。

今回は既存のアカウントをログインして追加する方法で実施しましたが、いくつかアカウントを連携する方法がありますので、詳しくは公式ドキュメントをご確認ください。

GitHub - ヘルプ | IntelliJ IDEA

プルリクエストを作成

まずは、プルリクエストを作成します。修正用のブランチを作成し、コードを修正しコミットします。修正が完了したら、[VCS] → [Git] → [Create Pull Request]を開き、必要事項を入力し、OKをクリックすることでプルリクエストを作成することができます。

上記で作成したプルリクエストは、GitHub上では、以下のように作成されます。

プルリクエストのビューについて

先程作成したプルリクエストをIntelliJ IDEAで表示してみます。

一覧

プルリクエストを一覧で確認することができます。また、検索条件を指定して、条件に合致するプルリクエストを検索することもできます。

プルリクエスト

開く対象のプルリクエストをダブルクリックまたは、右三角アイコンをクリックすることで、プルリクエストを開くことができます。 プルリクエストの基本情報や更新内容の履歴、ソースのコミット履歴や変更内容などを確認することができます。

レビュー

ここからソースに対してコメントを入れたり、Conversationにコメント(プルリクにコメントするイメージ)を入れてレビューしてみます。

ソースにコメント

変更したファイルを開くことで、差分を確認することができます。差分に対してコメントを入れる場合には、+マークをクリックし、Start a review with a commentAdd a single commentを選択するとコメント入力欄にコメントを入れることができます。

コメントを登録すると以下のようになります。コメントに対してReplyしたり、コメント内容が解決した時は、Resolveすることで、レビューのやりとりをすることができます。

Conversationにコメント

GitHubのConversationにコメントを入れる場合は、Conversationsを開くとコメントを入れたりReplyを入力したりすることができます。もしこのビューを閉じてしまったり、もう一度開きたい場合は、View Conversationsリンクをクリックすることで、開くことができます。

レビューの公開

Start a review with a commentでレビューコメントを入力し、レビューの承認や変更要求を行う場合は、Submit Review...からレビューをApproveRequest ChangesCommentすることができます。

Submit Review...をする前のレビューコメントは、Pendingとなっており、自分以外のユーザーはコメントが見えませんので注意が必要です。

マージ

一通りレビューを終えてマージをする場合は、Merge...をクリックしてダイアログを表示し、コミットコメントを入力しMergeボタンをクリックすることでマージすることができます。

マージ方法についてはGitHub同様に3種類から選択することができます。

  • Create a merge commit
    • Mergeボタンをクリックする(ドロップダウンメニューからは選択できません
  • Squash and merge
    • ドロップダウンメニューからSquash and Merge...を選択
  • Rebase and merge
    • ドロップダウンメニューからRebase and Mergeを選択

GitHub上のマージ方法について - GitHub Docs

もしもコンフリクトが発生している場合は、コンフリクトを解決しないとマージができません。

さいごに

IntelliJ IDEAのGitクライアントも非常に使いやすいと思っていたのですが、GitHub連携も強化されて、更に使いやすくなりましたね。 使い慣れたエディタ上でソースレビューできるのは、思っていた以上に良かったので、是非使ってみてはいかがでしょうか。