Suggested Reviewers UI integration
## 🧩 Problem to solve We currently rely on the CI template to present suggested reviewers to users. The comment thread experience, however, feels a bit clunky and less integrated into the code review flow. <details> <summary>Current Sequence Diagram</summary> ```plantuml skinparam shadowing false skinparam ParticipantPadding 10 participant "CI template" as C participant "recommender-ci" as CI box "Suggested Reviewer" participant "envoy" as E participant "authenticator" as A participant "bot-service" as B participant "recommender-service" as R end box [o-> C: run job activate C C -> CI: run CI activate CI CI -> E: HTTP\n{ project,\nmerge_request } activate E E -> A: authenticate activate E activate A A -> A: authenticate \nvia GitLab API A --> E: authenticated deactivate A deactivate E E -> B: transcoded gRPC request activate B B -> B: identify MR\nvia GitLab API B -> B: get MR changes\nvia GitLab API B -> B: select latest\nmodel from DB B -> R: request suggestions activate B activate R R -> R: deserialize model\nfrom GCS R -> R: generate\nsuggestions R --> B: suggestions deactivate R deactivate B B --> E: suggestions deactivate B E --> CI: suggestions deactivate E CI -> CI: write artifacts file\nwith suggestions CI --> C: exit deactivate CI [<-- C: exit deactivate C ``` </details> ## 💡 Proposal ### Onboarding Users can enable and disable the Suggested Reviewer feature. - Integration with GitLab - https://gitlab.com/gitlab-org/modelops/applied-ml/review-recommender/recommender-service/-/issues/7 ### Suggestion Users can see suggested reviewers and choose them for review. - Integration with GitLab - https://gitlab.com/groups/gitlab-org/modelops/applied-ml/review-recommender/-/epics/7 ### Feedback Developers can collect feedback on selected suggested reviewers. - Integration with GitLab - https://gitlab.com/gitlab-org/modelops/applied-ml/review-recommender/recommender-bot-service/-/issues/21 ### Permissions and Security - Anyone who can set reviewers should have access to this feature to set recommended reviewers (aka. with `Developer` role or higher) - 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. Once we finalise the overall architecture and implementation plan, we might need to update the architecture [doc](https://docs.gitlab.com/ee/development/architecture.html#gitlab-architecture-overview) to include the Suggested Reviewer API. ### Availability & Testing This feature will be behind a ~"feature flag" `suggested_reviewers_control`. Automated end-to-end tests will include: - Contract tests: https://gitlab.com/gitlab-org/quality/team-tasks/-/issues/1410 - End-to-end tests involving all system components: https://gitlab.com/gitlab-org/quality/testcases/-/issues/3245 ### Available Tier This feature is available to only ~gitlab.com and ~"GitLab Ultimate" tier. ### What does success look like, and how can we measure that? Developers set the suggested reviewers as reviewers and a review actually happens. We can collect [related events](https://gitlab.com/gitlab-org/modelops/applied-ml/review-recommender/recommender-bot-service/-/issues/21) around user interactions with this feature. ### Links / references - [Design issue](https://gitlab.com/gitlab-org/gitlab/-/issues/341873/) - [Permissions and roles](https://docs.gitlab.com/ee/user/permissions.html) <!-- 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