記事のバージョン: Enterprise Server 2.17
保護されたブランチと必須のステータスチェックの設定
ブランチの操作を制限するために保護されたブランチを有効化できます。また、ブランチがプルリクエストでマージされる前、あるいはローカルブランチへのコミットが保護されたリモートブランチへプッシュされる前に、必須のステータスチェックを強制することができます。
リポジトリに対する管理者権限があるユーザなら誰でも、ブランチ制限を有効化できます。
リポジトリで保護されたブランチを有効化する
- GitHub Enterpriseで、リポジトリのメインページにアクセスしてください。
- リポジトリ名の下で Settings(設定)をクリックしてください。
- 左のメニューでBranches(ブランチ)をクリックしてください。
- "Branch protection rules(ブランチ保護のルール)"の隣のAdd rule.(ルールの追加)をクリックしてください。
- "Branch name pattern(ブランチ名のパターン)"の下で、保護したいブランチの名前もしくはパターンを入力してください。
- Create(作成)をクリックしてください。
必須ステータスチェックのタイプ
必須ステータスチェックのタイプ | 設定 | マージの要件 | 留意点 |
---|---|---|---|
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(ブランチ)をクリックしてください。
- "Branch protection rules(ブランチ保護のルール)"の隣のAdd rule.(ルールの追加)をクリックしてください。
- "Branch name pattern(ブランチ名のパターン)"の下で、保護したいブランチの名前もしくはパターンを入力してください。
- [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(このブランチにプッシュできるユーザーを制限する)を選択してください。
- 保護されたブランチにプッシュできる権限を持つ人またはチームを検索し、選択します。
- Create(作成)をクリックしてください。
Tip: 必須ステータスチェックが有効化されているベースブランチにプルリクエストをマージするには、ベースブランチに対するプルリクエストの head ブランチは最新になっていなければなりません。