2021-04-13 09:11:10 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module BulkImports
|
|
|
|
class Stage
|
|
|
|
include Singleton
|
|
|
|
|
|
|
|
CONFIG = {
|
|
|
|
group: {
|
|
|
|
pipeline: BulkImports::Groups::Pipelines::GroupPipeline,
|
|
|
|
stage: 0
|
|
|
|
},
|
2021-06-22 09:07:12 +00:00
|
|
|
avatar: {
|
|
|
|
pipeline: BulkImports::Groups::Pipelines::GroupAvatarPipeline,
|
|
|
|
stage: 1
|
|
|
|
},
|
2021-04-13 09:11:10 +00:00
|
|
|
subgroups: {
|
|
|
|
pipeline: BulkImports::Groups::Pipelines::SubgroupEntitiesPipeline,
|
|
|
|
stage: 1
|
|
|
|
},
|
|
|
|
members: {
|
|
|
|
pipeline: BulkImports::Groups::Pipelines::MembersPipeline,
|
|
|
|
stage: 1
|
|
|
|
},
|
|
|
|
labels: {
|
|
|
|
pipeline: BulkImports::Groups::Pipelines::LabelsPipeline,
|
|
|
|
stage: 1
|
|
|
|
},
|
|
|
|
milestones: {
|
|
|
|
pipeline: BulkImports::Groups::Pipelines::MilestonesPipeline,
|
|
|
|
stage: 1
|
|
|
|
},
|
|
|
|
badges: {
|
|
|
|
pipeline: BulkImports::Groups::Pipelines::BadgesPipeline,
|
|
|
|
stage: 1
|
|
|
|
},
|
2021-06-02 18:10:01 +00:00
|
|
|
boards: {
|
|
|
|
pipeline: BulkImports::Groups::Pipelines::BoardsPipeline,
|
|
|
|
stage: 2
|
|
|
|
},
|
2021-04-13 09:11:10 +00:00
|
|
|
finisher: {
|
|
|
|
pipeline: BulkImports::Groups::Pipelines::EntityFinisher,
|
2021-06-02 18:10:01 +00:00
|
|
|
stage: 3
|
2021-04-13 09:11:10 +00:00
|
|
|
}
|
|
|
|
}.freeze
|
|
|
|
|
|
|
|
def self.pipelines
|
|
|
|
instance.pipelines
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.pipeline_exists?(name)
|
|
|
|
pipelines.any? do |(_, pipeline)|
|
|
|
|
pipeline.to_s == name.to_s
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def pipelines
|
|
|
|
@pipelines ||= config
|
|
|
|
.values
|
|
|
|
.sort_by { |entry| entry[:stage] }
|
|
|
|
.map do |entry|
|
|
|
|
[entry[:stage], entry[:pipeline]]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def config
|
|
|
|
@config ||= CONFIG
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2021-05-11 21:10:21 +00:00
|
|
|
::BulkImports::Stage.prepend_mod_with('BulkImports::Stage')
|