summaryrefslogtreecommitdiff
path: root/lib/gitlab/google_code_import
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2015-04-17 14:31:24 +0200
committerDouwe Maan <douwe@gitlab.com>2015-04-17 14:49:00 +0200
commit7d98c8842d6bc9b14fb410f028db7ab651961b42 (patch)
tree9cbf2db66275adff0f527d0219393db4c8b7248f /lib/gitlab/google_code_import
parentdfebcb89e64d2e4b3ebd2d69b6ae386b6fcc5be0 (diff)
downloadgitlab-ce-7d98c8842d6bc9b14fb410f028db7ab651961b42.tar.gz
Move import data out of project so it doesn't take ages to load.
Diffstat (limited to 'lib/gitlab/google_code_import')
-rw-r--r--lib/gitlab/google_code_import/importer.rb10
-rw-r--r--lib/gitlab/google_code_import/project_creator.rb29
2 files changed, 17 insertions, 22 deletions
diff --git a/lib/gitlab/google_code_import/importer.rb b/lib/gitlab/google_code_import/importer.rb
index 777472cf3c5..4db6047e6c7 100644
--- a/lib/gitlab/google_code_import/importer.rb
+++ b/lib/gitlab/google_code_import/importer.rb
@@ -5,7 +5,10 @@ module Gitlab
def initialize(project)
@project = project
- @repo = GoogleCodeImport::Repository.new(project.import_data["repo"])
+
+ import_data = project.import_data.try(:data)
+ repo_data = import_data["repo"] if import_data
+ @repo = GoogleCodeImport::Repository.new(repo_data)
@closed_statuses = []
@known_labels = Set.new
@@ -27,9 +30,10 @@ module Gitlab
def user_map
@user_map ||= begin
- user_map = Hash.new { |hash, user| hash[user] = Client.mask_email(user) }
+ user_map = Hash.new { |hash, user| Client.mask_email(user) }
- stored_user_map = project.import_data["user_map"]
+ import_data = project.import_data.try(:data)
+ stored_user_map = import_data["user_map"] if import_data
user_map.update(stored_user_map) if stored_user_map
user_map
diff --git a/lib/gitlab/google_code_import/project_creator.rb b/lib/gitlab/google_code_import/project_creator.rb
index 7ac4387d79d..0cfeaf9d61c 100644
--- a/lib/gitlab/google_code_import/project_creator.rb
+++ b/lib/gitlab/google_code_import/project_creator.rb
@@ -11,12 +11,7 @@ module Gitlab
end
def execute
- import_data = {
- "repo" => repo.raw_data,
- "user_map" => user_map
- }
-
- @project = Project.new(
+ project = ::Projects::CreateService.new(current_user,
name: repo.name,
path: repo.name,
description: repo.summary,
@@ -25,21 +20,17 @@ module Gitlab
visibility_level: Gitlab::VisibilityLevel::PUBLIC,
import_type: "google_code",
import_source: repo.name,
- import_url: repo.import_url,
- import_data: import_data
- )
+ import_url: repo.import_url
+ ).execute
- if @project.save!
- @project.reload
-
- if @project.import_failed?
- @project.import_retry
- else
- @project.import_start
- end
- end
+ import_data = project.create_import_data(
+ data: {
+ "repo" => repo.raw_data,
+ "user_map" => user_map
+ }
+ )
- @project
+ project
end
end
end