From df4dbf9b77a400137fa10965027641a39888590d Mon Sep 17 00:00:00 2001 From: Lyn Nagara Date: Fri, 19 Jul 2019 13:19:07 -0700 Subject: [PATCH] feat(servicehooks): Update servicehook URLs Updates the group and event URLs in servicehooks to align with the new Sentry 10 routes. Also uses the hex event ID instead of the deprecated autoincrement ID. --- src/sentry/tasks/servicehooks.py | 18 ++++-------------- tests/sentry/tasks/test_servicehooks.py | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/sentry/tasks/servicehooks.py b/src/sentry/tasks/servicehooks.py index fc76fb5966d3ca..507bff5e7ff59e 100644 --- a/src/sentry/tasks/servicehooks.py +++ b/src/sentry/tasks/servicehooks.py @@ -9,29 +9,19 @@ from sentry.models import ServiceHook from sentry.tasks.base import instrumented_task from sentry.utils import json -from sentry.utils.http import absolute_uri def get_payload_v0(event): group = event.group project = group.project - project_url_base = absolute_uri(u'/{}/{}'.format( - project.organization.slug, - project.slug, - )) - group_context = serialize(group) - group_context['url'] = u'{}/issues/{}/'.format( - project_url_base, - group.id, - ) + group_context['url'] = group.get_absolute_url() event_context = serialize(event) - event_context['url'] = u'{}/issues/{}/events/{}/'.format( - project_url_base, - group.id, - event.id, + event_context['url'] = u'{}events/{}/'.format( + group.get_absolute_url(), + event.event_id, ) data = { 'project': { diff --git a/tests/sentry/tasks/test_servicehooks.py b/tests/sentry/tasks/test_servicehooks.py index 515748f3771f6d..d3763d20387fc9 100644 --- a/tests/sentry/tasks/test_servicehooks.py +++ b/tests/sentry/tasks/test_servicehooks.py @@ -66,3 +66,18 @@ def test_event_created_sends_service_hook(self, safe_urlopen): 'X-ServiceHook-GUID', 'X-ServiceHook-Signature', )) + + def test_v0_payload(self): + event = self.create_event(project=self.project) + + process_service_hook(self.hook.id, event) + body = get_payload_v0(event) + assert body['group']['url'] == 'http://testserver/organizations/{}/issues/{}/'.format( + self.organization.slug, + event.group.id, + ) + assert body['event']['url'] == 'http://testserver/organizations/{}/issues/{}/events/{}/'.format( + self.organization.slug, + event.group.id, + event.event_id, + )