diff options
author | Robert Schilling <rschilling@student.tugraz.at> | 2015-11-21 22:24:34 +0100 |
---|---|---|
committer | Robert Schilling <rschilling@student.tugraz.at> | 2015-11-21 22:24:34 +0100 |
commit | 3ea05c5b5b253de33d8bf8d615c66e2935b940ef (patch) | |
tree | 486d420d9c21ebe85b5b296685a9328179cb41dd /app | |
parent | 6f7e90f6dba300591281aba08ffbe30ce3cc5c90 (diff) | |
download | gitlab-ce-3ea05c5b5b253de33d8bf8d615c66e2935b940ef.tar.gz |
Only allow to create a release if it does not exist yet
Diffstat (limited to 'app')
-rw-r--r-- | app/services/create_release_service.rb | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/app/services/create_release_service.rb b/app/services/create_release_service.rb index 355374ce252..54e87478e64 100644 --- a/app/services/create_release_service.rb +++ b/app/services/create_release_service.rb @@ -8,12 +8,18 @@ class CreateReleaseService < BaseService # Only create a release if the tag exists if existing_tag - release = project.releases.find_or_initialize_by(tag: tag_name) - release.update_attributes(description: release_description) + release = project.releases.find_by(tag: tag_name) - success(release) + if(release) + error('Release already exists', 409) + else + release = project.releases.new({ tag: tag_name, description: release_description }) + release.save + + success(release) + end else - error('Tag does not exist') + error('Tag does not exist', 404) end end |