インスタンスレベルのマージリクエスト承認者ルール

GitLab Premium12.8で導入されました。

マージリクエスト承認ルールは、ユーザーがプロジェクトレベルで特定の設定を上書きすることを防ぎます。 インスタンスレベルでこれらの設定が有効になっている場合、構成されると、管理者のみがプロジェクトレベルでこれらの設定を変更できます。

インスタンスのマージリクエスト承認ルールを有効にするには、以下の手順に従います:

  1. admin} 管理エリア > プッシュルールに移動し、マージリクエストの承認を展開します。
  2. 必要なルールを設定します。
  3. 変更を保存する]をクリックします。

GitLab管理者はプロジェクトの設定でこれらの設定を上書きすることができます。

利用可能なルール

インスタンスレベルで設定できるマージリクエスト承認ルールは以下のとおりです:

  • マージリクエスト作成者がマージリクエストを承認できないようにします。 プロジェクトメンテナーがリクエスト作成者に自分のマージリクエストをマージできないようにします。
  • マージリクエストコミッターによるマージリクエストの承認を防ぎます。 プロジェクトメンテナーは、ユーザーがソースブランチにコミットを投稿した場合にマージリクエストを承認できないようにします。
  • ユーザーがマージリクエストの承認者リストを変更できないようにする プロジェクト設定や個々のマージリクエストで、プロジェクトメンテナーが承認者リストを変更できないようにします。

コンプライアンス・ラベル付きプロジェクトの範囲規定

GitLab Premium13.1で導入されました。

マージリクエスト承認ルールは、特定のコンプライアンスフレームワークにさらにスコープすることができます。

コンプライアンス フレームワーク ラベルが選択され、プロジェクトにコンプライアンス ラベルが割り当てられると、インスタンス レベルの MR 承認設定が有効になり、プロジェクト レベルの設定は変更できないようにロックされます。

コンプライアンス・フレームワーク・ラベルが選択されていない場合、またはプロジェクトにコンプライアンス・ラベルが割り当てられていない場合は、プロジェクトレベルのMR承認者設定が有効になり、メンテナー以上のロールを持つユーザーは、これらの設定を変更することができます。

インスタンスレベル プロジェクトレベル
Scope MR approval settings to compliance frameworks MR approval settings on compliance projects

機能を有効にする

この機能には2つの機能フラグがあり、デフォルトでは無効になっています。

  • 管理エリアの設定は、admin_compliance_merge_request_approval_settingsを介して制御されます。
  • これらのルールの適用は、project_compliance_merge_request_approval_settingsを介して制御されます。

これらの機能フラグは機能フラグAPIエンドポイントかGitLab RailsコンソールにアクセスできるGitLab管理者が以下のコマンドで管理できます:

Feature.enable(:admin_compliance_merge_request_approval_settings)
Feature.enable(:project_compliance_merge_request_approval_settings)