Add PR edited, assigned and unassigned to github webhook integration.

This commit is contained in:
Tomasz Kolek
2017-02-08 20:41:43 +01:00
committed by Tim Abbott
parent fcfa3123d3
commit 349835e619
5 changed files with 1371 additions and 2 deletions

View File

@@ -1,7 +1,7 @@
from __future__ import absolute_import
import re
from functools import partial
from typing import Any, Callable, Text
from typing import Any, Callable, Text, Dict
from django.http import HttpRequest, HttpResponse
from zerver.lib.actions import check_send_message
from zerver.lib.response import json_success
@@ -36,6 +36,20 @@ def get_opened_or_update_pull_request_body(payload):
assignee=assignee
)
def get_assigned_or_unassigned_pull_request_body(payload):
# type: (Dict[str, Any]) -> Text
pull_request = payload['pull_request']
assignee = pull_request.get('assignee', {}).get('login')
base_message = get_pull_request_event_message(
get_sender_name(payload),
payload['action'],
pull_request['html_url'],
)
if assignee:
return "{} to {}".format(base_message, assignee)
return base_message
def get_closed_pull_request_body(payload):
# type: (Dict[str, Any]) -> Text
pull_request = payload['pull_request']
@@ -350,6 +364,7 @@ EVENT_FUNCTION_MAPPER = {
'member': get_member_body,
'membership': get_membership_body,
'opened_or_update_pull_request': get_opened_or_update_pull_request_body,
'assigned_or_unassigned_pull_request': get_assigned_or_unassigned_pull_request_body,
'page_build': get_page_build_body,
'public': get_public_body,
'pull_request_review': get_pull_request_review_body,
@@ -380,8 +395,10 @@ def get_event(request, payload):
event = request.META['HTTP_X_GITHUB_EVENT']
if event == 'pull_request':
action = payload['action']
if action == 'opened' or action == 'synchronize' or action == 'reopened':
if action in ('opened', 'synchronize', 'reopened', 'edited'):
return 'opened_or_update_pull_request'
if action in ('assigned', 'unassigned'):
return 'assigned_or_unassigned_pull_request'
if action == 'closed':
return 'closed_pull_request'
raise UnknownEventType(u'Event pull_request with {} action is unsupported'.format(action))