From 892bfa9b558538462a48344985e51a8e8c88b70a Mon Sep 17 00:00:00 2001 From: Ted Kaemming Date: Tue, 18 Dec 2018 11:21:09 -0800 Subject: [PATCH 1/3] fix(webhooks): Add event ID back to payload --- src/sentry/plugins/sentry_webhooks/plugin.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/sentry/plugins/sentry_webhooks/plugin.py b/src/sentry/plugins/sentry_webhooks/plugin.py index 4a12a90fd6a3ed..90ea2bdc5036d2 100644 --- a/src/sentry/plugins/sentry_webhooks/plugin.py +++ b/src/sentry/plugins/sentry_webhooks/plugin.py @@ -9,6 +9,7 @@ from django.utils.translation import ugettext_lazy as _ from sentry.exceptions import PluginError +from sentry.models import Event from sentry.plugins.bases import notify from sentry.http import is_valid_url, safe_urlopen from sentry.utils.safe import safe_execute @@ -90,7 +91,10 @@ def get_group_data(self, group, event, triggering_rules): data['event'] = dict(event.data or {}) data['event']['tags'] = event.get_tags() data['event']['event_id'] = event.event_id - data['event']['id'] = event.id + data['event']['id'] = Event.objects.filter( + project_id=event.project_id, + event_id=event.event_id, + ).values_list('id', flat=True).get() return data def get_webhook_urls(self, project): From 7f2d1e73260eb5a1cdb295f420190635b51ca7b8 Mon Sep 17 00:00:00 2001 From: Ted Kaemming Date: Tue, 18 Dec 2018 13:18:37 -0800 Subject: [PATCH 2/3] put id inclusion in webhook payload behind flag --- src/sentry/features/__init__.py | 1 + src/sentry/plugins/sentry_webhooks/plugin.py | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/sentry/features/__init__.py b/src/sentry/features/__init__.py index 9166d44d5fe9a7..989a9a75cf38b9 100644 --- a/src/sentry/features/__init__.py +++ b/src/sentry/features/__init__.py @@ -76,6 +76,7 @@ default_manager.add('organizations:gitlab-integration', OrganizationFeature) # NOQA default_manager.add('organizations:jira-server-integration', OrganizationFeature) # NOQA default_manager.add('organizations:large-debug-files', OrganizationFeature) # NOQA +default_manager.add('organizations:legacy-event-id', OrganizationFeature) # NOQA # Project scoped features default_manager.add('projects:similarity-view', ProjectFeature) # NOQA diff --git a/src/sentry/plugins/sentry_webhooks/plugin.py b/src/sentry/plugins/sentry_webhooks/plugin.py index 90ea2bdc5036d2..2be1793bfd4673 100644 --- a/src/sentry/plugins/sentry_webhooks/plugin.py +++ b/src/sentry/plugins/sentry_webhooks/plugin.py @@ -8,6 +8,7 @@ from django.conf import settings from django.utils.translation import ugettext_lazy as _ +from sentry import features from sentry.exceptions import PluginError from sentry.models import Event from sentry.plugins.bases import notify @@ -91,10 +92,11 @@ def get_group_data(self, group, event, triggering_rules): data['event'] = dict(event.data or {}) data['event']['tags'] = event.get_tags() data['event']['event_id'] = event.event_id - data['event']['id'] = Event.objects.filter( - project_id=event.project_id, - event_id=event.event_id, - ).values_list('id', flat=True).get() + if features.has('organizations:legacy-event-id', group.project.organization): + data['event']['id'] = Event.objects.filter( + project_id=event.project_id, + event_id=event.event_id, + ).values_list('id', flat=True).get() return data def get_webhook_urls(self, project): From eebe2c4cda1b38e6a265b39ad06ce0be3f62ba32 Mon Sep 17 00:00:00 2001 From: Ted Kaemming Date: Tue, 18 Dec 2018 14:48:54 -0800 Subject: [PATCH 3/3] ensure feature enabled during test/increase coverage --- tests/sentry/plugins/sentry_webhooks/test_plugin.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/sentry/plugins/sentry_webhooks/test_plugin.py b/tests/sentry/plugins/sentry_webhooks/test_plugin.py index ce14ac06a68c06..3705d36bd81999 100644 --- a/tests/sentry/plugins/sentry_webhooks/test_plugin.py +++ b/tests/sentry/plugins/sentry_webhooks/test_plugin.py @@ -31,7 +31,8 @@ def test_simple_notification(self): notification = Notification(event=event, rule=rule) self.project.update_option('webhooks:urls', 'http://example.com') - self.plugin.notify(notification) + with self.feature('organizations:legacy-event-id'): + self.plugin.notify(notification) assert len(responses.calls) == 1