Skip to content

Fix deprovisioning paid features upon transfer to subgroups

What does this MR do and why?

Part of Fix deprovisioning paid features upon transfer ... (#351780 - closed)

Prior to this change, when transferring a subgroup of a group with a paid subscription to a group without a subscription, some paid features weren't correctly deprovisioned.

This change fixes the deprovisioning of such a transfer by reusing the deprovisioning logic of paid features in the Projects::TransferService for the Groups::TransferService. Additionally, it also adds more tests for the deprovisioning to have better test coverage.

Database query plans

Run with gitlab-org/gitlab's project ID 278964 as provided by @ahegyi here and here.

How to set up and validate locally

Follow these steps but make sure to purchase an Ultimate subscription or the paid group won't be able to create test cases. The created groups/projects should also be public for the pipeline subscription part.

Additional notes for the paid subgroup that will be used for the transfer:

  • Test cases can be created under the sub group's url with the addition of /-/quality/test_cases to it.
  • Pipeline subscriptions can be added under the sub group's url with the addition of /-/settings/ci_cd. The Pipeline subscriptions section includes a Subscriptions list where you can subscribe to a public project.
  • Access tokens can be created under the sub group's url with the addition of /-/settings/access_tokens to it.

MR acceptance checklist

This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Corinna Gogolok

Merge request reports