afe5d7d209
1) Adds a DB migration for all services to toggle on push, issue, and merge events. 2) Upon an issue or merge request event, fire service hooks. 3) Slack service supports custom messages for each of these events. Other services not supported at the moment. 4) Label merge request hooks with their corresponding actions.
24 lines
888 B
Ruby
24 lines
888 B
Ruby
module MergeRequests
|
|
class BaseService < ::IssuableBaseService
|
|
|
|
def create_note(merge_request)
|
|
Note.create_status_change_note(merge_request, merge_request.target_project, current_user, merge_request.state, nil)
|
|
end
|
|
|
|
def hook_data(merge_request, action)
|
|
hook_data = merge_request.to_hook_data(current_user)
|
|
merge_request_url = Gitlab::UrlBuilder.new(:merge_request).build(merge_request.id)
|
|
hook_data[:object_attributes][:url] = merge_request_url
|
|
hook_data[:object_attributes][:action] = action
|
|
hook_data
|
|
end
|
|
|
|
def execute_hooks(merge_request, action = 'open')
|
|
if merge_request.project
|
|
merge_data = hook_data(merge_request, action)
|
|
merge_request.project.execute_hooks(merge_data, :merge_request_hooks)
|
|
merge_request.project.execute_services(merge_data, :merge_request_hooks)
|
|
end
|
|
end
|
|
end
|
|
end
|