Class: BulkImports::Common::Pipelines::WikiPipeline
- Inherits:
-
Object
- Object
- BulkImports::Common::Pipelines::WikiPipeline
- Includes:
- Pipeline
- Defined in:
- lib/bulk_imports/common/pipelines/wiki_pipeline.rb
Constant Summary
Constants included from Pipeline
Pipeline::CACHE_KEY_EXPIRATION, Pipeline::EMPTY_EXPORT_STATUS_TIMEOUT, Pipeline::ExpiredError, Pipeline::FailedError, Pipeline::NDJSON_EXPORT_TIMEOUT, Pipeline::NotAllowedError
Constants included from Pipeline::Runner
Pipeline::Runner::MarkedAsFailedError
Instance Method Summary collapse
Methods included from Pipeline
#current_user, #import_export_config, #initialize, #portable, #tracker
Methods included from Pipeline::Runner
Instance Method Details
#extract ⇒ Object
9 10 11 12 13 |
# File 'lib/bulk_imports/common/pipelines/wiki_pipeline.rb', line 9 def extract(*) url = url_from_parent_path(context.entity.source_full_path) if source_wiki_exists? BulkImports::Pipeline::ExtractedData.new(data: { url: url }) end |
#load(context, data) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/bulk_imports/common/pipelines/wiki_pipeline.rb', line 19 def load(context, data) return unless data&.dig(:url) wiki = context.portable.wiki url = data[:url].sub("://", "://oauth2:#{context.configuration.access_token}@") Gitlab::UrlBlocker.validate!(url, schemes: %w[http https], allow_local_network: allow_local_requests?, allow_localhost: allow_local_requests?) wiki.create_wiki_repository wiki.repository.fetch_as_mirror(url) end |
#transform(_, data) ⇒ Object
15 16 17 |
# File 'lib/bulk_imports/common/pipelines/wiki_pipeline.rb', line 15 def transform(_, data) data&.slice(:url) end |