diff --git a/app/services/projects/import_export/import_service.rb b/app/services/projects/import_export/import_service.rb
index b252692cd77cc60e6832e37e207a9d4938f516ea..20eda2f228de1435e018b62816b5aea10c221891 100644
--- a/app/services/projects/import_export/import_service.rb
+++ b/app/services/projects/import_export/import_service.rb
@@ -2,8 +2,8 @@ module Projects
   module ImportExport
     class ExportService < BaseService
       def execute(options = {})
-
-        @import_path = options[:import_path]
+        archive_file = options[:archive_file]
+        Gitlab::ImportExport::Importer.import(archive_file: archive_file, storage_path: storage_path)
         restore_project_tree
         restore_repo(project_tree.project)
       end
@@ -15,11 +15,15 @@ module Projects
       end
 
       def project_tree
-        @project_tree ||= Gitlab::ImportExport::ProjectTreeRestorer.new(path: @import_path, user: @current_user)
+        @project_tree ||= Gitlab::ImportExport::ProjectTreeRestorer.new(path: storage_path, user: @current_user)
       end
 
       def restore_repo(project)
-        Gitlab::ImportExport::RepoRestorer.new(path: @import_path, project: project).restore
+        Gitlab::ImportExport::RepoRestorer.new(path: storage_path, project: project).restore
+      end
+
+      def storage_path
+        @storage_path ||= Gitlab::ImportExport.export_path(relative_path: project.path_with_namespace)
       end
     end
   end
diff --git a/lib/gitlab/import_export/command_line_util.rb b/lib/gitlab/import_export/command_line_util.rb
index f9041e9f4e588d07eec9d2618b7255691e558210..3665e2edb7d6f565a66dacc57be56085d495c883 100644
--- a/lib/gitlab/import_export/command_line_util.rb
+++ b/lib/gitlab/import_export/command_line_util.rb
@@ -24,13 +24,13 @@ module Gitlab
       end
 
       def tar_with_options(archive:, dir:, options:)
-        cmd = %W(tar -#{options} #{archive} -C #{dir} .)
+        cmd = %W(tar -#{options} #{archive} -C #{dir})
         _output, status = Gitlab::Popen.popen(cmd)
         status.zero?
       end
 
       def untar_with_options(archive:, dir:, options:)
-        cmd = %W(tar -#{options} #{archive)} -C #{dir})
+        cmd = %W(tar -#{options} #{archive} -C #{dir})
         _output, status = Gitlab::Popen.popen(cmd)
         status.zero?
       end
diff --git a/lib/gitlab/import_export/importer.rb b/lib/gitlab/import_export/importer.rb
index 79f54000bb03ef9b60989fddb148969f1d78e8c0..9f399845437169f0c0097a00320dc6e1d66fbe79 100644
--- a/lib/gitlab/import_export/importer.rb
+++ b/lib/gitlab/import_export/importer.rb
@@ -7,19 +7,19 @@ module Gitlab
         new(*args).import
       end
 
-      def initialize(archive_file:, storage_path:)
+      def initialize(archive_file: , storage_path:)
         @archive_file = archive_file
         @storage_path = storage_path
       end
 
       def import
-        decompress_export
+        decompress_archive
       end
 
       private
 
-      def decompress
-        untar_czf(archive: archive_file, dir: @storage_path)
+      def decompress_archive
+        untar_czf(archive: @archive_file, dir: @storage_path)
       end
     end
   end
diff --git a/lib/gitlab/import_export/project_tree_restorer.rb b/lib/gitlab/import_export/project_tree_restorer.rb
index 4c0f6a2267bf75efda23179303b3fc7652e649fa..4e0f555afe93fc8a564ae3f0ef736bfa77101c70 100644
--- a/lib/gitlab/import_export/project_tree_restorer.rb
+++ b/lib/gitlab/import_export/project_tree_restorer.rb
@@ -4,7 +4,7 @@ module Gitlab
       attr_reader :project
 
       def initialize(path:, user:)
-        @path = path
+        @path = File.join(path, 'project.json')
         @user = user
       end
 
diff --git a/lib/gitlab/import_export/repo_restorer.rb b/lib/gitlab/import_export/repo_restorer.rb
index 42126cabd9780d51e277c36b0d41899d3aef2931..47be303e22ae83326e4a2d437c510df3155cf6ce 100644
--- a/lib/gitlab/import_export/repo_restorer.rb
+++ b/lib/gitlab/import_export/repo_restorer.rb
@@ -3,9 +3,9 @@ module Gitlab
     class RepoRestorer
       include Gitlab::ImportExport::CommandLineUtil
 
-      def initialize(project: , path: )
+      def initialize(project: , path:, bundler_file: )
         @project = project
-        @path = path
+        @path = File.join(path, bundler_file)
       end
 
       def restore