Refactor travis integration.

This commit is contained in:
Tomasz Kolek
2017-03-06 05:56:36 +01:00
committed by Tim Abbott
parent f63f251f8f
commit 15485ec972

View File

@@ -12,6 +12,14 @@ from typing import Dict
import ujson import ujson
GOOD_STATUSES = ['Passed', 'Fixed']
BAD_STATUSES = ['Failed', 'Broken', 'Still Failing']
MESSAGE_TEMPLATE = (
u'Author: {}\n'
u'Build status: {} {}\n'
u'Details: [changes]({}), [build log]({})'
)
@api_key_only_webhook_view('Travis') @api_key_only_webhook_view('Travis')
@has_request_variables @has_request_variables
@@ -24,28 +32,23 @@ def api_travis_webhook(request, user_profile, client,
('compare_url', check_string), ('compare_url', check_string),
]))): ]))):
# type: (HttpRequest, UserProfile, Client, str, str, Dict[str, str]) -> HttpResponse # type: (HttpRequest, UserProfile, Client, str, str, Dict[str, str]) -> HttpResponse
author = message['author_name']
message_type = message['status_message']
changes = message['compare_url']
good_status = ['Passed', 'Fixed'] message_status = message['status_message']
bad_status = ['Failed', 'Broken', 'Still Failing']
emoji = '' if message_status in GOOD_STATUSES:
if message_type in good_status:
emoji = ':thumbsup:' emoji = ':thumbsup:'
elif message_type in bad_status: elif message_status in BAD_STATUSES:
emoji = ':thumbsdown:' emoji = ':thumbsdown:'
else: else:
emoji = "(No emoji specified for status '%s'.)" % (message_type,) emoji = "(No emoji specified for status '{}'.)".format(message_status)
build_url = message['build_url'] body = MESSAGE_TEMPLATE.format(
message['author_name'],
template = ( message_status,
u'Author: %s\n' emoji,
u'Build status: %s %s\n' message['compare_url'],
u'Details: [changes](%s), [build log](%s)') message['build_url']
)
body = template % (author, message_type, emoji, changes, build_url)
check_send_message(user_profile, client, 'stream', [stream], topic, body) check_send_message(user_profile, client, 'stream', [stream], topic, body)
return json_success() return json_success()