Class: AutoMerge::MergeWhenPipelineSucceedsService

Inherits:
BaseService show all
Defined in:
app/services/auto_merge/merge_when_pipeline_succeeds_service.rb

Instance Attribute Summary

Attributes inherited from BaseService

#current_user, #params, #project

Instance Method Summary collapse

Methods inherited from BaseService

#update

Methods included from MergeRequests::AssignsMergeParams

#assign_allowed_merge_params, included

Methods inherited from BaseService

#initialize

Methods included from BaseServiceUtility

#deny_visibility_level, #event_service, #log_error, #log_info, #notification_service, #system_hook_service, #todo_service, #visibility_level

Methods included from Gitlab::Allowable

#can?

Constructor Details

This class inherits a constructor from BaseService

Instance Method Details

#abort(merge_request, reason) ⇒ Object



29
30
31
32
33
# File 'app/services/auto_merge/merge_when_pipeline_succeeds_service.rb', line 29

def abort(merge_request, reason)
  super do
    SystemNoteService.abort_merge_when_pipeline_succeeds(merge_request, project, current_user, reason)
  end
end

#available_for?(merge_request) ⇒ Boolean

Returns:

  • (Boolean)


35
36
37
38
39
# File 'app/services/auto_merge/merge_when_pipeline_succeeds_service.rb', line 35

def available_for?(merge_request)
  super do
    check_availability(merge_request)
  end
end

#cancel(merge_request) ⇒ Object



23
24
25
26
27
# File 'app/services/auto_merge/merge_when_pipeline_succeeds_service.rb', line 23

def cancel(merge_request)
  super do
    SystemNoteService.cancel_merge_when_pipeline_succeeds(merge_request, project, current_user)
  end
end

#execute(merge_request) ⇒ Object



5
6
7
8
9
# File 'app/services/auto_merge/merge_when_pipeline_succeeds_service.rb', line 5

def execute(merge_request)
  super do
    add_system_note(merge_request)
  end
end

#process(merge_request) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
# File 'app/services/auto_merge/merge_when_pipeline_succeeds_service.rb', line 11

def process(merge_request)
  logger.info("Processing Automerge")
  return unless merge_request.actual_head_pipeline_success?

  logger.info("Pipeline Success")
  return unless merge_request.mergeable?

  logger.info("Merge request mergeable")

  merge_request.merge_async(merge_request.merge_user_id, merge_request.merge_params)
end