VS Codeを使ってGitHubのPull Requestを管理する

Visual Studio Code
スポンサーリンク

だいぶ以前にVS CodeとGitHubを連携させる方法を紹介しました。

今回はそれと関係してGitHubにおけるPull Request(プルリクエスト)をVS Codeを使って管理する方法を試してみたいと思います。

スポンサーリンク

Pull Request(プルリクエスト)とは

Pull Request(プルリクエスト)とは、GitHubにおいて、あるリポジトリに対してコードの変更を提案する仕組みです。略して「PR」と記載されることもあります。

あるリポジトリ(多くの場合は他の人のレポジトリ)のフォークあるいはブランチに対して行った修正を、元のレポジトリに取り込んでほしいときに行う操作がプルリクエストとなります。

プルリクエストによって変更点の確認とマージができるため、共同開発を安全かつ効率的に行うことができます。

Pull Requestは複数人での共同開発のときに主に利用されますが、一人で開発しているレポジトリでも履歴管理やレビューなどの観点でメリットがあります。

プルリクエストはGitHubの画面(Webサイト)で操作するのが基本ですが、今回はVS Code上から行ってみたいと思います。

スポンサーリンク

準備

実際にプルリクエストを試して見るためにはいくつか準備が必要です。

GitHubアカウントの作成

プルリクエストを試すために自分のGitHubアカウントが必要です。

アカウントの作成は下記を参照してください。

いまさらGitHubを利用してみる
今回はいまさらながらGitHubにアカウントを作成し、使えるようにしてみます。GitHubの画面は英語が基本ですが、情報が多くあるため、問題なくセットアップできると思います。アカウントさえ作っておけば、簡単にレポジトリを作成することができます。また、無料のプランでもプライベートなアカウントを作成できるので、いろいろ活用ができそうです。

テスト用のレポジトリの作成

あとでプルリクエストを試すためにテスト用のレポジトリを作っておきましょう。

レポジトリの作り方も以前の記事を参照してください。

いまさらGitHubを利用してみる
今回はいまさらながらGitHubにアカウントを作成し、使えるようにしてみます。GitHubの画面は英語が基本ですが、情報が多くあるため、問題なくセットアップできると思います。アカウントさえ作っておけば、簡単にレポジトリを作成することができます。また、無料のプランでもプライベートなアカウントを作成できるので、いろいろ活用ができそうです。

今回は「HelloPullRequest」というプライベートなレポジトリを作成しました。

作成したレポジトリ

作成したレポジトリはクローンしておきましょう。クローンするために使用するURLはGitHubの画面からコピーできます。

クローンするためのURLのコピー

URLをコピーしたらgitコマンドを利用してクローンしておきましょう。

git clone コピーしたURL

GitHubとVS Codeの連携

VS Codeの設定をしてVS CodeとGitHubが連携できるようにしておきましょう。

基本的な設定は以前の記事で紹介しています。

VS CodeからGitHubを利用する
今回はVS CodeとGitHubを組み合わせて利用する方法を紹介します。VS CodeとGitHubは相性が良く、VS Codeを利用するとGitHubを簡単に利用することができます。さらに拡張機能を導入するとブランチの様子をグラフィカルに表示したり、誰がどの行を修正したのかをわかりやすく表示させることができます。

この記事で紹介しているGit Historyなどの拡張機能も入れておきましょう。

GitHub Pull Requests拡張機能のインストール

ここが今回の記事のポイントになります。VS Codeからプルリクエストを管理できるようにするために、VS Codeに「GitHub Pull Requests拡張機能」を導入します。

GitHub Pull Requests - Visual Studio Marketplace
Extension for Visual Studio Code - Pull Request and Issue Provider for GitHub

VS Codeの「拡張機能」から「GitHub Pull Request」で検索すると表示されると思いますので、インストールしておきましょう。

GitHub Pull Requests拡張機能

インストールに成功すると左側にGitHubのアイコンが現れるはずです。

GitHubのアイコン

プルリクエストの作成

では早速VS Codeを使ってプルリクエストを作成してみます。

手順としては

  1. 作業用のブランチを作成する
  2. 作業用のブランチでレポジトリのファイルを修正する
  3. プルリクエストを作成する

となります。

作業用のブランチを作成する

クローンしたレポジトリをVS Codeで開くと「main」ブランチとなっているはずです。

左下の「main」を選択するとブランチを操作するためのメニューが表示されるので「新しいブランチの作成」を選択します。

新しいブランチの作成

するとブランチ名を入力するように表示されるので、適当なブランチ名を作成します。今回は「branch-pull-request-test」という名前にしておきます。

ブランチ名の入力

これでブランチの作成は完了です。

レポジトリのファイルを修正する

今回作成したレポジトリにはREADME.mdぐらいしかファイルがないと思いますので、このファイルを修正しておきます。

ブランチ作成時には次のような内容でした。

# HelloPullRequest
Repository for testing "Pull Request"

そこでこのファイルを次のように変更しておきます。

# HelloPullRequest
Repository for testing "Pull Request"

## GitHub Pull Requests Extension
This extension can allow to review and manage GitHub pull requests in Visual Studio Code.

変更が終わったらREADME.mdをステージングしておきます。

変更したファイルをステージング

ステージングが完了したら適当なメッセージを入力してコミットしておきます。ここでは「GitHub Pull Requests拡張機能の情報を追加」とコメントすることにしました。

変更をコミット

コミットを完了したらブランチを発行しておきましょう。

ブランチの発行

これで作成したブランチとコミットした内容がGitHub側に送信され、状態が同期されます。

作成

作成したブランチに基づいてプルリクエストを作成します。

プルリクエストはGitHubのWebサイトで作成できますが、ここではVS Codeからやってみます。

VS Codeの「ソース管理」からレポジトリのエリアにある「Create Pull Request」を選択します。

プルリクエストの作成

これでプルリクエストを作成するためのパネルが表示されます。

プルリクエストの情報を入力

まず、BASEとMERGEに表示されているブランチが正しいことを確認します。今回は作成した「branch-pull-request-test」を「main」に取り込むためのマージリクエストになっています。

次にプルリクエストのタイトルと説明を入力します。タイトルはコミットメッセージが入力されていると思います。その下の説明(Description)の欄には変更の内容を説明する文章を入力しておきましょう。

たぶんDescriptionではMarkdown書式が使えると思います。

最後に「Create」を選択すれば、プルリクエストが作成されます。

プルリクエストの作成に成功すると、VS Codeにプルリクエストの内容が表示されます。

作成したプルリクエスト

ちなみに右上に表示されている「#1」をクリックすると、Webブラウザでプルリクエストが表示されます。

ブラウザでのプルリクエストの表示

プルリクエストの管理

VS Codeを使ってプルリクエスト管理してみます。

プルリクエストの確認

左側のGitHubのアイコン(オクトキャット)を選択するとプルリクエストに関するパネルが表示されます。

作成したプルリクエスト

ここでは「ローカルpull requestブランチ」と「すべてオープン」の2箇所に先ほど作成したプルリクエストが表示されているはずです。

表示されない場合は「PULL REQUESTS」の横に表示される「プルリクエストの更新」を試してみてください。

プルリクエストの更新

内容確認

プルリクエストの内容はプルリクエストを選択して表示される「説明」で表示させることができます。

プルリクエストの内容確認

このようにわざわざブラウザを開かなくてもプルリクエストの内容を確認できるのは便利ではないかと思います。

変更点の確認

プルリクエストで変更されているファイルの中身も確認できます。

プルリクエストを選択すると、変更したファイルの名前が表示されます。

picture 19

差分を確認したいファイルを選択するとエディタエリアに差分が表示されます。

プルリクエストの操作

VS Codeでプルリクエストを表示させるとその画面でプルリクエストの操作できます。

設定項目(フィールド)の変更

レビュー担当者やラベルなどもVS Codeの画面から設定可能です。

フィールドの変更

変更したいフィールドの歯車アイコンを選択して、設定したい値を入力あるいは選択すればOKです。

ここでは「Assignees」に自分を、Labelsに「documentation」を設定してみました。

フィールドを変更した例

プロジェクトを設定するにはあらためてGitHubにサインインする必要があります。

「Sign in with more permissions to see projects」を選択すると次のようなメッセージが表示されるので「許可」を選択します。

GitHubにサインイン

するとブラウザに使用するGitHubアカウントを選択する画面が表示されます。

使用するGitHubアカウント

GitHubアカウントを選択すると、VS Codeに許可する権限が表示されます。

VS Codeに追加の権限を許可

ここではプロジェクトに関する権限が与えられることになることがわかります。問題なければ「Authorize Visual-Studio-Code」を選択します。

GitHubの2要素認証を有効にしている場合は、ここで2要素認証が求められると思います。

認証に成功すると、VS Codeの画面から「Sing in with more permissions to see projects」の表示が消えるはずです。

コメントの追加

プルリクエストに対するコメントも同じ画面で追加できます。

コメントの追加

「Leave a comment」の欄にコメントを入れて「Comment」を選択すればOKです。コメントにはMarkdownも利用できます。

ファイルへのコメント追加

ファイルにコメントを付けることもできます。

コメントを付けたいファイルを開き行頭にマウスポインターを持っていくと「+」が表示されます。

コメントの追加

この「+」を選択すると入力欄が表示されますので、必要なコメントを入力しましょう。

入力したコメントはこんな感じでVS Code上で確認できるようになります。

入力されたコメント

コメントを書くにするためのブラウザとVS Codeを行ったり来たりする必要がなくなり、便利ではないかと思います。

プルリクエストの更新

プルリクエストの確認(レビュー)中に内容を変更したくなる場合もあると思います。

そのような場合は、いつもどおりにファイルを変更し、そのファイルをコミット・プッシュ(同期)します。このときコミット先はプルリクエストを作成したときのブランチである必要があります。

変更を加えてブランチにコミット

ここではREADME.mdに少し説明を追記しました。

プルリクエストの情報を確認すると、今のコミットがプルリクエストに追加されていることがわかります。

プルリクエストの更新

せっかくなのでファイルにコメントを追加して「会話を解決する」をしておきましょう。

会話の解決

私が試したバージョンでは「会話の解決する」を選択しても画面が変わらないので非常にわかりにくです。

GitHubのWebサイトでコメントを「marked this conversation as resolved.」となっているはずです。

プルリクエストのマージ

最後にプルリクエストをマージして、プルリクエストに含まれている変更を反映します。

プリリクエストの詳細を表示させたら、「Merge Pull Request」を選択します。

プルリクエストのマージ

マージの方法として「Create Merge Commit」「Squash and Merge」「Rebase and Merge」が選べますが、通常はデフォルトの「Create Merge Commit」で良いと思います。

マージする内容を確認して問題がなければ「Create Merge Commit」を選択すればマージが実行されます。

マージ実行

マージが完了するとPULL REQUESTSから今のプルリクエストが消えるはずです。

プルリクエストのマージ後

GitHub上でプルリクエストを確認しても「Merged」になっているはずです。また「Pull request successfully merged and closed (プルリクエストは正しくマージされクローズされた)」なっています。

マージ後のプルリクエストの状態

まとめ

今回は「GitHub Pull Requests拡張機能」を使ってVS Code上からGitHubのプルリクエストを操作をしてみました。

この拡張機能を使うとプルリクエストに関する処理をVS Codeで完結することができ、ブラウザとVS Codeを行ったり来たりする必要がなくなります。

プルリクエストを開発プロセスで使っている場合は是非利用したい拡張機能だと思います。

コメント

タイトルとURLをコピーしました