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](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/222865)
issue