Method: MergeRequests::BaseService#execute_hooks

Defined in:
app/services/merge_requests/base_service.rb

#execute_hooks(merge_request, action = 'open', old_rev: nil, old_associations: {}, system: false, system_action: nil) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'app/services/merge_requests/base_service.rb', line 33

def execute_hooks(merge_request, action = 'open', old_rev: nil, old_associations: {}, system: false, system_action: nil)
  # NOTE: Due to the async merge request diffs generation, we need to skip this for CreateService and execute it in
  #   AfterCreateService instead so that the webhook consumers receive the update when diffs are ready.
  return if merge_request.skip_ensure_merge_request_diff

  merge_data = Gitlab::Lazy.new { hook_data(merge_request, action, old_rev: old_rev, old_associations: old_associations, system: system, system_action: system_action) }
  merge_request.project.execute_hooks(merge_data, :merge_request_hooks)
  merge_request.project.execute_integrations(merge_data, :merge_request_hooks)

  execute_external_hooks(merge_request, merge_data)
  execute_group_mention_hooks(merge_request, merge_data) if action == 'open'

  enqueue_jira_connect_messages_for(merge_request)
end