summaryrefslogtreecommitdiff
path: root/app/workers/repository_fork_worker.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-03-17 21:09:16 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-03-17 21:09:16 +0000
commit154b9bae142ba15fec753f44327654595094b879 (patch)
tree027f8ae024961778d5b00c77a72fe302f985d4f3 /app/workers/repository_fork_worker.rb
parent2c156e3c7bbade01c36eee18327f1ced6eebea79 (diff)
downloadgitlab-ce-154b9bae142ba15fec753f44327654595094b879.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/workers/repository_fork_worker.rb')
-rw-r--r--app/workers/repository_fork_worker.rb26
1 files changed, 13 insertions, 13 deletions
diff --git a/app/workers/repository_fork_worker.rb b/app/workers/repository_fork_worker.rb
index b202c568d93..395fce0696c 100644
--- a/app/workers/repository_fork_worker.rb
+++ b/app/workers/repository_fork_worker.rb
@@ -2,7 +2,6 @@
class RepositoryForkWorker # rubocop:disable Scalability/IdempotentWorker
include ApplicationWorker
- include Gitlab::ShellAdapter
include ProjectStartImport
include ProjectImportOptions
@@ -27,18 +26,8 @@ class RepositoryForkWorker # rubocop:disable Scalability/IdempotentWorker
Gitlab::Metrics.add_event(:fork_repository)
- result = gitlab_shell.fork_repository(source_project, target_project)
-
- if result
- link_lfs_objects(source_project, target_project)
- else
- raise_fork_failure(
- source_project,
- target_project,
- 'Failed to create fork repository'
- )
- end
-
+ gitaly_fork!(source_project, target_project)
+ link_lfs_objects(source_project, target_project)
target_project.after_import
end
@@ -49,6 +38,17 @@ class RepositoryForkWorker # rubocop:disable Scalability/IdempotentWorker
false
end
+ def gitaly_fork!(source_project, target_project)
+ source_repo = source_project.repository.raw
+ target_repo = target_project.repository.raw
+
+ ::Gitlab::GitalyClient::RepositoryService.new(target_repo).fork_repository(source_repo)
+ rescue GRPC::BadStatus => e
+ Gitlab::ErrorTracking.track_exception(e, source_project_id: source_project.id, target_project_id: target_project.id)
+
+ raise_fork_failure(source_project, target_project, 'Failed to create fork repository')
+ end
+
def link_lfs_objects(source_project, target_project)
Projects::LfsPointers::LfsLinkService
.new(target_project)