summaryrefslogtreecommitdiff
path: root/app/services/projects/create_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/projects/create_service.rb')
-rw-r--r--app/services/projects/create_service.rb8
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