🕵️ Merge request reviewers
## Problem to solve
Knowing who should review your merge request is hard. Merge request approval rules and code owners help, but when there are 20 eligible approvers, and I only need 2 approvals, who should I ask to review my merge request?
Once my merge request is approved, how do I even get it merged? I don't know who has merge permissions. All I get is a warning after I've assigned the merge request to someone that they don't have merge permissions.
## Vision
GitLab should make it easy for a contributor to request code reviews, and get their contribution merged, by helping them make progress through each step of the merge request process.
This means the author of a merge request should be able to easily understand what the next step is:
- request a code review
- who should I request a review from? suggest someone to me!
- waiting for the code review to be completed
- has anyone looked at my merge request or left me review comments?
- request a maintainer to merge
- who should I ask to merge my merge request now that it is approved?
We want to provide a cohesive experience where roles and responsibilities are minimal and clear. Long term, we think eliminating the "Approver" role in favor of the "Reviewer" role makes sense. Approvals will remain in place but they will only be an action carrier out by a reviewer and not a discrete role.
## Further details
### Roles and responsibilities
Merge requests currently support `Assignee` and `Approver`. Adding the concept of a `Reviewer` independently may create confusion as it may not be immediately clear how that differs from `Approver`. An iterative approach that consolidates these two would be ideal, were `Reviewer` has the capability to "approve".
### Reviewer Roulette
At GitLab, we have a **Reviewer Roulette** bot that automatically helps developers identify who they should ask to review their merge request so that reviews are spread around.
<details><summary>Example: Danger</summary>
| **Example:** Danger output with Reviewer Roulette |
|---|
|  |
</details>
GitLab should provide this functionality built-in.
## Competition
The concept of a code "Reviewer" is widely used in software development tools and is currently offered by competing tools.
<details><summary>Example: Competitors</summary>
| GitHub | Bitbucket | Phabricator | Gerrit |
| ------ | ------ | ------ | ------ |
| Uses term "Reviewer" | Uses term "Reviewer" | Uses term "Auditor" | Uses term "Reviewer" |
|  |  |  |  |
</details>
Having a dedicated role for reviews cuts down on guesswork and eliminates the need for users to come up with discrete processes to select and assign reviewers.
## Research
* [Opportunity canvas (internal)](https://docs.google.com/document/d/1sl7cHqU_hASh2HAOX_jwfkkPb6_rGdGqyKoz1oXe778/edit?usp=sharing)
## Proposal
Foundational work to be included as part of this epic below. Follow-up enhancements and more sophisticated recommendations will be part of the [👁 Merge request reviewers improvements
](https://gitlab.com/groups/gitlab-org/-/epics/4560) epic.
| Issue | URL | Milestone |
|------------------------------------------------------------------------------|------------------------------------------------------|-----------|
| Show which reviewers (fka approvers) have commented on the MR | https://gitlab.com/gitlab-org/gitlab/-/issues/10294 | 13.3 |
| Add reviewers to MR form | https://gitlab.com/gitlab-org/gitlab/-/issues/216054 | 13.5 |
| Reviewers sidebar widget | https://gitlab.com/gitlab-org/gitlab/-/issues/237921 | 13.5 |
| Only allow multiple reviewers in paid tiers | https://gitlab.com/gitlab-org/gitlab/-/issues/246905 | 13.5 |
| Reviewers System Note | https://gitlab.com/gitlab-org/gitlab/-/issues/243777 | 13.5 |
| ~~Increase MR counter on navbar when user is designated as "reviewer"~~ | ~~https://gitlab.com/gitlab-org/gitlab/-/issues/255102~~ | ~~13.5~~ |
| Add filter for reviewer to MR list filter bar | https://gitlab.com/gitlab-org/gitlab/-/issues/237922 | 13.7 |
| Display which approval rules match a given reviewer | https://gitlab.com/gitlab-org/gitlab/-/issues/233736 | 13.7 |
| Move and collapse approval rules under "reviewers" section on merge requests | https://gitlab.com/gitlab-org/gitlab/-/issues/231244 | 13.7 |
| Add Reviewers Quick Action | https://gitlab.com/gitlab-org/gitlab/-/issues/241244 | 13.7 |
### Design
| [Show list of commenters on merge request widget](https://gitlab.com/gitlab-org/gitlab/-/issues/10294) | [Add a dedicated "reviewers" section for merge requests (remove "approvers)](https://gitlab.com/gitlab-org/gitlab/-/issues/216054) | [Show which approval rules match each of the reviewers](https://gitlab.com/gitlab-org/gitlab/-/issues/233736) | [Move approval rules under "reviewers" section](https://gitlab.com/gitlab-org/gitlab/-/issues/231244) |
|--------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|
|  |  |  | |
## Links / references
- [Figma sketches](https://www.figma.com/file/KAz1DEdS3kx01dPp9H5cDH/Merge-request-reviewers-%2310294?node-id=34%3A428)
- https://gitlab.com/gitlab-org/gitlab-ee/issues/12137
- https://gitlab.com/gitlab-org/gitlab-ce/issues/65732
<!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION -->
*This page may contain information related to upcoming products, features and functionality.
It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes.
Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.*
<!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION -->
epic