Allow groups to be re-imported
Problem to solve
Once a group has been imported once, a subsequent (re)load of the group list will show the group as available for import again. This is good, but the user can't tell that a group has already been imported and may, by mistake, perform another import.
Proposed solution
Create a first-class experience for re-importing, instead of the current experience where it somehow just works (sometimes). It should be obvious to the user when a group has already been imported at least once. For example, the button might say Re-import
, instead of Import
, or there could be a link there to the previous import(s).
In order to prevent re-importing attempts into an existing group, the default (proposed) group names should be suffixed with a -1
. For example, re-importing a group named my-group
would propose my-group-1
as the target group name. Few notes on the suffix:
- It is acceptable to keep adding
-1
, instead of following the sequence to avoid following long sequences. This means thatmy-group-1-1
would be proposed ifmy-group-1
exists. - If it is feasible, we could also add a random, humanly-readable suffix, typically used for deconflicting, such as
-color-animal
, i.e.-blue-horse
,teal-fish
... - UX would have to chime in on this, as it may need to become a pattern for deconflicting names in other places. - This generation of the default group name should run only once, when the page is loaded (preferably async - after the page loads). If the user changes the target (parent) group in the dropdown, the proposed group name should not be automatically re-generated. The validation will highlight the conflict and the user will be able to (will be forced to) deconflict the name before importing.
MVC
Interaction notes on image (%13.11)
Additional considerations
- It is acceptable that a "regular" user who has permissions to import a group can see the fact that another user performed an import on that same group.
- Partially successful imports (a situation where a new group was created, but something failed during the import) should also be treated as re-import.
- However, a failed import after which there is no new group visible (not created, or created and then deleted) should be treated as a first-time import (not re-import).
- We need to be clear that re-import does not mean "sync" or "refresh" of the new group with the data from the old group. It is simply another one-time, one-way migration of a group that had already been migrated.
- Importing or re-importing into an existing group is still not possible. Validation will be added in another issue to prevent this. - #300427 (closed)
Figma design file
🎨 Allow groups to be re-imported
This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.