マージリクエスト承認者

マージリクエストは、マージする前に承認者が必要なように設定することができます。GitLab Freeでは、Developer以上の権限を持つすべてのユーザーがマージリクエストを承認することができますが、これらの承認はオプションです。GitLab Premiumと GitLab Ultimateはさらに柔軟性を提供します:

  • 作業をマージする前に、承認者の数とタイプについて必要なルールを作成します。
  • 特定のファイルのコードオーナーとして機能するユーザーのリストを指定し、作業をマージする前にそのユーザーの承認を必要とします。

マージリクエスト承認者はプロジェクトごとに設定でき、一部の承認者はグループレベルで設定できます。マージリクエスト承認ルールのグループレベルの設定のサポートは、このエピックで追跡されています。GitLab Premiumと GitLab UltimateのセルフマネジメントGitLabインスタンスの承認者は、インスタンス全体の承認を設定することもできます。

承認の仕組み

マージリクエスト承認ルールでは、作業をプロジェクトにマージする前に必要な承認者の最小数を設定できます。また、これらのルールを拡張して、どのタイプのユーザーが作業を承認できるかを定義することもできます。作成できるルールの例には、次のようなものがあります:

設定することもできます:

マージリクエストを承認する

資格のある承認者がオープンなマージリクエストにアクセスすると、GitLab はマージリクエストの本文の後にこれらのボタンのいずれかを表示します:

  • 承認します:承認:マージリクエストにはまだ必要な数の承認者がいません。
  • 追加で承認します:マージリクエストは必要な数の承認者を持っています。
  • 承認を取り消します:マージリクエストを表示しているユーザーは、すでにマージリクエストを承認しています。

承認者は、マージリクエストにコメントを追加する際に/approve クイックアクションを使用することもできます。 GitLab 13.10 以降では、ユーザーがマージリクエストを承認してレビュアーリストに表示されると、名前の横に緑のチェックマーク({check-circle-filled})が表示されます。

設定した数と種類の承認者をマージ リクエストが受け取った後、別の理由でブロックされない限り、マージできます。マージリクエストは、マージ競合、未解決スレッド失敗した CI/CD パイプラインなどの他の問題によってブロックされることがあります。

マージリクエスト作成者が自分のマージリクエストを承認できないようにするには、次の設定を有効にします。 作成者の承認を防ぐを有効にしてください。

承認ルールのオーバーライドを有効にすると、デフォルトの承認ルールに変更する前に作成されたマージリクエストは影響を受けません。唯一の例外は、ルールの対象ブランチの変更です。

オプションの承認者

GitLab 13.2 で導入されました

GitLab では Developer 以上の権限を持つすべてのユーザーがマージリクエストを承認することができます。GitLab Freeでの承認者はオプションであり、承認なしでマージリクエストがマージされるのを防ぐことはできません。

必要な承認者

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

必要な承認者は、指定したユーザー数とタイプによるコードレビューを強制します。承認者がいなければ、作業はマージできません。必須承認者は複数のユースケースを可能にします:

無効なルール

フラグ: セルフマネジメントのGitLabでは、デフォルトでこの機能が利用可能です。この機能を隠すには、管理者がinvalid_scan_result_policy_prevents_mergeという機能フラグを無効にします。

承認ルールが満たされない場合、そのルールは常にAuto approved と表示されます。これは以下の条件に適用されます:

  • 承認者はマージリクエストの作成者のみです。
  • 承認ルールに資格のある承認者(グループまたはユーザー)が割り当てられていません。
  • 必要な承認の数が、資格のある承認者の数を超えています。

これらのルールは、スキャン結果ポリシーによって作成されていない限り、自動的に承認され、それぞれのマージ リクエストのブロックを解除します。スキャン結果ポリシーによって作成された無効な承認ルールにはアクションが必要であると表示され、自動的に承認されないため、それぞれのマージ リクエストがブロックされます。