Skip to content

[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:

  1. 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.
  2. New Vue / frontend behind the FF: Tests the Vue component and 'new' UI in isolation.

Next steps

References

Issue -> #526304 (closed)

Justin's MR handover -> !192360 (closed)

Screenshots or screen recordings

Before After
Screenshot 2025-08-27 at 9.58.31 PM.png Screenshot 2025-08-27 at 10.03.01 PM.png

Screen capture

Screen Recording 2025-08-27 at 5.20.16 PM.mov

How to set up and validate locally

  1. Disable the new_project_creation_form feature flag and enable the import_by_url_new_page feature flag.
  2. In the sidebar, select + (Create new...) > New project/repository. Select Import project.
  3. Click Repository by URL. Or navigate directly to projects/new#import_project . You should be on the new import by URL page.
  4. 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)

Edited by Oiza Baiye

Merge request reports

Loading