- マージリクエスト承認設定の編集
- 作成者の承認を防止
- コミットを追加するユーザーによる承認を防止します。
- マージリクエストの承認ルールを編集できないようにするには
- 承認者にユーザーパスワードを要求
- ソースブランチにコミットが追加されたときに、すべての承認者を削除します。
- コードオーナーのファイルが変更された場合、承認者は削除されます。
- 設定のカスケード
- 関連するトピック
マージリクエスト承認者設定
承認ルールがユースケースに適合するように、マージリクエストの承認者設定を構成できます。また、マージ前に作業を承認する必要があるユーザーの数とタイプを定義する承認ルールも設定できます。マージリクエスト承認設定は、マージリクエストが完了に向かうにつれて、これらのルールがどのように適用されるかを定義します。
マージリクエスト承認設定の編集
マージリクエストの承認設定を表示または編集します:
- プロジェクトに移動し、設定 > マージリクエストを選択します。
- 承認者を展開します。
承認者の設定
これらの設定は、マージリクエストを承認できる者を制限します:
- 作成者が承認できないようにします。:マージリクエストの作成者が承認できないようにします。
- コミットを追加したユーザーによる承認者を防ぎます。:マージリクエストにコミットを追加したユーザーによる承認を防ぎます。
- マージリクエストの承認ルールを編集できないようにします。:ユーザーがマージリクエストのプロジェクトレベルの承認ルールを上書きできないようにします。
- 承認者にユーザーパスワードを要求:承認者にパスワードを要求します。
- コードオーナー承認の削除:マージリクエストにコミットが追加されたときに、既存の承認者がどうなるかを定義します。
- 承認者を保持します:承認者を削除しません。
- すべての承認者を削除:既存の承認者をすべて削除します。
- ファイルが変更された場合、コードオーナーによる承認者を削除します。:コードオーナーがマージリクエストを承認し、後のコミットでコードオーナーであるファイルが変更された場合、その承認者は削除されます。
作成者の承認を防止
13.9でGitLab Premiumに移行しました。
デフォルトでは、マージリクエストの作成者は承認できません。この設定を変更するには
- 左側のサイドバーで、設定 > マージリクエストを選択します。
- マージリクエストの承認] セクションで、[承認設定] にスクロールし、[作成者による承認を防ぐ] チェックボックスをオフにします。
- 変更を保存を選択します。
作成者は、これらのオプションのいずれかを設定しない限り、個々のマージリクエストで承認ルールを編集し、この設定を上書きすることができます:
- プロジェクト レベルでのデフォルト承認のオーバーライドを防止します。
- (自己管理インスタンスのみ) インスタンス・レベルでのデフォルト承認のオーバーライドを防止します。インスタンス・レベルで設定すると、プロジェクト・レベルまたは個々のマージ・リクエスト・レベルではこの設定を編集できません。
コミットを追加するユーザーによる承認を防止します。
- 13.9でGitLab Premiumに移行しました。
- GitLab 16.3 で機能フラグ
keep_merge_commits_for_approvals
が追加され、マージコミットもこのチェックに含まれるようになりました。
デフォルトでは、マージリクエストにコミットしたユーザーはそれを承認することができます。プロジェクトレベルでもインスタンスレベルでも、コミッターが自分のマージリクエストを承認できないようにすることができます。これを行うには
- 左側のサイドバーで、設定 > マージリクエストを選択します。
- マージリクエスト承認セクションで、承認設定までスクロールし、コミットを追加するユーザーによる承認を防止するを選択します。このチェックボックスがクリアされている場合、管理者はインスタンスレベルでこれを無効にしており、プロジェクトレベルでは変更できません。
- 変更を保存を選択します。
GitLab のバージョンによって、マージリクエストにコミットしたコードオーナーがその作業を承認できる場合とできない場合があります:
- GitLab 13.10 以前では、マージリクエストにコミットしたコードオーナーは、マージリクエストが自分の所有するファイルに影響する場合でも承認することができます。
- GitLab 13.11以降では、マージリクエストが自分の所有するファイルに影響する場合、マージリクエストにコミットしたコードオーナーはそれを承認することができません。
詳しくはGit の公式ドキュメント をご覧ください。
マージリクエストの承認ルールを編集できないようにするには
デフォルトでは、ユーザーはマージリクエストごとにプロジェクトに作成した承認ルールを上書きすることができます。ユーザーがマージリクエストの承認ルールを変更できないようにするには、この設定を無効にします:
- 左側のサイドバーで、設定 > マージリクエストを選択します。
- マージリクエスト承認セクションで、承認設定までスクロールし、マージリクエストの承認ルールを編集しないを選択します。
- 変更を保存を選択します。
この変更は、開いているすべてのマージリクエストに影響します。
承認者にユーザーパスワードを要求
- GitLab 12.0から導入されました。
- 13.9でGitLab Premiumに移行しました。
承認者にパスワードによる認証を強制することができます。この権限により、Code of Federal Regulations(CFR) Part 11)で定義されているような承認者の電子署名が可能になります:
- Web インターフェイスのパスワード認証を有効にします。
- 左側のサイドバーで、設定 > マージリクエストを選択します。
- マージリクエストの承認者] セクションで、[承認設定] にスクロールし、[承認するにはユーザーパスワードが必要] を選択します。
- 変更を保存を選択します。
ソースブランチにコミットが追加されたときに、すべての承認者を削除します。
デフォルトでは、マージリクエストの承認者は、承認後に変更を追加すると削除されます。GitLab Premium と Ultimate では、マージリクエストに変更が追加された後も既存の承認者を維持することができます:
- 左側のサイドバーで、設定 > マージリクエストを選択します。
-
マージリクエストの承認] セクションで、[承認設定] にスクロールし、[すべての承認を削除] チェックボックスをオフにします。
この設定は GitLab Free では利用できません。 - 変更を保存を選択します。
UI からマージリクエストをリベースしても、承認者は削除されません。 しかし、ターゲットブランチが変更されると、承認者はリセットされます。
コードオーナーのファイルが変更された場合、承認者は削除されます。
GitLab 15.3 で導入されました。
コミットが追加されたときに、ファイルが変更されたコードオーナーの承認者のみを削除したい場合:
前提条件
- 少なくともプロジェクトのメンテナーのロールを持っている必要があります。
そのためには
- 左側のサイドバーで、設定 > マージリクエストを選択します。
- マージリクエスト承認セクションで、承認設定までスクロールし、ファイルが変更された場合、コードオーナーによる承認を削除を選択します。
- 変更を保存を選択します。
設定のカスケード
- GitLab 14.4で導入。
group_merge_request_approval_settings_feature_flag
フラグの背後でデプロイされ、デフォルトでは無効になっています。- GitLab 14.5ではデフォルトで有効。
- GitLab 14.9で機能フラグ
group_merge_request_approval_settings_feature_flag
が削除されました。
マージリクエストの承認設定を強制することもできます:
- インスタンス レベルでは、インスタンス上のすべてのグループ、したがってすべてのプロジェクトに適用されます。
- トップレベルのグループで、すべてのサブグループとプロジェクトに適用されます。
設定がグループやプロジェクトに継承された場合、継承されたグループやプロジェクトでは変更できません。