Add ability to track when MR-level rules override project-level rules

Tracks which project-level rule an MR-level rule was derived from.

  • Adds "Reset to project defaults" functionality
  • Showing users when they've customised a rule
  • Security policy synchronization (reset_required_approvals method)

Requirements (validate these during implementation and adjust as needed):

  • Add to MergeRequests::ApprovalRule model:
    • Add belongs_to :source_rule association (self-referential, optional)
      • class_name: 'MergeRequests::ApprovalRule'
      • optional: true
    • Implement overridden? method
      • Returns true if source_rule.present?
    • Update hook_attrs method to include:
      • modified_from_project_rule: overridden?

Reference: v2 Approval Rules POC

Edited Feb 12, 2026 by Gavin Hinfey
Assignee Loading
Time tracking Loading