どうも、京都のスタートアップ企業でアプリを開発しているエンジニア、クウルス(@Qoo_Rus)です。
うちの会社の開発チームでは、普段はリモートで取り組み、週1回ミーティングをするというスタイルをとっています。
だからこそチャットサービスのSlackやソースコードバージョン管理に使うGitHub上でのコミュニケーションがより重要です。
加えて私はチーム内では一番経験の浅いエンジニアなので、1週間で決まった取り組みでわからないことや相談したいことができた場合、未完成の状態でもGitHubでソースコードを共有することがしょっちゅうあります。
だけど、未完成のままのソースコードをPullRequestに出すと、間違ってマージをしてしまう可能性があってちょっと怖いですね。
そんな時に使えるのが
Draft Pull Request
という機能です。
マージを防止した状態でPull Requestが出せるので、とっても安心です。
個人向けのリポジトリでは使えないのが少し残念なところですが。
この記事では
- Draft Pull Requestの使い方
- Draft Pull Requestを使えるリポジトリ
についてお話します。
Contents
Draft Pull Requestの使い方
GitHub公式のPull Requestヘルプページに書かれているDraft Pull Requestsの説明です。
https://help.github.com/en/articles/about-pull-requests#draft-pull-requests
GitHub公式のPull Requestを紹介するブログです。
https://github.blog/2019-02-14-introducing-draft-pull-requests/
Create Draft Pull Requestを選択する

Pull Requestを出す際に、通常なら「Create Pull Request」をクリックしてOpenにしますが、ここで画像のように「Create Draft Pull Request」をクリックをしてやるだけで、未完成のPRが出せます。
すると
“This pull request is still a work in progress.”
(訳:このプルリクエストはまだ作業中です)
と表示され、マージボタンが押せない状態でのPRとなります。
完成したらReady for reviewを押す

作業が終わってマージボタンを押せるようにしたい場合は「Ready for review」をクリックします。
そうすると、通常のOpen状態のPRに切り替わります。
Draft Pull Requestは全リポジトリで使えるわけじゃない

GitHubでは個人向けのプランとチーム向けのプランがありますが、Draft Pull Requestは基本的に複数人での開発を想定した(と思われる)機能なので、プランごとの機能制限がかかっています。
ここでの情報は2019年10月20日(日)時点での公式ページの料金表に基づいて書いています。
今後のGitHubの仕様変更などで、使用可能なプランが変わる可能性もあります。
GitHub公式ページの料金表
個人向けはパブリックで使えて、プライベートで使えない
個人向けプランはFree(無料プラン), Pro(有料プラン)共にPublic repositoriesのみでDraft Pull Requestが使用可能です。
チーム向けはパブリックとプライベート両方使える
チーム向けプランでは全てPublic, Private問わずにDraft Pull Requestが使用可能です。
チーム開発でのコミュニケーションをより良くするためにDraft PRを活用しよう
チーム内で技術に差がある場合は、作業の途中でもソースコードを共有して相談をしたくなることがたくさんあります。(私がそうです)
また、マージされずにcloseされるPRもチーム開発におけるコミュニケーションでは非常に重要です。
Draft PRで、チーム開発でのコミュニケーションをより良くしていきましょう!
では再度ポイントの整理をして終わります。
- Draft Pull Requestでマージを防いだ状態でPull Requestが出せる
- Ready for Reviewを押して、マージを有効にできる
- 個人向け(パブリックのみ)、チーム向けでDraft Pull Request使用可能