summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/import/gitlab_projects_controller.rb8
-rw-r--r--app/views/import/gitlab_projects/status.html.haml55
-rw-r--r--lib/gitlab/import_export/command_line_util.rb2
-rw-r--r--lib/gitlab/import_export/import_service.rb3
-rw-r--r--lib/gitlab/import_export/repo_restorer.rb2
-rw-r--r--spec/features/projects/import_export/import_file_spec.rb5
6 files changed, 7 insertions, 68 deletions
diff --git a/app/controllers/import/gitlab_projects_controller.rb b/app/controllers/import/gitlab_projects_controller.rb
index b141b5f472a..f8d4bcff55a 100644
--- a/app/controllers/import/gitlab_projects_controller.rb
+++ b/app/controllers/import/gitlab_projects_controller.rb
@@ -12,13 +12,7 @@ class Import::GitlabProjectsController < Import::BaseController
end
def status
- @repos = client.projects
- @incompatible_repos = client.incompatible_projects
- @already_added_projects = current_user.created_projects.where(import_type: "gitlab_project")
- already_added_projects_names = @already_added_projects.pluck(:import_source)
-
- @repos.to_a.reject!{ |repo| already_added_projects_names.include? "#{repo["owner"]}/#{repo["slug"]}" }
end
def jobs
@@ -39,6 +33,8 @@ class Import::GitlabProjectsController < Import::BaseController
tmp_file: File.expand_path(file.path),
namespace_id: namespace_id,
project_path: path)
+
+ redirect_to status_import_gitlab_project_path
end
private
diff --git a/app/views/import/gitlab_projects/status.html.haml b/app/views/import/gitlab_projects/status.html.haml
index 2b879f0c595..e69de29bb2d 100644
--- a/app/views/import/gitlab_projects/status.html.haml
+++ b/app/views/import/gitlab_projects/status.html.haml
@@ -1,55 +0,0 @@
-- page_title "Gitlab_project import"
-- header_title "Projects", root_path
-%h3.page-title
- %i.icon-gitlab.icon-gitlab-big
- Import Gitlab projects
-
-%p.light
- Select projects you want to import.
-%hr
-%p
- = button_tag class: "btn btn-import btn-success js-import-all" do
- Import all projects
- = icon("spinner spin", class: "loading-icon")
-
-.table-responsive
- %table.table.import-jobs
- %colgroup.import-jobs-from-col
- %colgroup.import-jobs-to-col
- %colgroup.import-jobs-status-col
- %thead
- %tr
- %th From Gitlab_project.org
- %th To GitLab
- %th Status
- %tbody
- - @already_added_projects.each do |project|
- %tr{id: "project_#{project.id}", class: "#{project_status_css_class(project.import_status)}"}
- %td
- = link_to project.import_source, "https://gitlab_project.org/#{project.import_source}", target: "_blank"
- %td
- = link_to project.path_with_namespace, [project.namespace.becomes(Namespace), project]
- %td.job-status
- - if project.import_status == 'finished'
- %span
- %i.fa.fa-check
- done
- - elsif project.import_status == 'started'
- %i.fa.fa-spinner.fa-spin
- started
- - else
- = project.human_import_status_name
-
- - @repos.each do |repo|
- %tr{id: "repo_#{repo.id}"}
- %td
- = link_to repo.full_name, "https://gitlab_project.org/#{repo.full_name}", target: "_blank"
- %td.import-target
- = repo.full_name
- %td.import-actions.job-status
- = button_tag class: "btn btn-import js-add-to-import" do
- Import
- = icon("spinner spin", class: "loading-icon")
-
-:javascript
- new ImporterStatus("#{jobs_import_gitlab_project_path}", "#{import_gitlab_project_path}");
diff --git a/lib/gitlab/import_export/command_line_util.rb b/lib/gitlab/import_export/command_line_util.rb
index 9fc83afc4f7..5ff72f5ff8d 100644
--- a/lib/gitlab/import_export/command_line_util.rb
+++ b/lib/gitlab/import_export/command_line_util.rb
@@ -9,7 +9,7 @@ module Gitlab
untar_with_options(archive: archive, dir: dir, options: 'zxf')
end
- def untar_czf(archive:, dir:)
+ def untar_xf(archive:, dir:)
untar_with_options(archive: archive, dir: dir, options: 'xf')
end
diff --git a/lib/gitlab/import_export/import_service.rb b/lib/gitlab/import_export/import_service.rb
index 226499030af..227053481cd 100644
--- a/lib/gitlab/import_export/import_service.rb
+++ b/lib/gitlab/import_export/import_service.rb
@@ -15,8 +15,7 @@ module Gitlab
def execute
Gitlab::ImportExport::Importer.import(archive_file: @archive_file, storage_path: storage_path)
- restore_project_tree
- restore_repo
+ project_tree.project if [restore_project_tree, restore_repo].all?
end
private
diff --git a/lib/gitlab/import_export/repo_restorer.rb b/lib/gitlab/import_export/repo_restorer.rb
index 2c67bd5a845..994fc4bea5a 100644
--- a/lib/gitlab/import_export/repo_restorer.rb
+++ b/lib/gitlab/import_export/repo_restorer.rb
@@ -15,7 +15,7 @@ module Gitlab
FileUtils.mkdir_p(repos_path)
FileUtils.mkdir_p(path_to_repo)
- untar_zxf(archive: @path, dir: path_to_repo)
+ untar_xf(archive: @path, dir: path_to_repo)
end
private
diff --git a/spec/features/projects/import_export/import_file_spec.rb b/spec/features/projects/import_export/import_file_spec.rb
index 32e131d7040..0bc2b85edb1 100644
--- a/spec/features/projects/import_export/import_file_spec.rb
+++ b/spec/features/projects/import_export/import_file_spec.rb
@@ -8,6 +8,8 @@ feature 'project import', feature: true, js: true do
let(:file) { File.join(Rails.root, 'spec', 'features', 'projects', 'import_export', 'test_project_export.tar.gz') }
background do
+ export_path = "#{Dir::tmpdir}/import_file_spec"
+ allow_any_instance_of(Gitlab::ImportExport).to receive(:storage_path).and_return(export_path)
login_as(user)
end
@@ -27,9 +29,6 @@ feature 'project import', feature: true, js: true do
sleep 1
click_on 'Continue to the next step'
-
- sleep 1
-
end
def drop_in_dropzone(file_path)