diff --git a/app/controllers/import/gitlab_projects_controller.rb b/app/controllers/import/gitlab_projects_controller.rb index b141b5f472afd821d873063149e9405fe97e1611..f8d4bcff55a529b5075d7056b8cbe822945d97cf 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 2b879f0c5954a26891aa3a84c75fa9237d204bc8..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 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 9fc83afc4f75256ad00b369a51e2ae4b5ab9eeba..5ff72f5ff8d3a18964b491a432e23a21782e228a 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 226499030afb437b974ad3fc44848e68db6a3a25..227053481cd6aa90e7701e0af7258d2d9238ffad 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 2c67bd5a8456fbace00f27988dcd90ed9cc3b674..994fc4bea5aae7c38edde432c623d16febf0aefb 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 32e131d7040a2c943b4d61f459499a2744b950fa..0bc2b85edb1737bc656a106b3f6489a7790f44dd 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)