summaryrefslogtreecommitdiff
path: root/lib/api/internal.rb
diff options
context:
space:
mode:
authorLuke Duncalfe <lduncalfe@eml.cc>2019-04-08 17:07:53 +1200
committerLuke Duncalfe <lduncalfe@eml.cc>2019-04-09 10:57:01 +1200
commite73f537cb5097e85849110bafe184cb89e3bbc22 (patch)
treec711e4148007708c5dcb9fb45eab68092b8a9503 /lib/api/internal.rb
parent68f189ad23d7a384f40caa152d263fdf1465b30a (diff)
downloadgitlab-ce-e73f537cb5097e85849110bafe184cb89e3bbc22.tar.gz
Refactor PushOptionsHandlerService from review
Exceptions are no longer raised, instead all errors encountered are added to the errors property. MergeRequests::BuildService is used to generate attributes of a new merge request. Code moved from Api::Internal to Api::Helpers::InternalHelpers.
Diffstat (limited to 'lib/api/internal.rb')
-rw-r--r--lib/api/internal.rb20
1 files changed, 2 insertions, 18 deletions
diff --git a/lib/api/internal.rb b/lib/api/internal.rb
index ee1fb465608..224aaaaf006 100644
--- a/lib/api/internal.rb
+++ b/lib/api/internal.rb
@@ -264,24 +264,8 @@ module API
PostReceive.perform_async(params[:gl_repository], params[:identifier],
params[:changes], push_options.as_json)
- if (mr_options = push_options.get(:merge_request))
- begin
- service = ::MergeRequests::PushOptionsHandlerService.new(
- project,
- user,
- params[:changes],
- mr_options
- ).execute
-
- if service.errors.present?
- output[:warnings] = push_options_warning(service.errors.join("\n\n"))
- end
- rescue ::MergeRequests::PushOptionsHandlerService::Error => e
- output[:warnings] = push_options_warning(e.message)
- rescue Gitlab::Access::AccessDeniedError
- output[:warnings] = push_options_warning('User access was denied')
- end
- end
+ mr_options = push_options.get(:merge_request)
+ output.merge!(process_mr_push_options(mr_options, project, user, params[:changes])) if mr_options.present?
broadcast_message = BroadcastMessage.current&.last&.message
reference_counter_decreased = Gitlab::ReferenceCounter.new(params[:gl_repository]).decrease