summaryrefslogtreecommitdiff
path: root/app/services/merge_requests/merge_when_pipeline_succeeds_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/merge_requests/merge_when_pipeline_succeeds_service.rb')
-rw-r--r--app/services/merge_requests/merge_when_pipeline_succeeds_service.rb24
1 files changed, 14 insertions, 10 deletions
diff --git a/app/services/merge_requests/merge_when_pipeline_succeeds_service.rb b/app/services/merge_requests/merge_when_pipeline_succeeds_service.rb
index 5616edf8b4a..aed5287940e 100644
--- a/app/services/merge_requests/merge_when_pipeline_succeeds_service.rb
+++ b/app/services/merge_requests/merge_when_pipeline_succeeds_service.rb
@@ -1,18 +1,18 @@
module MergeRequests
class MergeWhenPipelineSucceedsService < MergeRequests::BaseService
- # Marks the passed `merge_request` to be merged when the build succeeds or
+ # Marks the passed `merge_request` to be merged when the pipeline succeeds or
# updates the params for the automatic merge
def execute(merge_request)
merge_request.merge_params.merge!(params)
# The service is also called when the merge params are updated.
- already_approved = merge_request.merge_when_build_succeeds?
+ already_approved = merge_request.merge_when_pipeline_succeeds?
unless already_approved
- merge_request.merge_when_build_succeeds = true
- merge_request.merge_user = @current_user
+ merge_request.merge_when_pipeline_succeeds = true
+ merge_request.merge_user = @current_user
- SystemNoteService.merge_when_build_succeeds(merge_request, @project, @current_user, merge_request.diff_head_commit)
+ SystemNoteService.merge_when_pipeline_succeeds(merge_request, @project, @current_user, merge_request.diff_head_commit)
end
merge_request.save
@@ -23,8 +23,12 @@ module MergeRequests
return unless pipeline.success?
pipeline_merge_requests(pipeline) do |merge_request|
- next unless merge_request.merge_when_build_succeeds?
- next unless merge_request.mergeable?
+ next unless merge_request.merge_when_pipeline_succeeds?
+
+ unless merge_request.mergeable?
+ todo_service.merge_request_became_unmergeable(merge_request)
+ next
+ end
MergeWorker.perform_async(merge_request.id, merge_request.merge_user_id, merge_request.merge_params)
end
@@ -32,9 +36,9 @@ module MergeRequests
# Cancels the automatic merge
def cancel(merge_request)
- if merge_request.merge_when_build_succeeds? && merge_request.open?
- merge_request.reset_merge_when_build_succeeds
- SystemNoteService.cancel_merge_when_build_succeeds(merge_request, @project, @current_user)
+ if merge_request.merge_when_pipeline_succeeds? && merge_request.open?
+ merge_request.reset_merge_when_pipeline_succeeds
+ SystemNoteService.cancel_merge_when_pipeline_succeeds(merge_request, @project, @current_user)
success
else