今回はGitHubのプルリクエストについて紹介します。普段からプルリクエストを使っている方でも役立つプラスアルファのTipsをまとめていますので、最後までお付き合いください。プルリクエストとは?プルリクエストとは、コードの変更をレビュワーに通知し、マージを依頼する機能です。コードのレビューを受けることで、1人で作ると気がつかないコードの指摘やバグや記述ミスの発見ができ、コードの品質を高めます。レビュワーにとっても、他人が書いたコードを読むことで新しい書き方を発見できるというメリットがあります。コードから発展してプロジェクトに関する有意義な議論の場になることもあるでしょう。プルリクエストを導入した際の流れは次のとおりです。GitHubにブランチをプッシュする」より先の項目はすべてGitHub上で完結でき、難しい操作は必要ありません。開発者がGitHubにブランチをプッシュする開発者がブランチからプルリクエストを作成するレビュワーがコードをレビューするブランチをマージするプルリクエストを送ってみよう今回は、自分が所属するチームのリポジトリにプルリクエストを送る手順を解説します。親となるブランチに、親ブランチから分岐してできた子ブランチをマージする手順を追ってみましょう。Request]ボタンを押して、プルリクエストの作成を開始します。親ブランチと子ブランチ名を選択するブランチ名が書かれたコンボボックスから、ブランチを選びます。左側のブランチに親ブランチ、右側に子ブランチを選択します。プルリクエストの内容を確認するコンボボックスでブランチを選択すると、コミット履歴とソースコードの差分が表示されます。request]ボタンを押して、プルリクエストの詳細を作成する画面へ移動します。request]ボタンを押し、プルリクエストの作成を完了します。この画面では、プルリクエストのタイトルと詳細について設定できます。プルリクエストのフォーマットはチーム内で決めるものですが、次の項目を意識するとレビューの観点が明らかになり、後ほどトラブルがあった場合も見直しやすくなります。マイルストーンを選択します([Issues]画面の[milestone]ボタンから作成可能)レビュー機能を活用しようプルリクエストの画面では、コードのコミット履歴やファイルの変更箇所が分かりやすく表示され、レビュワーにレビューを依頼できます。Changes画面でレビューを開始レビュワーは気になるソースコードに対してコメントを書いてフィードバックを送ります。ソースコードの行にマウスカーソルを当てると[+]ボタンが表示されるので、気になる行の[+]ボタンを押し、コメントを記入します。Review]ボタンを押し、レビューを開始します。review]ボタンを押してレビューを送信します。Changes]画面では、ファイルの変更箇所が分かりやすく表示されている。ソースコードに対してコメントできる。Conversation画面でレビューを一覧[Conversation]画面では誰がどこに対してレビューしたかや、レビュワーのレビュー状態を確認できます。レビューが完了し、コードに問題があれば同じブランチに修正したコードをプッシュしてもらい、再度レビューを行います。request]ボタンを押し、ブランチをマージします。[Converion]画面ではレビュー内容が表示される。どこにレビューが行われたかやレビュー状態を確認できる。Tips:CONTRIBUTINGファイルでプルリクエストの品質を高めるリポジトリの直下か.githubフォルダー以下にCONTRIBUTINGファイルを作成すると、プルリクエストの新規作成画面にCONTRIBUTINGファイルへのリンクが記載されます。このファイルを作成しておくことで、プルリクエストやIssueを送る際のルールの周知を行えます。CONTRIBUTINGファイルへのリンクが表示されている。CONTRIBUTINGファイルの例(Atom)。プロジェクトの概要やコントリビュートする際のルールが記載されている。Tips:PULL_REQUEST_TEMPLATEファイルでプルリクエストの定型文を決めるリポジトリの直下か.githubフォルダー以下にPULL_REQUEST_TEMPLATEファイルを用意することで、プルリクエストの新規作成時の初期テキストを設定できます。「プルリクエストを送るに至った経緯」「マージすることで期待できる結果」「このプルリクエストでは行わないこと」「マージ後のリスク」「関連のIssueやURL」等の最低減の必要なプルリクエストのテンプレートを作成しておくことで、レビュワーは一定の情報を持ってプルリクエストを受けることができ、不要な質問のやり取りを減らせます。Tips:タスクリストを作成する次のフォーマットでプルリクエストの詳細の入力欄に記入すると、チェックボックスを作成できます。したテスト項目など、作業の管理に使うと便利です。完了済みのタスク2まとめプルリクエストを導入することで、チーム全体のコードやプロジェクトの理解が高まり、コンテンツの品質を上げることができます。平成29年8月30日に内容をメンテナンスしています。のぞみインタラクティブデベロッパー。好きな生き物はハムスター、好きな食べ物は豚汁です。ツールは使うより作りたい派。MEDIAは株式会社ICSが運営するオウンドメディアです。ICSはインタラクションデザイン専門のプロダクション。最先端のwebテクノロジーを駆使し、オンスクリーンメディアの表現分野で活動しています。問い合わせ採用情報インタラクションコンテンツの制作や新しいことに挑戦しながら、互いにスキルを高め合えるメンバーをICSでは募集しています。詳しくは採用情報をご覧ください。MEDIAは古い記事でもメンテナンスし続けることで、常に役立つ情報発信を目指しています。