[FF] auto_merge_skip_conflict_check -- Skip the auto-merge conflict check regardless of merge status
Summary
Roll out the feature currently behind the auto_merge_skip_conflict_check feature flag.
- DRI: @marc_shaw
- Team Slack channel:
#g_code_review
Note
Process and guidance live in the docs — this issue is just the commands and a place to track the rollout. "Rolling out" means incrementally enabling the flag on GitLab.com to validate stability — it is not the same as releasing the feature, which happens when the flag is removed. Feature flag controls · Feature flag lifecycle
What could go wrong?
The flag makes both when-checks-pass strategies (merge_when_checks_pass, add_to_merge_train_when_checks_pass) skip the conflict check in every merge state, so auto-merge can be enabled while a merge request is preparing or has a known conflict (cannot_be_merged) — reversing !222317 (merged). The merge itself stays deferred — #process still guards with mergeable?(use_cache: false), so a conflicted MR never merges until the conflict clears. Watch merge error rates and the MR dashboards on https://dashboards.gitlab.net.
Rollout
Run all production /chatops in #production and cross-post the results to #g_code_review. Background: incremental rollout process, feature actors.
Non-production
/chatops gitlab run feature set auto_merge_skip_conflict_check 50 --actors --dev --pre --staging --staging-ref
/chatops gitlab run feature set auto_merge_skip_conflict_check true --dev --pre --staging --staging-refProduction — percentage rollout (wait ≥15 min between steps, watch dashboards):
/chatops gitlab run feature set auto_merge_skip_conflict_check <percentage> --actorsOr target specific actors instead:
/chatops gitlab run feature set --project=gitlab-org/gitlab,gitlab-org/gitlab-foss auto_merge_skip_conflict_check true
/chatops gitlab run feature set --group=gitlab-org,gitlab-com auto_merge_skip_conflict_check true
/chatops gitlab run feature set --user=marc_shaw auto_merge_skip_conflict_check trueBefore global rollout
Confirm the relevant gotchas before going to 100% — see enabling a feature for GitLab.com:
- Docs + version history updated
- Breaking changes announced, if any
- Change management issue opened, if required
- External API consumers handled with a fail-open mechanism, if applicable
Cleanup
Remove the flag once deemed stable — see cleaning up. Remove the flag and its YAML definition from the codebase, then:
/chatops gitlab run release check <merge-request-url> <milestone>
/chatops gitlab run feature delete auto_merge_skip_conflict_check --dev --pre --staging --staging-ref --production