Loading
Remove groups_and_projects_async_transfer feature flag
What does this MR do and why?
Removes the groups_and_projects_async_transfer feature flag and makes asynchronous group/project transfers the unconditional default behavior.
The feature flag was introduced in GitLab 18.11 to gate async background-job transfers for groups and projects. The epic (gitlab-org#20521 (closed)) is now closed and the feature has been fully rolled out (#594575 (closed)), so the flag is no longer needed.
Changes:
- Remove all
Feature.enabled?(:groups_and_projects_async_transfer, ...)checks from:app/graphql/mutations/groups/transfer.rbapp/graphql/mutations/projects/transfer.rbapp/controllers/groups_controller.rbapp/controllers/projects_controller.rblib/api/groups.rblib/api/projects.rb
- Delete the synchronous fallback code paths (
execute_sync_transferhelpers,disable_transfer_query_limitingbefore_action) - Delete
config/feature_flags/beta/groups_and_projects_async_transfer.yml - Update
doc/user/group/manage.mdanddoc/user/project/working_with_projects.mdto remove the feature-flag caveat from the history note - Update all RSpec specs to remove the disabled-flag contexts and keep only the async transfer test paths
References
- Closes #617846 (closed)
- Feature flag rollout: #594575 (closed)
- Epic: gitlab-org#20521 (closed)
Screenshots or screen recordings
No UI changes.
How to set up and validate locally
- Verify no references to
groups_and_projects_async_transferremain in the codebase - Transfer a group or project via the UI, REST API, or GraphQL -- it should always be scheduled as a background job (state transitions to
transfer_scheduled)
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.