Class: BulkImports::Projects::Pipelines::DesignBundlePipeline
- Inherits:
-
Object
- Object
- BulkImports::Projects::Pipelines::DesignBundlePipeline
- Includes:
- BulkImports::Pipeline, IndexCacheStrategy
- Defined in:
- lib/bulk_imports/projects/pipelines/design_bundle_pipeline.rb
Constant Summary
Constants included from BulkImports::Pipeline
BulkImports::Pipeline::CACHE_KEY_EXPIRATION, BulkImports::Pipeline::EMPTY_EXPORT_STATUS_TIMEOUT, BulkImports::Pipeline::ExpiredError, BulkImports::Pipeline::FailedError, BulkImports::Pipeline::NDJSON_EXPORT_TIMEOUT, BulkImports::Pipeline::NotAllowedError
Constants included from BulkImports::Pipeline::Runner
BulkImports::Pipeline::Runner::MarkedAsFailedError
Instance Method Summary collapse
Methods included from BulkImports::Pipeline
#current_user, #import_export_config, #initialize, #portable, #tracker
Methods included from BulkImports::Pipeline::Runner
Instance Method Details
#after_run(_) ⇒ Object
35 36 37 |
# File 'lib/bulk_imports/projects/pipelines/design_bundle_pipeline.rb', line 35 def after_run(_) FileUtils.remove_entry(tmpdir) if Dir.exist?(tmpdir) end |
#extract(_context) ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/bulk_imports/projects/pipelines/design_bundle_pipeline.rb', line 13 def extract(_context) download_service.execute decompression_service.execute extraction_service.execute bundle_path = File.join(tmpdir, "#{self.class.relation}.bundle") BulkImports::Pipeline::ExtractedData.new(data: bundle_path) end |
#load(_context, bundle_path) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/bulk_imports/projects/pipelines/design_bundle_pipeline.rb', line 23 def load(_context, bundle_path) Gitlab::PathTraversal.check_path_traversal!(bundle_path) Gitlab::PathTraversal.check_allowed_absolute_path!(bundle_path, [Dir.tmpdir]) return unless portable.lfs_enabled? return unless File.exist?(bundle_path) return if File.directory?(bundle_path) return if Gitlab::Utils::FileInfo.linked?(bundle_path) portable.design_repository.create_from_bundle(bundle_path) end |