Pull Request
プルリクエストとは何か?
プルリクエスト(Pull Request、略称PR)は、GitHub上でコードの修正や新規機能作成をレビューするための重要な機能です。
GitHubを使用する多くのプロジェクトでは、コードの修正・新規機能作成をした後、他の開発者やプロジェクト管理者に内容を確認してもらうためにプルリクエストが使われています。
プルリクエストを介して、コードの修正・追加を他の人に確認・指摘してもらい、最終的にコードをプロジェクトにマージします。
なぜプルリクエストが必要なのか?
他の開発者にソースコードをレビューしてもらうことで、未然にバグを解消したり誤った記述を修正できるため、品質が保証されたソースコードをリリースすることが可能になります。
プルリクエストには、コードレビューを簡潔にするための以下の機能があります。
プルリクエストの機能
-
変更箇所の比較表示
GitHubでプルリクエストを送るとリポジトリ変更前と変更後の差分比較が簡単に行えます。 この機能によりどこに変更を加えたのか、適切な変更なのかを他の開発者が判断しやすくなります。 -
コメント機能
プルリクエストが送られたソースコードにはコメント機能を使って他の開発者からのレビュー内容を記述することも可能です。 変更内容に問題がある場合や、より良い変更方法をチーム内で共有し改善することが出来ます。 -
他の開発者への変更通知
プルリクエストを任意の開発者を指定して送ることで、指定した開発者がリポジトリに変更があったことを通知として受け取ることが出来ます。
プルリクエストの作成手順
プルリクエスト作成手順からマージされるまでの一連の流れを説明します。
1. プルリクエストの作成
ローカルからGitHubへプッシュしてしばらくの間は画像の赤枠のように「Compare & pull request」のボタンが表示されるのでこちらをクリックしてプルリクエストの作成を進めていきましょう。
時間が経って表示されなくなってしまった場合、「Pull requets」タブの「New pull request」ボタンからプルリクエストを作成することが可能です。

2. プルリクエストのブランチの設定・タイトル・内容入力
プルリクエストを作成すると、マージ先のブランチを設定します。
左側の「base: main」と表示されている方がマージ先のブランチで、右側の「compare: feature/1」と表示されている方がコードを修正したマージしたいブランチです。
下の赤枠にはプルリクエストのコメントと内容を記述します。
入力が完了したら「Create pull request」ボタンをクリックしてプルリクエストの作成完了です。

Work in Progress(WiP)
1. Work in Progress(WiP)とは
Work in Progress(WiP)とは新規作成・修正がまだ完了していないことを示すためにWiPマークを使用できます。
これは、他の開発者に対して「これはまだ最終版ではない」という警告の意味を持ちます。
またWiP状態だと、プルリクエストをマージすることは出来ません。
WiPのマークは、プルリクエストがどの段階にあるかを示し、プロジェクトの進行状況を追跡するのに役立ちます。
開発者はコードの一部を共有し、他のチームメンバーやコミュニティのフィードバックを受けながら、作業を進めることができます。
2. Work in Progress(WiP)の設定
プルリクエストの作成時に、WiPの設定を行うことが出来ます。
「Create draft pull request」を選択することで、プルリクエストをWiP状態にすることが出来ます。

プルリクエストの作成後に、WiPの設定を行うことも出来ます。
「Convert to draft」を選択することで、プル リクエストをWiP状態にすることが出来ます。

2. Work in Progress(WiP)の解除
新規作成・修正が完了した場合は「Ready for review」を選択することで、プルリクエストをWiP状態から解除することが出来ます。

3. プルリクエストの確認
プルリクエストが作成出来たら「Pull requests」のタブ右側に数値が表示されるようになりますので作成したプルリクエストを確認します。
GitHub上ではコミットの詳細、変更内容の確認を行える機能があります。

コミット履歴の確認
コミット履歴の確認を実施する場合、「Commits」のタブを開くことでコミット単位でコミットの内容を確認出来ます。
コミット一覧

コミット詳細

GitHub Actionsの確認
GitHub Actionsの確認を実施する場合、「Checks」のタブを開くことでGitHub Actionsの実行結果を確認出来ます。
GitHub Actions は、ビルド、テスト、デプロイのパイプラインを自動化できるプラットフォームです。
リポジトリに対するすべての pull request をビルドしてテストしたり、マージされた pull request を運用環境にデプロイしたりするワークフローを作成することができます。
例えばpull requestが作成された時に、自動でPHPstanやPHP_CodeSnifferなどの静的解析ツールを実行してコードのチェックすることが出来ます。
GitHub Actionsについては詳しくは下記を参照してください。
https://docs.github.com/ja/rest/guides/using-the-rest-api-to-interact-with-checks?apiVersion=2022-11-28
GitHub Actionsの実行結果

「Checks」のタブ内でも、GitHub Actionsを確認出来ますが「Conversation」内でも確認できます。

ファイル全体の変更差分の確認
ファイル全体の変更差分の確認を実施する場合、「File change」のタブを開くことで全ファイルの修正内容を確認出来ます。