diff options
author | Douwe Maan <douwe@gitlab.com> | 2015-04-24 21:37:12 +0200 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2015-04-24 22:58:27 +0200 |
commit | 0cf76a0b70f2a1dba6760263f842d2841dfc0cd9 (patch) | |
tree | cd2fa2cc924a66ddefcf914f31e59a82bc70faa2 /app/services/projects/create_service.rb | |
parent | 62117f2f25646009fb5b20d7a215d7d697ce3231 (diff) | |
download | gitlab-ce-forked-event.tar.gz |
Use Projects::CreateService to fork projects so that after-create hooks are run.forked-event
Diffstat (limited to 'app/services/projects/create_service.rb')
-rw-r--r-- | app/services/projects/create_service.rb | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/app/services/projects/create_service.rb b/app/services/projects/create_service.rb index a7afcf8f64b..011f6f6145e 100644 --- a/app/services/projects/create_service.rb +++ b/app/services/projects/create_service.rb @@ -5,6 +5,8 @@ module Projects end def execute + forked_from_project_id = params.delete(:forked_from_project_id) + @project = Project.new(params) # Make sure that the user is allowed to use the specified visibility @@ -45,10 +47,14 @@ module Projects @project.creator = current_user + if forked_from_project_id + @project.build_forked_project_link(forked_from_project_id: forked_from_project_id) + end + Project.transaction do @project.save - unless @project.import? + if @project.persisted? && !@project.import? unless @project.create_repository raise 'Failed to create repository' end |