summaryrefslogtreecommitdiff
path: root/app/services/releases
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-01-10 18:07:43 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-01-10 18:07:43 +0000
commit6f0f893bd87535b61e0ecb1ce069eaa7fcb9e5be (patch)
tree8af92b29c838e9af2fd70f9a4a2314a08f4af922 /app/services/releases
parent8b1228b0d409d7751f01d9fb72ebfbbf62399486 (diff)
downloadgitlab-ce-6f0f893bd87535b61e0ecb1ce069eaa7fcb9e5be.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/services/releases')
-rw-r--r--app/services/releases/update_service.rb13
1 files changed, 11 insertions, 2 deletions
diff --git a/app/services/releases/update_service.rb b/app/services/releases/update_service.rb
index 6ba8dac21f0..a452f7aa17a 100644
--- a/app/services/releases/update_service.rb
+++ b/app/services/releases/update_service.rb
@@ -11,10 +11,13 @@ module Releases
return error('params is empty', 400) if empty_params?
return error("Milestone(s) not found: #{inexistent_milestones.join(', ')}", 400) if inexistent_milestones.any?
- params[:milestones] = milestones if param_for_milestone_titles_provided?
+ if param_for_milestone_titles_provided?
+ previous_milestones = release.milestones.map(&:title)
+ params[:milestones] = milestones
+ end
if release.update(params)
- success(tag: existing_tag, release: release)
+ success(tag: existing_tag, release: release, milestones_updated: milestones_updated?(previous_milestones))
else
error(release.errors.messages || '400 Bad request', 400)
end
@@ -29,5 +32,11 @@ module Releases
def empty_params?
params.except(:tag).empty?
end
+
+ def milestones_updated?(previous_milestones)
+ return false unless param_for_milestone_titles_provided?
+
+ previous_milestones.to_set != release.milestones.map(&:title)
+ end
end
end