Skip to main content

現在、GitHub AE は限定的リリースです。

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

ブランチ保護ルールを作成して、1 つ以上のブランチに特定のワークフローを強制することができます。たとえば、承認レビューを要求したり、保護されたブランチにマージされるすべての pull request について状態チェックを渡したりすることができます。

この機能を使用できるユーザー

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

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

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

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

ワイルドカード構文 * を使用して、リポジトリ内の現在および将来のブランチすべてに対する規則を作成できます。 GitHub では File::FNM_PATHNAME フラグを File.fnmatch 構文で使うため、* のワイルドカードがディレクトリの区切り記号 (/) と照合されません。 たとえば、qa/* は、qa/ で始まり、1 つのスラッシュを含むすべてのブランチと照合されますが、qa/foo/bar とは照合されません。 qa の後には、qa/**/* を使用して任意の数のスラッシュを含めることができます。これは、たとえば qa/foo/bar/foobar/hello-world と一致します。 qa**/**/* を使い qa の文字列を拡張して、より包括的にすることもできます。

構文のオプションについて詳しくは、fnmatch のドキュメントを参照してください。

注: GitHub は fnmatch 構文で File::FNM_PATHNAME はサポートされていますが、File::FNM_EXTGLOB はサポートされていません。

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

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

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

使用可能なブランチ保護設定それぞれの詳細については、「保護されたブランチについて」を参照してください。

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

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

注: アクターをバイパス リストに追加できるのは、リポジトリが組織に属している場合のみです。

  1. ご自分のエンタープライズ で、リポジトリのメイン ページへ移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイド バーの [コードと自動化] セクションで、 [ ブランチ] をクリックします。

  4. [ブランチ保護のルール] の横にある [ルールの追加] をクリックします。

  5. "Branch name pattern(ブランチ名のパターン)"の下で、保護したいブランチの名前もしくはパターンを入力してください。

  6. 必要に応じて、必須の pull request を有効化します。

    • Protect matching branches で、 [Require a pull request before merging](マージ前に pull request 必須) を選択します。

    • 必要に応じて、pull request をマージできるように承認を要求するには、 [承認を要求する] を選びます。

      [マージ前に必要な承認回数] ドロップダウン メニューを選び、ブランチで必要な承認レビューの回数をクリックします。

    • 必要に応じて、コードを変更するコミットがブランチにプッシュされたときに pull request 承認レビューを却下するには、 [Dismiss stale pull request approvals when new commits are pushed](新しいコミットがプッシュされたときに古い pull request 承認を却下する) を選択します。

    • 必要に応じて、pull request が影響するコードに所有者が指定されているとき、コード所有者のレビューを必須にするには、 Require review from Code Owners を選択します。 詳しくは、「コードオーナーについて」を参照してください。

    • 必要に応じて、pull request が必須であるときに、特定のアクターがそれを作成せずにコードをブランチにプッシュできるようにするには、 [Allow specified actors to bypass required pull requests](指定したアクターが必須 pull request をバイパスすることを許可) を選択します。 次に、pull request の作成をスキップすることを許可するアクターを探して選択します。

    • 必要に応じて、リポジトリが組織に含まれる場合に、 [Restrict who can dismiss pull request reviews](pull request レビューを却下できるユーザーを制限) を選択します。 次に、検索フィールドで pull request レビューを却下できるアクターを探して選びます。 詳しくは、「プルリクエストレビューの却下」を参照してください。

  7. 必要に応じて、ステータスチェック必須を有効化します。 詳しくは、「ステータスチェックについて」を参照してください。

  8. 必要に応じて、 Require conversation resolution before merging を選択します。

  9. 必要に応じて、 Require signed commits を選択します。

  10. 必要に応じて、 Require linear history を選択します。

  11. 必要に応じて、マージ前に変更を正常にデプロイする必要がある環境を選択するには、 Require deployments to succeed before merging を選択してから環境を選択します。

  12. 必要に応じて、 [上記の規則を管理者に適用する] を選びます。

  13. 必要に応じて、ブランチ制限を有効にします。

    • Restrict who can push to matching branches を選択します。
    • 検索フィールドで、保護されたブランチにプッシュするためのアクセス許可や一致するブランチを作成するためのアクセス許可が付与されるユーザー、Team、またはアプリを探して選びます。
  14. 必要に応じて、Rules applied to everyone including administrators の下で [Allow force pushes](フォース プッシュを許可) を選択します。

    次に、ブランチにフォース プッシュできるユーザーを選びます。

    • Everyone を選択し、リポジトリに対して少なくとも書き込みアクセス許可を持つすべてのユーザー (管理者権限を持つユーザーを含む) が、ブランチにフォース プッシュできるようにします。
    • [Specify who can force push](フォース プッシュできるユーザーを指定する) を選択し、ブランチへのフォース プッシュを特定のアクターに許可します。 次に、そのようなアクターを探して選択します。

    フォース プッシュについて詳しくは、「保護されたブランチについて」をご覧ください。

  15. 必要に応じて、 Allow deletions を選択します。

  16. Create をクリックしてください。

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

  1. ご自分のエンタープライズ で、リポジトリのメイン ページへ移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイド バーの [コードと自動化] セクションで、 [ ブランチ] をクリックします。

  4. 編集しようとするブランチ保護規則の右側の [編集] をクリックします。

  5. ブランチ保護ルールを自由に変更してください。

  6. [変更を保存] をクリックします。

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

  1. ご自分のエンタープライズ で、リポジトリのメイン ページへ移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイド バーの [コードと自動化] セクションで、 [ ブランチ] をクリックします。

  4. 削除しようとするブランチ保護規則の右側の [削除] をクリックします。