summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJames Lopez <james@jameslopez.es>2016-05-13 16:25:27 +0200
committerJames Lopez <james@jameslopez.es>2016-05-13 16:25:27 +0200
commit1eb802cde331fa8b3e18b45d0d3f81061661a22f (patch)
tree5672d290d187f5f94a43d4d51fe62ffb829d98d7 /lib
parenta86825826915f78a0728becd91f6a31df90543ea (diff)
downloadgitlab-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.rb7
-rw-r--r--lib/gitlab/import_export/members_mapper.rb13
-rw-r--r--lib/gitlab/import_export/project_tree_restorer.rb2
-rw-r--r--lib/gitlab/import_export/relation_factory.rb9
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)