Skip to content

Backport: Ensure consistent approval permissions between UI, API and graphql

What does this MR do and why?

This MR removes the ensure_consistent_editing_rule feature flag and consolidates approval rule editing logic to use a single, consistent approach across all merge request approval policies.

Changes made:

  1. Removed feature flag: Deleted ensure_consistent_editing_rule feature flag configuration
  2. Simplified policy logic: Consolidated approval rule editing permissions in:
    • EE::MergeRequestPolicy - Now uses only approval_rules_editable condition
    • ApprovalMergeRequestRulePolicy - Simplified to use update_approvers permission
    • MergeRequests::ApprovalRulePolicy - Simplified to use update_approvers permission
  3. Removed test coverage: Cleaned up tests that were specifically testing the feature flag behavior

Before:

  • Two different code paths depending on feature flag state
  • Complex conditional logic mixing update_merge_request and update_approvers permissions
  • Inconsistent behavior between flag enabled/disabled states

After:

  • Single, consistent code path for all approval rule editing
  • Uses approval_rules_editable method which checks update_approvers permission
  • Cleaner, more maintainable policy logic

This change ensures that approval rule editing permissions are handled consistently across the application, removing the complexity introduced by the feature flag rollout.

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

  • This MR is backporting a bug fix, documentation update, or spec fix, previously merged in the default branch.
  • The MR that fixed the bug on the default branch has been deployed to GitLab.com (not applicable for documentation or spec changes).
  • The MR title is descriptive (e.g. "Backport of 'title of default branch MR'"). This is important, since the title will be copied to the patch blog post.
  • Required labels have been applied to this merge request
  • Set the milestone of the merge request to match the target backport branch version.
  • This MR has been approved by a maintainer (only one approval is required).
  • Ensure the e2e:test-on-omnibus-ee job has either succeeded or been approved by a Software Engineer in Test.

Note to the merge request author and maintainer

If you have questions about the patch release process, please:

Edited by Marc Shaw

Merge request reports

Loading