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/models/project.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/models/project.rb')
-rw-r--r-- | app/models/project.rb | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index 293ee04f228..397232e98d8 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -686,11 +686,21 @@ class Project < ActiveRecord::Base end def create_repository - if gitlab_shell.add_repository(path_with_namespace) - true + if forked? + if gitlab_shell.fork_repository(forked_from_project.path_with_namespace, self.namespace.path) + ensure_satellite_exists + true + else + errors.add(:base, 'Failed to fork repository') + false + end else - errors.add(:base, 'Failed to create repository') - false + if gitlab_shell.add_repository(path_with_namespace) + true + else + errors.add(:base, 'Failed to create repository') + false + end end end |