summaryrefslogtreecommitdiff
path: root/lib/gitlab/shell.rb
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2019-01-16 22:40:23 -0800
committerStan Hu <stanhu@gmail.com>2019-02-05 21:33:09 -0800
commit6bac612dc4545abcbbfc86477417f711e02427ba (patch)
treea1dd2e6e3dc88715101e0ad0f2261c1dacd414be /lib/gitlab/shell.rb
parent82b6e5378ab7c63b166229388f0a9b1bd79319c7 (diff)
downloadgitlab-ce-6bac612dc4545abcbbfc86477417f711e02427ba.tar.gz
Clean up Shell.fork_repository
Use project models instead of a list of parameters.
Diffstat (limited to 'lib/gitlab/shell.rb')
-rw-r--r--lib/gitlab/shell.rb21
1 files changed, 7 insertions, 14 deletions
diff --git a/lib/gitlab/shell.rb b/lib/gitlab/shell.rb
index a3e0451a8fd..6f896f03947 100644
--- a/lib/gitlab/shell.rb
+++ b/lib/gitlab/shell.rb
@@ -126,20 +126,13 @@ module Gitlab
end
# Fork repository to new path
- # forked_from_storage - forked-from project's storage name
- # forked_from_disk_path - project disk relative path
- # forked_to_storage - forked-to project's storage name
- # forked_to_disk_path - forked project disk relative path
- #
- # Ex.
- # fork_repository("nfs-file06", "gitlab/gitlab-ci", "nfs-file07", "new-namespace/gitlab-ci")
- def fork_repository(
- forked_from_storage, forked_from_disk_path, forked_from_project_name,
- forked_to_storage, forked_to_disk_path, forked_to_project_name)
- forked_from_relative_path = "#{forked_from_disk_path}.git"
- fork_args = [forked_to_storage, "#{forked_to_disk_path}.git", forked_to_project_name]
-
- GitalyGitlabProjects.new(forked_from_storage, forked_from_relative_path, forked_from_project_name).fork_repository(*fork_args)
+ # source_project - forked-from Project
+ # target_project - forked-to Project
+ def fork_repository(source_project, target_project)
+ forked_from_relative_path = "#{source_project.disk_path}.git"
+ fork_args = [target_project.repository_storage, "#{target_project.disk_path}.git", target_project.full_path]
+
+ GitalyGitlabProjects.new(source_project.repository_storage, forked_from_relative_path, source_project.full_path).fork_repository(*fork_args)
end
# Removes a repository from file system, using rm_diretory which is an alias