馃帹 Design: Suggested reviewers MVC

Release notes

Problem to solve

GitLab users currently have to manually search for and select relevant reviewers for their merge requests. They have to take into consideration things like:

  • does the reviewer have enough time to review in a reasonable amount of time? (ie do they already have 10 MRs assigned to them?)
  • does the reviewer have the appropriate level of knowledge to review this? (ie ruby expertise if the MR changes ruby code)
  • what time zone is the reviewer in? (this one may or may not be important)
  • is the reviewer available/in office?

Deciding on reviewer(s) who match the correct criteria can be time-consuming and extend MR cycle time.

Intended users

Primary
Secondary

Metrics

  • Reduced cycle time
  • First reviewer is the right one
  • Suggested reviewers get chosen

User experience goal

  • Make it easy for developers to see suggested reviewers and choose them for review
  • Handle edge cases where suggested reviewers are not available
  • stretch: allow users to mark bad suggestions.

MVC

  • Users should be able to see suggested reviewers for a given MR and manually apply those suggestions when ready

Overall vision

Proposal

Customers of GitLab.com will be able to start seeing and experiencing value from the functionality including the ability to intelligently assign code reviewers to merge requests based on machine learning models

  • Should be able to identify reviewers
  • Should be able to automatically assign reviewers

Further details

Permissions and Security

Anyone who can set reviewers should have access to this feature to set recommended reviewers Anyone who can view a merge request can view the suggested reviewers but can't set them unless they have permission to set a reviewer.

Documentation

TBD, I suspect we will want to document this behavior on the existing code review docs page but @tmccaslin is open to creating a new page as well.

Availability & Testing

Behind a feature flag

Available Tier

Currently we are considering this part of ultimate, but may pull this down to Premium as well.

What does success look like, and how can we measure that?

Developers set the suggested reviewers as reviewers and a review actually happens.

Links / references

Edited by Tan Le