Configure approvals per merge request in widget

Description

Required 1 approval without specific users

01-approval--required-1--approver

Required 1 approval with specific users
  • It has a check icon in front of the selected user in the list.

  • The avatar of the selected user shows up in the widget.

02-approval--required-1--approver--specific-user

Required 2 approvals with 1 specific user

03-approval--required-2--approver--1-specific-user

04-approval--required-2--approver--2-specific-user-and-group

A message tells users that why they are not able to remove a selected user as an approver.
  • If it is because the project approval settings override, I think we should tell users.

05-approval--required-1--settings-override

Search groups/users
  • How it works: When you type GitLab, it will show the groups and the users relevant to GitLab.

06-approval--search-group

Problem

Improve the approvals UI to solve these goals:

  • Increase approvals visibility and usage in conjunction with https://gitlab.com/gitlab-org/gitlab-ee/issues/2452.
    • In #2452 (closed), we are proposing changes to the settings UI to have approvals essentially be "always on". Can we do anything further as part of that design?
  • More streamlined experience in the merge request so that you do not have to go a separate edit/configuration screen.
    • In the proposal here, https://gitlab.com/gitlab-org/gitlab-ce/issues/36241, we want to eliminate the edit screen of the merge request, and have things be all inline. How would the approvals UI look? Should the approvals UI be just it's own inline section within the main merge request body?
    • The per project approvals settings UI is one place (project settings). And so I don't think we can change that. But the per merge request approvals settings and the approvals approve/unapprove UI are in two different places. Is there a better way to combine/streamline these designs? Is that necessary?

Relevant approvals issues:

Edited by Victor Wu