[Import by URL] Migration to Vue using standalone feature flag
What does this MR do and why?
Earlier this year we began to convert the project creation flows to Vue from Haml/Ruby are under the feature flag new_project_creation_form
.
The goal of this MR is to extract the Import by URL Vue component (one of a variety of project creation paths) and related code under its own feature flag import_by_url_new_page
so it can be released independently from the new project creation flows.
Addresses the following:
- creates the feature flag
import_by_url_new_page
and uses it for the migrated code - the new Vue flow has its own route, unlike before where the 'repository by url' form renders within the import page
- adds a check connection feature and mirror repository checkbox to import_by_url_form.vue
- Updates tests
Related backend changes
Please see the backend issue #536989 (closed)
Note on testing strategy
This MR implements the Vue migration for "Import repository by URL" behind the import_by_url_new_page
feature flag, which was separated from the broader new_project_creation_form
flag to allow independent release.
I've intentionally maintained two separate testing strategies:
-
Current production behaviour (Ruby specs): Both feature flags are disabled in ee/spec/features/projects/new_project_spec.rb and spec/features/projects/new_project_spec.rb . Changes to those test files are therefore minimal and focused on not breaking the old UI. When the
import_by_url_new_page
flag is rolled out and becomes production behaviour we'd modify these files as the final, singular url import flow would be in Vue not Haml. - New Vue / frontend behind the FF: Tests the Vue component and 'new' UI in isolation.
Next steps
- Follow up for connection check error handling -> #562799 (closed)
- Feature flag rollout issue -> https://gitlab.com/gitlab-org/gitlab/-/issues/565982
References
Issue -> #526304 (closed)
Justin's MR handover -> !192360 (closed)
Screenshots or screen recordings
Before | After |
---|---|
![]() |
![]() |
Screen capture
Screen Recording 2025-08-27 at 5.20.16 PM.mov
How to set up and validate locally
- Disable the
new_project_creation_form
feature flag and enable theimport_by_url_new_page
feature flag. - In the sidebar, select + (Create new...) > New project/repository. Select Import project.
- Click Repository by URL. Or navigate directly to projects/new#import_project . You should be on the new import by URL page.
- Attempt to import a project using a git url
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.
Related to #526304 (closed)