Skip to content
Snippets Groups Projects
Commit 9c230180 authored by Valery Sizov's avatar Valery Sizov
Browse files

CI project forking

parent 0d0042d2
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -59,6 +59,26 @@ class GitlabCiService < CiService
end
end
 
def register_fork(new_project, user_token)
params = {
id: new_project.id,
name_with_namespace: new_project.name_with_namespace,
web_url: new_project.web_url,
default_branch: new_project.default_branch,
ssh_url_to_repo: new_project.ssh_url_to_repo
}
HTTParty.post(
register_fork_path,
body: {
project_id: project.id,
project_token: token,
user_token: user_token,
data: params.to_yaml},
verify: false
)
end
def commit_coverage(sha, ref)
response = get_ci_build(sha, ref)
 
Loading
Loading
@@ -75,6 +95,10 @@ class GitlabCiService < CiService
project_url + "?ref=" + project.default_branch
end
 
def register_fork_path
project_url.sub(/projects\/\d*/, 'api/v1/forks')
end
def status_img_path
project_url + "/status.png?ref=" + project.default_branch
end
Loading
Loading
Loading
Loading
@@ -40,12 +40,18 @@ module Projects
if project.save
project.team << [@current_user, :master]
end
#Now fork the repo
unless gitlab_shell.fork_repository(@from_project.path_with_namespace, project.namespace.path)
raise 'forking failed in gitlab-shell'
end
project.ensure_satellite_exists
end
if @from_project.gitlab_ci?
ForkRegistratorWorker.perform_async(@from_project.id, project.id, @current_user.private_token)
end
rescue => ex
project.errors.add(:base, 'Fork transaction failed.')
project.destroy
Loading
Loading
class ForkRegistratorWorker
include Sidekiq::Worker
sidekiq_options queue: :default
def perform(from_project_id, to_project_id, private_token)
from_project = Project.find(from_project_id)
to_project = Project.find(to_project_id)
from_project.gitlab_ci_service.register_fork(to_project, private_token)
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment