リポジトリ メンテナである場合、共同作成者がリポジトリ内で作成する pull request を管理および標準化するには、いくつか方法があります。 これらの手順は、適切な担当者が pull request を確認し、リポジトリの基準を満たすように確保するために役立ちます。
Pull request テンプレートの使用
pull request テンプレートを使用すると、他のユーザーがリポジトリに pull request を作成するときに含める情報をカスタマイズおよび標準化できます。 リポジトリにプルリクエストのテンプレートを追加すると、プロジェクトのコントリビューターはプルリクエストの本体にテンプレートの内容を自動的に見ることになります。 詳しくは、「リポジトリ用のプルリクエストテンプレートの作成」をご覧ください。
pull request テンプレートを使用して、リポジトリのレビュー プロセスを標準化できます。 たとえば、テンプレートにタスク一覧を追加することで、作成者が pull request をマージする前に完了させるタスクの一覧を含めることができます。 詳しくは、「タスクリストについて」をご覧ください。
pull request をマージすると issue を自動的に閉じることができるように、共同作成者に pull request 本文に issue の参照を含めるように要求できます。 詳しくは、「Pull RequestをIssueにリンクする」をご覧ください。
コード所有者の定義
特定の個人がリポジトリ内の特定のコードまたはファイルに対する変更を常にレビューすることを確認する場合があります。 たとえば、チームのテクニカル ライターが docs
ディレクトリの変更を常にレビューする必要がある場合があります。
コード所有者となるリポジトリ中のコードに対して責任を負うと考えられる個人あるいはチームを指定できます。 コード所有者は、他者が所有するファイルを変更するプルリクエストをオープンすると、自動的にレビューをリクエストされます。 特定の種類のファイルまたはディレクトリ、およびリポジトリ内の異なるブランチに対してコード所有者を定義できます。 詳しくは、「コードオーナーについて」をご覧ください。
保護されたブランチの使用
保護されたブランチを使用すると、特定の条件が満たされるまで、pull request が main
などの重要なブランチにマージされるのを防ぐことができます。 たとえば、CI テストや承認レビューに合格することを要求できます。 詳しくは、「保護されたブランチについて」をご覧ください。
プッシュ ルールセットの使用
プッシュ ルールセットを使用すると、ファイル拡張子、ファイル パスの長さ、ファイルとフォルダーのパス、ファイル サイズに基づいて、プライベート リポジトリまたは内部リポジトリとそのリポジトリのフォーク ネットワーク全体へのプッシュをブロックできます。
プッシュルールはリポジトリへのすべてのプッシュに適用されるため、ブランチのターゲット設定は必要ありません。
プッシュ ルールセットを使用すると、次のことができるようになります。
-
ファイル パスを制限する: 指定したファイル パスに変更を含むコミットがプッシュされないようにします。
これには
fnmatch
の構文を使用できます。 たとえば、test/demo/**/*
を対象とする制限により、test/demo/
ディレクトリ内のファイルまたはフォルダーへのプッシュが禁止されます。test/docs/pushrules.md
を対象とした制限により、test/docs/
ディレクトリ内のpushrules.md
ファイルへのプッシュが禁止されます。 詳しくは、「リポジトリのルールセットの作成」を参照してください。 -
ファイル パスの長さを制限する: 指定した文字制限を超えるファイル パスを含むコミットがプッシュされないようにします。
-
ファイル拡張子を制限する: 指定したファイル拡張子を持つファイルを含むコミットがプッシュされないようにします。
-
ファイル サイズを制限する: 指定したファイル サイズの制限を超えるコミットがプッシュされないようにします。
フォークされたリポジトリのプッシュ ルールセットについて
プッシュ ルールは、リポジトリのフォーク ネットワーク全体に適用され、リポジトリへのすべてのエントリ ポイントが確実に保護されます。 たとえば、プッシュルールセットが有効になっているリポジトリをフォークした場合、フォークされたリポジトリにも同じプッシュルールセットが適用されます。
フォークされたリポジトリの場合、プッシュ ルールのバイパス アクセス許可を持つユーザーは、ルート リポジトリのバイパス アクセス許可を持つユーザーだけです。
詳しくは、「ルールセットについて」をご覧ください。
自動ツールを使ってコード スタイルを確認する
リポジトリの pull request でリンターなどの自動化されたツールを使用して、一貫性のあるスタイルを維持し、コードをより理解しやすくします。 自動化されたツールを使用して、入力ミスやスタイルなどの小さな問題をキャッチすると、レビュー担当者が pull request の内容に集中するための時間を多く取れるようになります。
たとえば、GitHub Actions を使用して、継続的インテグレーション (CI) ワークフローの一部として pull request で実行できるコード リンターを設定できます。 詳しくは、「GitHub Actions による継続的インテグレーションについて」をご覧ください。