記事のバージョン: Enterprise Server 2.17
必須ステータスチェックについて
必須ステータスチェックにより、コラボレータが保護されたブランチに変更を加える前に、すべての必須 CI テストにパスしていることが保証されます。
保護されたブランチは、GitHub Free 及びGitHub FreeのOrganizationではパブリックリポジトリでのみ使用でき、GitHub Pro、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server ではパブリックおよびプライベートリポジトリで使用できます。
必須ステータスチェックについて
リポジトリでブランチの保護を強制した場合、必須ステータスチェックをセットアップできます。 詳細は「保護されたブランチを設定する」および「必須ステータスチェックを有効にする」を参照してください。必須 ステータスチェックは、Check または Status にすることができます。 詳しい情報については、「ステータスチェックについて」を参照してください。
必須ステータスチェックを有効化すると、保護されたブランチへのブランチのマージは、すべての必須ステータスチェックにパスするまでできません。 必須ステータスチェックをパスしたら、コミットを別のブランチにプッシュしてから、マージするか、保護されたブランチに直接プッシュする必要があります。
注釈: リポジトリへの書き込み権限があるユーザまたはインテグレーションなら誰でも、リポジトリのステータスチェックを任意のステータスに設定できます。 GitHub Enterprise は、チェックの作者が、特定の名前でチェックを作成したり、既存のステータスを変更したりする権限を持っているかを確認しません。 プルリクエストをマージする前に、マージボックスにリストされている各ステータスの作者が想定された人物であることを確認する必要があります。
リポジトリの管理者は、必須のステータスチェックが失敗したりペンディングになっていたりしても、保護されたブランチをマージできます。 管理者をステータスチェック必須の対象とすることができます。 詳しい情報については、「必須ステータスチェックの有効化」を参照してください。
管理者はまた、ブランチがベースブランチに対して古くなっていたとしても保護されたブランチをマージできます。
必須ステータスチェックの設定
ブランチをマージする前に、ベースブランチが最新である必要があるかどうかに応じて、ステータスチェックを緩めまたは厳密に設定することができます。 詳しい情報については、「必須ステータスチェックのタイプ」を参照してください。
必須ステータスチェックのトラブルシューティング
同じ名前の Check と Status を持っており、その名前をステータスチェック必須とするようにした場合、Check と Status はどちらも必須です。 詳しい情報についてはGitHub 開発者ドキュメンテーション中のチェックを参照してください。
必須ステータスチェックをセットアップした場合、ブランチはマージする前にベースブランチに対して最新になっていなければなりません。 これによって、ブランチがベースブランチからの最新のコードでテストされたことが保証されます。 ブランチが古い場合、ベースブランチをブランチにマージする必要があります。
注釈: Git リベースを使用してブランチをベースブランチに対して最新にすることもできます。 詳しい情報については、「Git リベースについて」を参照してください。
必須ステータスチェックにすべてパスするまでは、ローカルでの変更を保護されたブランチにプッシュすることはできません。 その代わりに、以下のようなエラーメッセージが返されます:
remote: error: GH006: Protected branch update failed for refs/heads/master.
remote: error: Required status check "ci-build" is failing
メモ: 最新で必須のステータスチェックをパスしたプルリクエストは、ローカルでマージしてから保護されたブランチにプッシュできます。 これはマージコミット自体でステータスチェックを実行せずに行えます。