マージリクエスト承認者設定

承認ルールがユースケースに適合するように、マージリクエストの承認者設定を構成できます。また、マージ前に作業を承認する必要があるユーザーの数とタイプを定義する承認ルールも設定できます。マージリクエスト承認設定は、マージリクエストが完了に向かうにつれて、これらのルールがどのように適用されるかを定義します。

マージリクエスト承認設定の編集

マージリクエストの承認設定を表示または編集します:

  1. プロジェクトに移動し、設定 > マージリクエストを選択します。
  2. 承認者を展開します。

承認者の設定

これらの設定は、マージリクエストを承認できる者を制限します:

作成者の承認を防止

13.9でGitLab Premiumに移行しました。

デフォルトでは、マージリクエストの作成者は承認できません。この設定を変更するには

  1. 左側のサイドバーで、設定 > マージリクエストを選択します。
  2. マージリクエストの承認] セクションで、[承認設定] にスクロールし、[作成者による承認を防ぐ] チェックボックスをオフにします。
  3. 変更を保存を選択します。

作成者は、これらのオプションのいずれかを設定しない限り、個々のマージリクエストで承認ルールを編集し、この設定を上書きすることができます:

  • プロジェクト レベルでのデフォルト承認のオーバーライドを防止します。
  • (自己管理インスタンスのみ) インスタンス・レベルでのデフォルト承認のオーバーライドを防止します。インスタンス・レベルで設定すると、プロジェクト・レベルまたは個々のマージ・リクエスト・レベルではこの設定を編集できません。

コミットを追加するユーザーによる承認を防止します。

デフォルトでは、マージリクエストにコミットしたユーザーはそれを承認することができます。プロジェクトレベルでもインスタンスレベルでも、コミッターが自分のマージリクエストを承認できないようにすることができます。これを行うには

  1. 左側のサイドバーで、設定 > マージリクエストを選択します。
  2. マージリクエスト承認セクションで、承認設定までスクロールし、コミットを追加するユーザーによる承認を防止するを選択します。このチェックボックスがクリアされている場合、管理者はインスタンスレベルでこれを無効にしており、プロジェクトレベルでは変更できません。
  3. 変更を保存を選択します。

GitLab のバージョンによって、マージリクエストにコミットしたコードオーナーがその作業を承認できる場合とできない場合があります:

  • GitLab 13.10 以前では、マージリクエストにコミットしたコードオーナーは、マージリクエストが自分の所有するファイルに影響する場合でも承認することができます。
  • GitLab 13.11以降では、マージリクエストが自分の所有するファイルに影響する場合、マージリクエストにコミットしたコードオーナーはそれを承認することができません。

詳しくはGit の公式ドキュメント をご覧ください。

マージリクエストの承認ルールを編集できないようにするには

デフォルトでは、ユーザーはマージリクエストごとにプロジェクトに作成した承認ルールを上書きすることができます。ユーザーがマージリクエストの承認ルールを変更できないようにするには、この設定を無効にします:

  1. 左側のサイドバーで、設定 > マージリクエストを選択します。
  2. マージリクエスト承認セクションで、承認設定までスクロールし、マージリクエストの承認ルールを編集しないを選択します。
  3. 変更を保存を選択します。

この変更は、開いているすべてのマージリクエストに影響します。

承認者にユーザーパスワードを要求

承認者にパスワードによる認証を強制することができます。この権限により、Code of Federal Regulations(CFR) Part 11)で定義されているような承認者の電子署名が可能になります:

  1. Web インターフェイスのパスワード認証を有効にします。
  2. 左側のサイドバーで、設定 > マージリクエストを選択します。
  3. マージリクエストの承認者] セクションで、[承認設定] にスクロールし、[承認するにはユーザーパスワードが必要] を選択します。
  4. 変更を保存を選択します。

ソースブランチにコミットが追加されたときに、すべての承認者を削除します。

デフォルトでは、マージリクエストの承認者は、承認後に変更を追加すると削除されます。GitLab Premium と Ultimate では、マージリクエストに変更が追加された後も既存の承認者を維持することができます:

  1. 左側のサイドバーで、設定 > マージリクエストを選択します。
  2. マージリクエストの承認] セクションで、[承認設定] にスクロールし、[すべての承認を削除] チェックボックスをオフにします。

    note
    この設定は GitLab Free では利用できません。
  3. 変更を保存を選択します。

UI からマージリクエストをリベースしても、承認者は削除されません。 しかし、ターゲットブランチが変更されると、承認者はリセットされます。

コードオーナーのファイルが変更された場合、承認者は削除されます。

GitLab 15.3 で導入されました

コミットが追加されたときに、ファイルが変更されたコードオーナーの承認者のみを削除したい場合:

前提条件

  • 少なくともプロジェクトのメンテナーのロールを持っている必要があります。

そのためには

  1. 左側のサイドバーで、設定 > マージリクエストを選択します。
  2. マージリクエスト承認セクションで、承認設定までスクロールし、ファイルが変更された場合、コードオーナーによる承認を削除を選択します。
  3. 変更を保存を選択します。

設定のカスケード

マージリクエストの承認設定を強制することもできます:

設定がグループやプロジェクトに継承された場合、継承されたグループやプロジェクトでは変更できません。