Feature flag rollout - mwcp_skip_ci_guard
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Summary
This feature flag controls the removal of a redundant CI guard in the auto-merge process method for both MergeWhenChecksPassService (MWCP) and AddToMergeTrainWhenChecksPassService (AMTWCP).
Feature flag name: mwcp_skip_ci_guard
Type: gitlab_com_derisk
Group: group::code review
Introduced in: !226657 (merged)
Problem
The process method had a redundant early CI guard that rejected skipped pipelines before mergeable? was called, even though CheckCiStatusService (invoked by mergeable?) already correctly handles skipped pipelines by checking allow_merge_on_skipped_pipeline?.
What does enabling the flag do?
When enabled, the redundant early CI guard is removed, allowing mergeable? to be the single source of truth for all CI status checks. This fixes auto-merge (MWCP/AMTWCP) to correctly handle skipped pipelines when the project has allow_merge_on_skipped_pipeline enabled.
When disabled (default), the old behavior is preserved — the early CI guard remains in place.
Rollout Plan
Rollout Steps
-
Enable on staging (
/chatops run feature set mwcp_skip_ci_guard true --staging) - Test on staging
-
Enable on GitLab.com for a specific project/group for initial validation
/chatops run feature set --project=gitlab-org/gitlab mwcp_skip_ci_guard true
-
Enable on GitLab.com globally (
/chatops run feature set mwcp_skip_ci_guard true) - Monitor for errors/regressions for 1-2 days
- Remove feature flag and clean up code
Rollback Steps
Disable the feature flag:
/chatops run feature set mwcp_skip_ci_guard false
What to monitor
- Auto-merge processing errors in Kibana/Sentry
- Merge requests stuck in auto-merge state
- Unexpected merges when pipelines are skipped and
allow_merge_on_skipped_pipelineis disabled