保護されたブランチと必須のステータスチェックの設定
リポジトリ管理者は、ブランチの操作を制限するために保護されたブランチを有効化することや、ブランチがプルリクエストでマージされる前、あるいはローカルブランチへのコミットが保護されたリモートブランチへプッシュされる前に、必須のステータスチェックを強制することができます。
リポジトリで保護されたブランチを有効化する
-
GitHub Enterprise で、リポジトリのメインページへ移動します。
-
リポジトリ名の下で [Settings] をクリックします。
-
左のメニューで [Branches] をクリックします。
-
[Protected Branches(保護されたブランチ)] の下で、保護のマークをしたいブランチをドロップダウンメニューから選択してください。
-
Protect this branch(このブランチを保護)を選択してください。
-
[Save changes] をクリックします。
必須ステータスチェックのタイプ
必須ステータスチェックのタイプ | 設定 | マージの要件 | 留意点 |
---|---|---|---|
Strict | [ Require branches to be up-to-date before merging ] チェックボックスにチェックする | マージ前、ブランチは、base ブランチとの関係で 最新でなければならない 。 | これは、必須ステータスチェックのデフォルト動作です。 他のコラボレーターが、保護された base ブランチにプルリクエストをマージした後に、あなたは head ブランチをアップデートする必要が出てくる可能性があるため、追加のビルドが必要になるかもしれません。 |
Loose | [ Require branches to be up-to-date before merging ] チェックボックスにチェック しない | マージ前、ブランチは base ブランチとの関係で 最新でなくてもよい 。 | 他のコラボレーターがプルリクエストをマージした後に head ブランチをアップデートする必要はないことから、必要となるビルドは少なくなります。 base ブランチと競合する変更がある場合、ブランチをマージした後のステータスチェックは失敗する可能性があります。 |
無効 | [ Require status checks to pass before merging ] チェックボックスにチェック しない | ブランチのマージについての制限はない | 必須ステータスチェックが有効化されていない場合、base ブランチにあわせてアップデートされているかどうかに関わらず、コラボレーターはいつでもブランチをマージできます。 このことで、変更の競合が発生する可能性が高まります。 |
必須ステータスチェックを有効にする
-
GitHub Enterprise で、リポジトリのメインページへ移動します。
-
リポジトリ名の下で [Settings] をクリックします。
-
左のメニューで [Branches] をクリックします。
-
[Protected Branches] の下で、必須のステータスチェックのマークをしたいブランチをドロップダウンメニューから選択します。
-
[Require status checks to pass before merging] を選択します。
-
使用可能なステータスチェックのリストから、必須としたいものを選択します。
-
[Include administrators(管理者を含める)] を選択することもできます。そうすれば、リポジトリの管理者に必須ステータスチェックを強制できます。
-
オプションとして、[Require branches to be up to date before merging] の選択を解除します。 選択すると、ベースブランチ上でブランチが最新のコードでテストされるようにできます。
-
Restrict who can push to this branch(このブランチにプッシュできる人を制限)を選択することもできます。
-
保護されたブランチをプッシュする権限を与えるユーザまたはチームを検索して選択します。
-
[Save changes] をクリックします。
参考: 必須ステータスチェックが有効化されているベースブランチにプルリクエストをマージするには、ベースブランチに対するプルリクエストの head ブランチは最新になっていなければなりません。