From 894a64f08ecc37c5ff56d12f7fc0e2ea7170e5df Mon Sep 17 00:00:00 2001 From: Cathy Teng Date: Tue, 4 Jun 2024 14:11:21 -0700 Subject: [PATCH] fixes from review --- src/sentry/integrations/slack/actions/notification.py | 5 +++-- src/sentry/integrations/slack/sdk_client.py | 2 +- src/sentry/integrations/slack/utils/options.py | 5 +++++ src/sentry/options/defaults.py | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 src/sentry/integrations/slack/utils/options.py diff --git a/src/sentry/integrations/slack/actions/notification.py b/src/sentry/integrations/slack/actions/notification.py index 7e0222744ebd81..17b85696c8aa7e 100644 --- a/src/sentry/integrations/slack/actions/notification.py +++ b/src/sentry/integrations/slack/actions/notification.py @@ -7,7 +7,7 @@ import orjson from slack_sdk.errors import SlackApiError -from sentry import features, options +from sentry import features from sentry.api.serializers.rest_framework.rule import ACTION_UUID_KEY from sentry.eventstore.models import GroupEvent from sentry.integrations.repository import get_default_issue_alert_repository @@ -24,6 +24,7 @@ ) from sentry.integrations.slack.sdk_client import SlackSdkClient from sentry.integrations.slack.utils import get_channel_id +from sentry.integrations.slack.utils.options import has_slack_sdk_flag from sentry.models.integrations.integration import Integration from sentry.models.rule import Rule from sentry.notifications.additional_attachment_manager import get_additional_attachment @@ -167,7 +168,7 @@ def send_notification(event: GroupEvent, futures: Sequence[RuleFuture]) -> None: organization = event.group.project.organization - if organization.id in options.get("slack.sdk-issue-alert"): + if has_slack_sdk_flag(organization.id): sdk_client = SlackSdkClient(integration_id=integration.id) text = str(payload["text"]) if payload["text"] is not None else None try: diff --git a/src/sentry/integrations/slack/sdk_client.py b/src/sentry/integrations/slack/sdk_client.py index 39917596627a33..9c48299d7600b9 100644 --- a/src/sentry/integrations/slack/sdk_client.py +++ b/src/sentry/integrations/slack/sdk_client.py @@ -6,7 +6,7 @@ class SlackSdkClient(WebClient): - def __init__(self, integration_id: int): + def __init__(self, integration_id: int) -> None: integration = None if SiloMode.get_current_mode() == SiloMode.REGION: integration = integration_service.get_integration(integration_id=integration_id) diff --git a/src/sentry/integrations/slack/utils/options.py b/src/sentry/integrations/slack/utils/options.py new file mode 100644 index 00000000000000..1404706b515c76 --- /dev/null +++ b/src/sentry/integrations/slack/utils/options.py @@ -0,0 +1,5 @@ +from sentry import options + + +def has_slack_sdk_flag(organization_id: int) -> bool: + return organization_id in options.get("slack.sdk-web-client") diff --git a/src/sentry/options/defaults.py b/src/sentry/options/defaults.py index b6298f03be4cec..6c9e830be2908e 100644 --- a/src/sentry/options/defaults.py +++ b/src/sentry/options/defaults.py @@ -500,7 +500,7 @@ register("slack.verification-token", flags=FLAG_CREDENTIAL | FLAG_PRIORITIZE_DISK) register("slack.signing-secret", flags=FLAG_CREDENTIAL | FLAG_PRIORITIZE_DISK) register( - "slack.sdk-issue-alert", + "slack.sdk-web-client", type=Sequence, default=[], flags=FLAG_ALLOW_EMPTY | FLAG_AUTOMATOR_MODIFIABLE,