Open1
【GitHub】通常のPRとDraft PRの違いについて
Draftプルリクエスト(PR)と通常のプルリクエストの違い
GitHubなどのバージョン管理システムにおいて、プルリクエスト(PR)はコードの変更を他の開発者に提案し、レビューとマージを行うための手段です。
Draft PRと通常のPR(以下、レギュラーPR)には以下のような違いがあります。
1. 目的とステータスの違い
-
Draft PR(ドラフトPR):
- 目的: 作業中のコードを共有し、進捗状況を他の開発者と共有したり、早期のフィードバックを求めるため。
- ステータス: 「作業中」や「未完成」であることを明示的に示します。
-
レギュラーPR:
- 目的: レビューとマージの準備が整ったコードを提出し、正式なレビューと承認を求めるため。
- ステータス: 「レビュー待ち」や「マージ可能」であることを示します。
2. レビューと通知の挙動
-
Draft PR:
- レビュー: レビューアに自動的なレビューリクエストは送信されません。開発者はまだ正式なレビューを求めていないと解釈されます。
- 通知: 関連者への通知は制限され、過度な通知を防ぎます。
-
レギュラーPR:
- レビュー: 指定したレビューアに自動的にレビュー依頼が送信され、正式なレビューが開始されます。
- 通知: 関連者全員に通知が送られ、適切なアクションが促されます。
3. マージの可否
-
Draft PR:
- マージ不可: ドラフト状態のままではマージボタンが無効化されており、直接マージすることはできません。
- ステータス変更: 開発者が「Ready for review」(レビューの準備ができました)に変更することで、マージ可能な状態になります。
-
レギュラーPR:
- マージ可能: 必要なレビューと承認が得られれば、マージボタンが有効で、直接マージすることができます。
4. 視覚的な違い
-
Draft PR:
- ラベル表示: PR一覧や詳細ページで「Draft」ラベルが表示され、未完成であることが一目で分かります。
-
レギュラーPR:
- 通常表示: 特別なラベルはなく、通常のPRとして表示されます。
5. 変更可能
-
Draft PR:
- 昇格可能: ドラフトからレギュラーPRへ変更(「Ready for review」)できます。
-
レギュラーPR:
- 降格可能: レギュラーPRにすると、ドラフト状態に戻すこともできる。
まとめ
- Draft PRは、開発中のコードを他のチームメンバーと共有し、早期のフィードバックや協力を得るための手段です。正式なレビューやマージはまだ求めていません。
- レギュラーPRは、完成したコードをレビューとマージのために提出する正式なプロセスです。
利用シナリオの例
-
Draft PR:
- 大きな機能を実装中で、進捗をチームと共有したい場合。
- 不明点や設計上の疑問点について早めに意見を求めたい場合。
-
レギュラーPR:
- 機能実装やバグ修正が完了し、コードレビューとマージを行いたい場合。
注意点
- コミュニケーション: ドラフトPRを活用することで、チーム内のコミュニケーションを円滑にし、潜在的な問題を早期に発見できます。
- ワークフローの統一: チームでドラフトPRとレギュラーPRの使い分けルールを明確にすることで、開発プロセスがよりスムーズになります。