diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-09-16 15:06:26 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-09-16 15:06:26 +0000 |
commit | 84727c8209a4412e21111a07f99b0438b03232de (patch) | |
tree | 1fcfa02b01548c3cdc561186870a1c807f227f0b /app/services/releases | |
parent | d2798d607e11e0ebae83ae909404834388733428 (diff) | |
download | gitlab-ce-84727c8209a4412e21111a07f99b0438b03232de.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/services/releases')
-rw-r--r-- | app/services/releases/concerns.rb | 22 | ||||
-rw-r--r-- | app/services/releases/create_service.rb | 4 | ||||
-rw-r--r-- | app/services/releases/update_service.rb | 4 |
3 files changed, 17 insertions, 13 deletions
diff --git a/app/services/releases/concerns.rb b/app/services/releases/concerns.rb index b5412e97284..a0ebaea77c8 100644 --- a/app/services/releases/concerns.rb +++ b/app/services/releases/concerns.rb @@ -48,25 +48,29 @@ module Releases end end - def milestone - return unless params[:milestone] + def milestones + return [] unless param_for_milestone_titles_provided? - strong_memoize(:milestone) do + strong_memoize(:milestones) do MilestonesFinder.new( project: project, current_user: current_user, project_ids: Array(project.id), - title: params[:milestone] - ).execute.first + state: 'all', + title: params[:milestones] + ).execute end end - def inexistent_milestone? - params[:milestone] && !params[:milestone].empty? && !milestone + def inexistent_milestones + return [] unless param_for_milestone_titles_provided? + + existing_milestone_titles = milestones.map(&:title) + Array(params[:milestones]) - existing_milestone_titles end - def param_for_milestone_title_provided? - params[:milestone].present? || params[:milestone]&.empty? + def param_for_milestone_titles_provided? + params.key?(:milestones) end end end diff --git a/app/services/releases/create_service.rb b/app/services/releases/create_service.rb index c91d43084d3..9a0a876454f 100644 --- a/app/services/releases/create_service.rb +++ b/app/services/releases/create_service.rb @@ -7,7 +7,7 @@ module Releases def execute return error('Access Denied', 403) unless allowed? return error('Release already exists', 409) if release - return error('Milestone does not exist', 400) if inexistent_milestone? + return error("Milestone(s) not found: #{inexistent_milestones.join(', ')}", 400) if inexistent_milestones.any? tag = ensure_tag @@ -61,7 +61,7 @@ module Releases sha: tag.dereferenced_target.sha, released_at: released_at, links_attributes: params.dig(:assets, 'links') || [], - milestone: milestone + milestones: milestones ) end end diff --git a/app/services/releases/update_service.rb b/app/services/releases/update_service.rb index 70acc68f747..7aa51c4a332 100644 --- a/app/services/releases/update_service.rb +++ b/app/services/releases/update_service.rb @@ -9,9 +9,9 @@ module Releases return error('Release does not exist', 404) unless release return error('Access Denied', 403) unless allowed? return error('params is empty', 400) if empty_params? - return error('Milestone does not exist', 400) if inexistent_milestone? + return error("Milestone(s) not found: #{inexistent_milestones.join(', ')}", 400) if inexistent_milestones.any? - params[:milestone] = milestone if param_for_milestone_title_provided? + params[:milestones] = milestones if param_for_milestone_titles_provided? if release.update(params) success(tag: existing_tag, release: release) |