mirror of
https://github.com/zulip/zulip.git
synced 2025-11-16 11:52:01 +00:00
Add PR edited, assigned and unassigned to github webhook integration.
This commit is contained in:
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user