VS Codeの拡張機能「GitHub Pull Requests and Issues」を使って、VS Code内からプルリクエストを作成する方法を紹介します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
前回はVisual Studio Code(以下、VS Code)からGitHubへローカルリポジトリの内容を公開する方法や、リモートリポジトリをローカルな環境にクローンする方法を見ました。今回はVS Codeからリモートリポジトリへプルリクエストを発行するのに便利な拡張機能を紹介します。
ここでは筆者が個人的に使用しているGitHubの有償アカウントと、筆者の会社のメールアドレスを使って作成した無償アカウントを2人のユーザーと見なして話を進めます(なお、GitHubでは個人が複数のアカウントを使用することは推奨されていません。筆者も本連載でのGitHubの説明が終わったら、これらをマージする予定です)。
前者のアカウントについてはmacOS上で操作することにして、VS Codeの配色テーマは[Dark+]に、GitHubの配色も[Default dark]に設定しました。こちらを仮に「macOS側」と呼ぶことにしましょう。
後者のアカウントについてはWindows上で操作することにして、VS Codeの配色テーマは[Light+]に、GitHubの配色は[Default light]に設定しました。こちらは「Windows側」とします。どちらで操作をしているかはウィンドウの配色で分かると思いますが、なるべくどちらでの操作かを明記するようにします。
macOS側のVS Codeで前回と同様な操作を行って、「pullreq_test」フォルダを作成し、その中にREADME.mdファイルを作成した後にそのフォルダをGitHubに公開しました。今回は中身もなく公開するような内容でもないことからプライベートリポジトリにしています。
そして、Windows側でGitHubにサインインしているアカウントにアクセス権を付与してあります。Windows側のアカウントのでは、このリポジトリをフォークして自分のアカウント上に大本のリモートリポジトリの内容をコピーしてあります。
そして、Windows側のVS Codeではフォークしたリポジトリの内容をローカルにクローンしました。
最後に便利な拡張機能「GitHub Pull Requests and Issues」をインストールしておきましょう。これには[拡張機能]ビューの検索ボックスに「github pull」などと入力して、[GitHub Pull Requests and Issues]を選択し、[インストール]ボタンをクリックするだけです。
インストールが終わると、アクティビティーバーには[GitHub]アイコンが増え、これをクリックすると以下のようにサイドバーに[GitHub]ビューが表示されます。
この画面ではなく、以下のようなサインインを促すビューが表示されたら、[Sign in]ボタンをクリックして、前回と同様な手順で認証を行ってください(といっても、ボタンを何度かクリックするだけです)。
[GitHub]ビューでは、プルリクエストとイシューをVS Codeの内部から発行したり、他者からそれらを受け取って対応したりできるようになっています。以下では、Windows側でREADME.mdファイルに変更を加えて、プルリクエストを作成してみましょう。
ここでは適当にREADME.mdファイルに手を入れました。
この変更をコミットして、変更の同期(プッシュ&プル)を実行すると、その変更はフォークしたリモートリポジトリに反映されます。
ですが、大本のリモートリポジトリには反映されていません。開発者が自分のリモートリポジトリに反映した変更を、大本のリモートリポジトリに取り込んでもらうためにはプルリクエストを作成し、そのコードをレビューしてもらい、問題がないことを確認してもらう必要があります。これは以下のように、GitHubのWebサイトからも行えます。
しかし、VS CodeとWebブラウザの間で操作を切り替えるのは、些細なことのようでも面倒です。そこで、先ほどインストールした拡張機能が役立ちます。VS Codeの中からプルリクエストを作成するには[GitHub]ビューの[Pull Requests]ペーンにある[Create Pull Request]ボタンをクリックします。
これをクリックすると、ビューが[GitHub Pull Request]に切り替わって、次のようになります(アクティビティーバーにも[GitHub Pull Request]アイコンが増えていることに注目してください)。
このビューの上にある領域にはマージしたい内容(Windows側で行った変更)が表示され、その下にある領域にはマージ先(ここでは大本のリモートリポジトリ)を記入されています。さらにプルリクエストのタイトルとその説明を入力する領域もあります。これらを入力して、[Create]ボタンをクリックすると、プルリクエストがフォーク元へと送られます。
また、VS Codeの画面は次のように変わり、ここでレビューアーや担当者を指定したり、ラベルを設定したりといった作業も行えます。
プルリクエストを作成した後で、大本のリモートリポジトリで[Pull Request]タブを選択したところが以下の画像です。
Webブラウザでもこのリクエストに対処できますが、macOS側のVS Codeにもこの拡張機能をインストールしていれば、以下のようにリクエストが作成されたことが通知されます(表示されていなければ、[Pull Requests]ペーンにある[Refresh Pull Requests List]ボタンをクリックします)。
自分がレビューアーや担当者として指定された場合には、[Waiting For My Review]や[Assigned To Me]にそのリクエストが表示されます。上の画像では[All Open]が展開され、先ほど作成したリクエストが表示されています。これをさらに展開して、[Description]をクリックすると、次のようにプルリクエストの詳細が表示されます。
また、[README.md]をクリックすれば、どのような変更が行われたかをVS Code内で参照できます。
必要があれば、先ほどの画面でコメントを残して、プルリクエストを作成した側に意見を伝えたり、間違いがあればそのことを伝えたりできます。が、今回はコンフリクトも問題もないので、そのまま[Merge Pull Request]ボタンをクリックしてしまいましょう(さらに[Create Merge Commit]ボタンもクリックします)。これで、大本のリモートリポジトリに先ほどの変更が取り込まれます。
実際にコードをマージできるようになるまでには、管理権限を持つ人からの承認を(必要な数だけ)受ける必要もあるかもしれません。が、VS Codeでプルリクエストを作成するおおまかな手順はこんな感じです。
次回は、この拡張機能についてもう少し詳しく見てみることにします。
Copyright© Digital Advantage Corp. All Rights Reserved.