Add automatic reviewer assignment toggle to MR settings (3a/3)

Summary

  • Adds reviewer_auto_assignment_available? on ProjectSetting (returns false in CE, gated on auto_assign_code_owner_reviewers feature flag + code_owners license in EE)
  • Reworks reviewer_auto_assignment_enabled? to combine availability with the reviewer_assignment_strategy column 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_strategy param in the EE settings controller when the feature is available for the project
  • Only visible/writable when auto_assign_code_owner_reviewers feature flag is enabled and code_owners license 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.

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_strategy correctly
  • Toggle hidden when flag off or license unavailable

Merge request reports

Loading