summaryrefslogtreecommitdiff
path: root/app/services/projects/import_export/export_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/projects/import_export/export_service.rb')
-rw-r--r--app/services/projects/import_export/export_service.rb33
1 files changed, 27 insertions, 6 deletions
diff --git a/app/services/projects/import_export/export_service.rb b/app/services/projects/import_export/export_service.rb
index 8893bf18e1f..86cb4f35206 100644
--- a/app/services/projects/import_export/export_service.rb
+++ b/app/services/projects/import_export/export_service.rb
@@ -3,19 +3,35 @@
module Projects
module ImportExport
class ExportService < BaseService
- def execute(after_export_strategy = nil, options = {})
+ prepend Measurable
+
+ def initialize(*args)
+ super
+
+ @shared = project.import_export_shared
+ end
+
+ def execute(after_export_strategy = nil)
unless project.template_source? || can?(current_user, :admin_project, project)
raise ::Gitlab::ImportExport::Error.permission_error(current_user, project)
end
- @shared = project.import_export_shared
-
save_all!
execute_after_export_action(after_export_strategy)
ensure
cleanup
end
+ protected
+
+ def extra_attributes_for_measurement
+ {
+ current_user: current_user&.name,
+ project_full_path: project&.full_path,
+ file_path: shared.export_path
+ }
+ end
+
private
attr_accessor :shared
@@ -42,7 +58,10 @@ module Projects
end
def exporters
- [version_saver, avatar_saver, project_tree_saver, uploads_saver, repo_saver, wiki_repo_saver, lfs_saver, snippets_repo_saver]
+ [
+ version_saver, avatar_saver, project_tree_saver, uploads_saver,
+ repo_saver, wiki_repo_saver, lfs_saver, snippets_repo_saver, design_repo_saver
+ ]
end
def version_saver
@@ -81,6 +100,10 @@ module Projects
Gitlab::ImportExport::SnippetsRepoSaver.new(current_user: current_user, project: project, shared: shared)
end
+ def design_repo_saver
+ Gitlab::ImportExport::DesignRepoSaver.new(project: project, shared: shared)
+ end
+
def cleanup
FileUtils.rm_rf(shared.archive_path) if shared&.archive_path
end
@@ -103,5 +126,3 @@ module Projects
end
end
end
-
-Projects::ImportExport::ExportService.prepend_if_ee('EE::Projects::ImportExport::ExportService')