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_pipeline is disabled
Edited by 🤖 GitLab Bot 🤖