Skip to content

Move transfer project/group API logic into a shared component

Peter Hegman requested to merge peterhegman/refactor-transfer-project-form into master

What does this MR do and why?

In !91538 (merged) and !97330 (merged) we migrated the transfer project namespace dropdown from HAML to REST and GraphQL APIs. We now want to migrate app/assets/javascripts/groups/components/transfer_group_form.vue to use the same dropdown and API logic. I realized that it didn't really make sense for the API logic to live in app/assets/javascripts/projects/settings/components/transfer_project_form.vue because then it can't be used for the group dropdown. This MR moves the API logic into transfer_locations.vue so that it can be shared. The logic itself hasn't changed just the location.

I apologize for the size of this MR. I thought for a while on how I could try and split it up further but struggled to figure out a way. The logic itself isn't changing, it is moving to a new place which causes a large diff because the code is removed in one place and added in another.

Screenshots or screen recordings

No visual changes

How to set up and validate locally

  1. Navigate to a project -> Settings -> General -> Advanced -> Transfer project

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 Peter Hegman

Merge request reports