Return a little more information in Issue webhook

When a webhook for issues is triggered, it should also return the
resource URL, and the action that was performed (ie: Was it reopened,
updated, opened or closed)
This commit is contained in:
Jeroen van Baarsen 2014-05-23 15:16:03 +02:00
parent a5cbb4cb82
commit 45e1941fb3
5 changed files with 12 additions and 6 deletions

View File

@ -1,5 +1,6 @@
module Issues
class BaseService < ::BaseService
include Rails.application.routes.url_helpers
private
@ -7,8 +8,13 @@ module Issues
Note.create_assignee_change_note(issue, issue.project, current_user, issue.assignee)
end
def execute_hooks(issue)
issue.project.execute_hooks(issue.to_hook_data, :issue_hooks)
def execute_hooks(issue, action = 'open')
issue_data = issue.to_hook_data
issue_url = project_issue_url(id: issue.iid,
project_id: issue.project,
host: Settings.gitlab['url'])
issue_data[:object_attributes].merge!(url: issue_url, action: action)
issue.project.execute_hooks(issue_data, :issue_hooks)
end
def create_milestone_note(issue)

View File

@ -5,7 +5,7 @@ module Issues
notification_service.close_issue(issue, current_user)
event_service.close_issue(issue, current_user)
create_note(issue, commit)
execute_hooks(issue)
execute_hooks(issue, 'close')
end
issue

View File

@ -8,7 +8,7 @@ module Issues
notification_service.new_issue(issue, current_user)
event_service.open_issue(issue, current_user)
issue.create_cross_references!(issue.project, current_user)
execute_hooks(issue)
execute_hooks(issue, 'open')
end
issue

View File

@ -4,7 +4,7 @@ module Issues
if issue.reopen
event_service.reopen_issue(issue, current_user)
create_note(issue)
execute_hooks(issue)
execute_hooks(issue, 'reopen')
end
issue

View File

@ -23,7 +23,7 @@ module Issues
end
issue.notice_added_references(issue.project, current_user)
execute_hooks(issue)
execute_hooks(issue, 'update')
end
issue