Add automatic reviewer assignment toggle to MR settings (3a/3)
Summary
- Adds
reviewer_auto_assignment_available?onProjectSetting(returnsfalsein CE, gated onauto_assign_code_owner_reviewersfeature flag +code_ownerslicense in EE) - Reworks
reviewer_auto_assignment_enabled?to combine availability with thereviewer_assignment_strategycolumn added in the DB MR - Adds a new "Automatic reviewer assignment" section on Settings > Merge Requests with a checkbox for "Automatically assign code owners as reviewers" (Beta badge)
- Permits the
reviewer_assignment_strategyparam in the EE settings controller when the feature is available for the project - Only visible/writable when
auto_assign_code_owner_reviewersfeature flag is enabled andcode_ownerslicense is available
Part 3a of 3 for CODEOWNERS automatic reviewer assignment. This MR wires the toggle only; the worker (3b) and trigger points (3c) arrive in follow-ups. The toggle has no consumer yet in this slice, so no user-visible behavior changes.
Related
- Parent issue: #589700
- Previously combined in: !224178 (closed) (now split)
- Part 1 (DB): !224175 (merged)
- Part 2 (Service): !224176 (merged)
- Part 3b (Worker + AssignService refactor): https://gitlab.com/gitlab-org/gitlab/-/merge_requests/ (to follow)
- Part 3c (Trigger wiring): https://gitlab.com/gitlab-org/gitlab/-/merge_requests/ (to follow)
Screenshots
The new setting appears on Settings > Merge Requests as a dedicated section:
- Automatic reviewer assignment (section heading)
- Checkbox: "Automatically assign code owners as reviewers" (Beta badge)
- Help text: "Code owners are automatically assigned as reviewers when a merge request is marked as ready. Draft merge requests are excluded."
Test plan
-
bundle exec rspec spec/models/project_setting_spec.rb ee/spec/models/ee/project_setting_spec.rb -
bundle exec rspec ee/spec/controllers/ee/projects/settings/merge_requests_controller_spec.rb -
bundle exec rspec ee/spec/views/projects/settings/merge_requests/_reviewer_auto_assignment_settings.html.haml_spec.rb - Toggle in UI with flag + license on: saves
reviewer_assignment_strategycorrectly - Toggle hidden when flag off or license unavailable