mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-16 16:16:43 +10:00
started refactored the dynamic rules to be defined in a yml file
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# Class relationships to be included in the import/export
|
||||
:project_tree:
|
||||
- :issues
|
||||
- :labels
|
||||
- :milestones
|
||||
- :snippets
|
||||
- :releases
|
||||
- :events
|
||||
- :project_members:
|
||||
- :user
|
||||
- :merge_requests:
|
||||
- :merge_request_diff
|
||||
- :commit_statuses:
|
||||
- :commit
|
||||
|
||||
:attributes_only:
|
||||
:project:
|
||||
- :name
|
||||
- :path
|
||||
- :description
|
||||
- :issues_enabled
|
||||
- :wall_enabled
|
||||
- :merge_requests_enabled
|
||||
- :wiki_enabled
|
||||
- :snippets_enabled
|
||||
- :visibility_level
|
||||
- :archived
|
||||
:user:
|
||||
- :id
|
||||
- :email
|
||||
- :username
|
||||
@@ -0,0 +1,47 @@
|
||||
module Projects
|
||||
module ImportExport
|
||||
module ImportExportReader
|
||||
extend self
|
||||
|
||||
def project_tree
|
||||
{ only: atts_only[:project], include: build_hash(tree) }
|
||||
end
|
||||
|
||||
def config
|
||||
@config ||= YAML.load_file('app/services/projects/import_export/import_export.yml')
|
||||
end
|
||||
|
||||
def atts_only
|
||||
config[:attributes_only]
|
||||
end
|
||||
|
||||
def atts_except
|
||||
config[:attributes_except]
|
||||
end
|
||||
|
||||
def tree
|
||||
config[:project_tree]
|
||||
end
|
||||
|
||||
def build_hash(array)
|
||||
array.map { |el| el.is_a?(Hash) ? process_include(el) : el }
|
||||
end
|
||||
|
||||
def process_include(hash)
|
||||
included_classes_hash = {}
|
||||
hash.values.flatten.each do |value|
|
||||
value = value.is_a?(Hash) ? process_include(hash) : value
|
||||
new_hash = { :include => value }
|
||||
new_hash.merge!(check_only(value))
|
||||
included_classes_hash[hash.keys.first] = new_hash
|
||||
end
|
||||
included_classes_hash
|
||||
end
|
||||
|
||||
def check_only(value)
|
||||
key = value.is_a?(Hash) ? value.keys.first : value
|
||||
atts_only[key].nil? ? {} : { only: atts_only[key] }
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user