Integrate group level to merge request level MR approval rules
Why are we doing this work
Users would like to integrate group-level MR approval settings into merge requests of children projects
Relevant links
Functional requirements
- Allow retrieving group-level approval rules via merge-request-level approval rules API
- Public endpoint
GET /api/:version/project/:id/merge_requests/:merge_request_id/approval_rules
- Public endpoint
GET /api/:version/project/:id/merge_requests/:merge_request_id/approval_rules/:approval_rule_id
- Public endpoint
- Group-level approval rules should display when creating new MR and viewing existing MRr
- User can edit/delete group-level approval rules
Non-functional requirements
- [-] Documentation: Not needed as it is behind a feature flag
-
Feature flag: group_merge_request_approval_settings_feature_flag
- [-] Performance:
-
Testing: Ensure that the merge request approval rules works with feature flag/licensed disabled
Implementation plan
-
backend Extend ApprovalState
to support group (ie.user_defined_rules
should account for group approval rules)
graph LR
API::MergeRequestApprovalRules --> MergeRequest --> ApprovalState
ApprovalState --> ApprovalMergeRequestRule
ApprovalState --> ApprovalProjectRule
ApprovalState --> ApprovalGroupRule