summaryrefslogtreecommitdiff
path: root/app/services/groups/import_export/import_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/groups/import_export/import_service.rb')
-rw-r--r--app/services/groups/import_export/import_service.rb34
1 files changed, 14 insertions, 20 deletions
diff --git a/app/services/groups/import_export/import_service.rb b/app/services/groups/import_export/import_service.rb
index ac181245986..15948ab82a2 100644
--- a/app/services/groups/import_export/import_service.rb
+++ b/app/services/groups/import_export/import_service.rb
@@ -29,7 +29,7 @@ module Groups
def execute
Gitlab::Tracking.event(self.class.name, 'create', label: 'import_group_from_file')
- if valid_user_permissions? && import_file && restorers.all?(&:restore)
+ if valid_user_permissions? && import_file && valid_import_file? && restorers.all?(&:restore)
notify_success
Gitlab::Tracking.event(
@@ -75,25 +75,11 @@ module Groups
def tree_restorer
@tree_restorer ||=
- if ndjson?
- Gitlab::ImportExport::Group::TreeRestorer.new(
- user: current_user,
- shared: shared,
- group: group
- )
- else
- Gitlab::ImportExport::Group::LegacyTreeRestorer.new(
- user: current_user,
- shared: shared,
- group: group,
- group_hash: nil
- )
- end
- end
-
- def ndjson?
- ::Feature.enabled?(:group_import_ndjson, group&.parent) &&
- File.exist?(File.join(shared.export_path, 'tree/groups/_all.ndjson'))
+ Gitlab::ImportExport::Group::TreeRestorer.new(
+ user: current_user,
+ shared: shared,
+ group: group
+ )
end
def remove_import_file
@@ -115,6 +101,14 @@ module Groups
end
end
+ def valid_import_file?
+ return true if File.exist?(File.join(shared.export_path, 'tree/groups/_all.ndjson'))
+
+ shared.error(::Gitlab::ImportExport::Error.incompatible_import_file_error)
+
+ false
+ end
+
def notify_success
@logger.info(
group_id: group.id,