Feature flag rollout - merge_train_api_auto_merge_fallback

Summary

This issue tracks the rollout of the merge_train_api_auto_merge_fallback feature flag.

Related merge request: !226033 (merged)

What does this feature flag do?

When enabled, the merge train API endpoint POST /projects/:id/merge_trains/merge_requests/:iid?auto_merge=true will fall back to the merge_train strategy when the add_to_merge_train_when_checks_pass strategy is unavailable (i.e., when all merge preconditions are already fulfilled).

Without this flag, the API returns a 400 Bad Request when auto_merge=true is passed and the pipeline has already succeeded, because it hardcodes the add_to_merge_train_when_checks_pass strategy which reports itself as unavailable when there are no checks to wait for.

Owners

  • Team: group::code review
  • Feature flag name: merge_train_api_auto_merge_fallback
  • Type: gitlab_com_derisk

Rollout plan

Rollout Steps

  • Enable on staging (/chatops run feature set merge_train_api_auto_merge_fallback true --staging)
  • Test on staging
  • Enable on GitLab.com for a percentage of actors
    • 25% (/chatops run feature set merge_train_api_auto_merge_fallback 25 --actors)
    • 50% (/chatops run feature set merge_train_api_auto_merge_fallback 50 --actors)
    • 100% (/chatops run feature set merge_train_api_auto_merge_fallback 100 --actors)
  • Monitor for errors/regressions
  • Enable by default (set default_enabled: true in YAML)
  • Remove the feature flag and legacy code path