diff options
author | James Lopez <james@jameslopez.es> | 2016-05-13 16:25:27 +0200 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2016-05-13 16:25:27 +0200 |
commit | 1eb802cde331fa8b3e18b45d0d3f81061661a22f (patch) | |
tree | 5672d290d187f5f94a43d4d51fe62ffb829d98d7 /lib | |
parent | a86825826915f78a0728becd91f6a31df90543ea (diff) | |
download | gitlab-ce-1eb802cde331fa8b3e18b45d0d3f81061661a22f.tar.gz |
fixed leaving comments on notes about missing authors
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/import_export/import_service.rb | 7 | ||||
-rw-r--r-- | lib/gitlab/import_export/members_mapper.rb | 13 | ||||
-rw-r--r-- | lib/gitlab/import_export/project_tree_restorer.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/import_export/relation_factory.rb | 9 |
4 files changed, 19 insertions, 12 deletions
diff --git a/lib/gitlab/import_export/import_service.rb b/lib/gitlab/import_export/import_service.rb index 670f1ebece8..0c483884fe9 100644 --- a/lib/gitlab/import_export/import_service.rb +++ b/lib/gitlab/import_export/import_service.rb @@ -16,7 +16,12 @@ module Gitlab def execute Gitlab::ImportExport::Importer.import(archive_file: @archive_file, shared: @shared) - project_tree.project if [restore_project_tree, restore_repo, restore_wiki_repo].all? + if [restore_project_tree, restore_repo, restore_wiki_repo].all? + project_tree.project + else + project_tree.project.destroy if project_tree.project + nil + end end private diff --git a/lib/gitlab/import_export/members_mapper.rb b/lib/gitlab/import_export/members_mapper.rb index da8aa475653..5332529a90f 100644 --- a/lib/gitlab/import_export/members_mapper.rb +++ b/lib/gitlab/import_export/members_mapper.rb @@ -4,10 +4,10 @@ module Gitlab attr_reader :map, :note_member_list - def initialize(exported_members:, user:, project_id:) + def initialize(exported_members:, user:, project:) @exported_members = exported_members @user = user - @project_id = project_id + @project = project @note_member_list = [] @project_member_map = Hash.new do |_, key| @@ -36,20 +36,21 @@ module Gitlab end def member_hash(member) - member.except('id').merge(source_id: @project_id) + member.except('id').merge(source_id: @project.id) end - #TODO: If default, then we need to leave a comment 'Comment by <original username>' on comments def default_project_member @default_project_member ||= begin + return @project.project_members.first.user.id unless @project.project_members.empty? default_member = ProjectMember.new(default_project_member_hash) - default_member.user.id if default_member.save + default_member.save! + default_member.user.id end end def default_project_member_hash - { user: @user, access_level: ProjectMember::MASTER, source_id: @project_id } + { user: @user, access_level: ProjectMember::MASTER, source_id: @project.id } end def find_project_user_query(member) diff --git a/lib/gitlab/import_export/project_tree_restorer.rb b/lib/gitlab/import_export/project_tree_restorer.rb index a840c9f9478..bd343d0b695 100644 --- a/lib/gitlab/import_export/project_tree_restorer.rb +++ b/lib/gitlab/import_export/project_tree_restorer.rb @@ -29,7 +29,7 @@ module Gitlab def members_mapper @members_mapper ||= Gitlab::ImportExport::MembersMapper.new(exported_members: @project_members, user: @user, - project_id: project.id) + project: project) end def create_relations(relation_list = default_relation_list, tree_hash = @tree_hash) diff --git a/lib/gitlab/import_export/relation_factory.rb b/lib/gitlab/import_export/relation_factory.rb index 0adcd0d5e6c..cdd4987f980 100644 --- a/lib/gitlab/import_export/relation_factory.rb +++ b/lib/gitlab/import_export/relation_factory.rb @@ -30,16 +30,17 @@ module Gitlab def update_missing_author(relation_hash, members_map) old_author_id = relation_hash['author_id'] relation_hash['author_id'] = members_map.map[old_author_id] + author = relation_hash.delete('author') + return unless members_map.note_member_list.include?(old_author_id) relation_hash['note'] = ('*Blank note*') if relation_hash['note'].blank? - relation_hash['note'] += (missing_author_note(relation_hash['updated_at'], - relation_hash['author']['name'])) - relation_hash.delete('author') + relation_hash['note'] += (missing_author_note(relation_hash['updated_at'], author['name'])) end def missing_author_note(updated_at, author_name) - "\n\n *By #{author_name} on #{updated_at} (imported from GitLab project)*" + timestamp = updated_at.split('.').first + "\n\n *By #{author_name} on #{timestamp} (imported from GitLab project)*" end def update_project_references(relation_hash, klass) |