このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2021-06-09. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてください。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してください。

ブランチ保護ルールを管理する

保護されたブランチにマージされる前に、すべてのプルリクエストでレビューへの承認またはステータスチェックへのパスを必須とするなど、1 つ以上のブランチに対して特定のワークフローを強制するため、ブランチ保護ルールを作成できます。

People with admin permissions to a repository can manage branch protection rules.

保護されたブランチは、GitHub Free及びOrganizationのGitHub Freeのパブリックリポジトリ、GitHub Pro、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Serverのパブリック及びプライベートリポジトリで利用できます。

ブランチ保護ルールについて

リポジトリ内のブランチ保護ルールは、特定のブランチ、あるいはすべてのブランチやfnmatch構文で指定した名前のパターンにマッチするブランチに対して作成できます。 たとえば、releaseという語を含む任意のブランチを保護するには、ブランチルールを*release*に対して作成できます。

ワイルドカード構文 * で、リポジトリ内の現在および将来のブランチすべてに対するルールを作成できます。 GitHubは、File.fnmatch 構文に File::FNM_PATHNAME フラグを使用するので、ワイルドカードはディレクトリの区切り文字 (/) には一致しません。 たとえば、qa/* は、qa/ で始まり、1 つのスラッシュが含まれるすべてのブランチにマッチします。 qa/**/* とすると、複数のスラッシュにマッチします。また、より多くのブランチにマッチさせるため、qa の文字列を qa**/**/* とすることもできます。 ブランチのルールに関する構文オプションの詳しい情報については、 fnmatch ドキュメンテーションを参照してください。

リポジトリが同じブランチに影響する複数の保護されたブランチのルールを持っているなら、特定のブランチ名を含むルールがもっとも高い優先順位を持ちます。 同じ特定のブランチ名を参照する保護されたブランチのルールが複数あるなら、最初に作成されたブランチルールが高い優先順位を持ちます。

*?]などの特殊文字を含む保護されたブランチのルールは、作成された順序で適用されるので、これらの文字を持つ古いルールが高い優先順位を持ちます。

既存のブランチのルールに例外を作成するため、特定のブランチ名に対するルールなど、優先度の高いブランチ保護ルールを新しく作成できます。

使用できるブランチ保護設定の各ルールに関する詳しい情報については、「保護されたブランチについて」を参照してください。

ブランチ保護ルールを作成する

ブランチのルールを作成する際に、指定したブランチがリポジトリにしている必要はありません。

  1. GitHub Enterprise Serverで、リポジトリのメインページにアクセスしてください。
  2. リポジトリ名の下で Settings(設定)をクリックしてください。 リポジトリの設定ボタン
  3. 左のメニューでBranches(ブランチ)をクリックしてください。 リポジトリオプションのサブメニュー
  4. "Branch protection rules(ブランチ保護のルール)"の隣のAdd rule.(ルールの追加)をクリックしてください。 ブランチ保護のルールの追加ボタン
  5. "Branch name pattern(ブランチ名のパターン)"の下で、保護したいブランチの名前もしくはパターンを入力してください。 ブランチルールのフィールド
  6. 必要に応じて、Pull Requestレビュー必須を有効化します。
    • [Protect matching branches] で、[Require pull request reviews before merging] を選択します。 プルリクエストレビューの制限チェックボックス
    • [Required approving reviews] ドロップダウンメニューをクリックし、ブランチで必須にする承認レビューの数を選択します。 必須とするレビュー承認の数を選択するドロップダウンメニュー
    • コードを変更するコミットがブランチにプッシュされたときにプルリクエストの承認レビューを却下する場合は、[Dismiss stale pull request approvals when new commits are pushed] を選択します。 新たなコミットがチェックボックスにプッシュされた際に古いプルリクエストの承認を却下するチェックボックス
    • 指定されたオーナーのコードにプルリクエストが影響する場合に、コードオーナーからのレビューを必須にする場合は、[Require review from Code Owners] を選択します。 詳細は「コードオーナーについて」を参照してください。 コードオーナーのレビューを必要とする
    • リポジトリが Organization の一部である場合、[Restrict who can dismiss pull request reviews] を選択します。 そして、Pull Requestレビューを却下できるユーザまたは Team を検索して選択します。 詳しい情報についてはプルリクエストレビューの却下を参照してください。 [Restrict who can dismiss pull request reviews] チェックボックス
  7. 必要に応じて、ステータスチェック必須を有効化します。
    • [Require status checks to pass before merging] を選択します。 必須ステータスチェックのオプション
    • プルリクエストを保護されたブランチの最新コードで確実にテストしたい場合は、[Require branches to be up to date before merging] を選択します。 必須ステータスのチェックボックス、ゆるい、または厳格な
    • 使用可能なステータスチェックのリストから、必須とするものを選択します。 利用可能なステータスチェックの一覧
  8. 必要に応じて、[Require signed commits] を選択します。 [Require signed commits] オプション
  9. 必要に応じて、[Require linear history] を選択します。 必須の直線状の履歴オプション
  10. オプションとして、[Include administrators] を選択します。 [Include administrators] チェックボックス
  11. 必要に応じて、ブランチ制限を有効化します。
    • [Restrict who can push to matching branches] を選択します。 ブランチ制限のチェックボックス
    • 保護されたブランチにプッシュできる権限を持つユーザ、Team、またはアプリを検索し、選択します。 ブランチ制限の検索
  12. 必要に応じて、[Rules applied to everyone including administrators] で [Allow force pushes] を選択します。 フォースプッシュオプションを許可する
  13. 必要に応じて、[Allow deletions] を選択します。 ブランチ削除オプションを許可する
  14. Create(作成)をクリックしてください。

ブランチ保護ルールを編集する

  1. GitHub Enterprise Serverで、リポジトリのメインページにアクセスしてください。
  2. リポジトリ名の下で Settings(設定)をクリックしてください。 リポジトリの設定ボタン
  3. 左のメニューでBranches(ブランチ)をクリックしてください。 リポジトリオプションのサブメニュー
  4. 編集する保護ルールの右にある [Edit] をクリックします。 編集ボタン
  5. ブランチ保護ルールを自由に変更してください。
  6. [Save changes] をクリックします。 [Edit message] ボタン

ブランチ保護ルールを削除する

  1. GitHub Enterprise Serverで、リポジトリのメインページにアクセスしてください。
  2. リポジトリ名の下で Settings(設定)をクリックしてください。 リポジトリの設定ボタン
  3. 左のメニューでBranches(ブランチ)をクリックしてください。 リポジトリオプションのサブメニュー
  4. 削除する保護ルールの右にある [Delete] をクリックします。 削除ボタン

問題がまだ解決していませんか?

GitHubコミュニティで質問するサポートへの連絡