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の使い分けルールを明確にすることで、開発プロセスがよりスムーズになります。