Skip to content

Commit b1a758b

Browse files
authored
🔧 chore: use IntegrationProviderSlug.Discord instead of magic str (#94356)
1 parent d9e4dfa commit b1a758b

File tree

10 files changed

+30
-18
lines changed

10 files changed

+30
-18
lines changed
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from sentry.auth.provider import Provider
2+
from sentry.integrations.types import IntegrationProviderSlug
23

34

45
class DiscordIdentityProvider(Provider):
5-
key = "discord"
6+
key = IntegrationProviderSlug.DISCORD.value
67
name = "Discord"

src/sentry/integrations/discord/actions/issue_alert/notification.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
MessagingInteractionEvent,
1212
MessagingInteractionType,
1313
)
14+
from sentry.integrations.types import IntegrationProviderSlug
1415
from sentry.rules.actions import IntegrationEventAction
1516
from sentry.rules.base import CallbackFuture
1617
from sentry.shared_integrations.exceptions import ApiError
@@ -22,7 +23,7 @@ class DiscordNotifyServiceAction(IntegrationEventAction):
2223
id = "sentry.integrations.discord.notify_action.DiscordNotifyServiceAction"
2324
label = "Send a notification to the {server} Discord server in the channel with ID or URL: {channel_id} and show tags {tags} in the notification."
2425
prompt = "Send a Discord notification"
25-
provider = "discord"
26+
provider = IntegrationProviderSlug.DISCORD.value
2627
integration_key = "server"
2728

2829
def __init__(self, *args: Any, **kwargs: Any) -> None:

src/sentry/integrations/discord/client.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from sentry import options
1313
from sentry.integrations.client import ApiClient
1414
from sentry.integrations.discord.utils.consts import DISCORD_ERROR_CODES, DISCORD_USER_ERRORS
15+
from sentry.integrations.types import IntegrationProviderSlug
1516
from sentry.shared_integrations.exceptions import ApiError
1617

1718
# to avoid a circular import
@@ -43,7 +44,7 @@
4344

4445

4546
class DiscordClient(ApiClient):
46-
integration_name: str = "discord"
47+
integration_name: str = IntegrationProviderSlug.DISCORD.value
4748
base_url: str = DISCORD_BASE_URL
4849
_METRICS_FAILURE_KEY: str = "sentry.integrations.discord.failure"
4950
_METRICS_SUCCESS_KEY: str = "sentry.integrations.discord.success"

src/sentry/integrations/discord/integration.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def uninstall(self) -> None:
8686

8787
installations = integration_service.get_organization_integrations(
8888
integration_id=self.model.id,
89-
providers=["discord"],
89+
providers=[IntegrationProviderSlug.DISCORD.value],
9090
)
9191

9292
# Remove any installations pending deletion
@@ -164,7 +164,7 @@ def build_integration(self, state: Mapping[str, Any]) -> IntegrationData:
164164
except (ApiError, AttributeError):
165165
guild_name = guild_id
166166

167-
discord_config = state.get("discord", {})
167+
discord_config = state.get(IntegrationProviderSlug.DISCORD.value, {})
168168
if isinstance(discord_config, dict):
169169
use_configure = discord_config.get("use_configure") == "1"
170170
else:
@@ -185,7 +185,7 @@ def build_integration(self, state: Mapping[str, Any]) -> IntegrationData:
185185
"name": guild_name,
186186
"external_id": guild_id,
187187
"user_identity": {
188-
"type": "discord",
188+
"type": IntegrationProviderSlug.DISCORD.value,
189189
"external_id": discord_user_id,
190190
"scopes": [],
191191
"data": {},
@@ -289,7 +289,7 @@ def __init__(self, params):
289289

290290
def dispatch(self, request: HttpRequest, pipeline: IntegrationPipelineT) -> HttpResponseBase:
291291
if "guild_id" not in request.GET or "code" not in request.GET:
292-
state = pipeline.fetch_state(key="discord") or {}
292+
state = pipeline.fetch_state(key=IntegrationProviderSlug.DISCORD.value) or {}
293293
redirect_uri = (
294294
absolute_uri("extensions/discord/configure/")
295295
if state.get("use_configure") == "1"

src/sentry/integrations/discord/requests/base.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from sentry.identity.services.identity.service import identity_service
1616
from sentry.integrations.discord.client import DISCORD_BASE_URL
1717
from sentry.integrations.services.integration import RpcIntegration, integration_service
18+
from sentry.integrations.types import IntegrationProviderSlug
1819
from sentry.users.services.user.model import RpcUser
1920
from sentry.users.services.user.service import user_service
2021

@@ -136,7 +137,7 @@ def response_url(self) -> str | None:
136137

137138
def _get_context(self):
138139
context = integration_service.get_integration_identity_context(
139-
integration_provider="discord",
140+
integration_provider=IntegrationProviderSlug.DISCORD.value,
140141
integration_external_id=self.guild_id,
141142
identity_external_id=self.user_id,
142143
identity_provider_external_id=self.guild_id,
@@ -197,7 +198,7 @@ def get_identity_user(self) -> RpcUser | None:
197198
def get_identity(self) -> RpcIdentity | None:
198199
if not self._provider:
199200
self._provider = identity_service.get_provider(
200-
provider_type="discord", provider_ext_id=self.guild_id
201+
provider_type=IntegrationProviderSlug.DISCORD.value, provider_ext_id=self.guild_id
201202
)
202203
if not self._provider:
203204
self._info("discord.validate.identity.no.provider")
@@ -226,7 +227,9 @@ def get_identity_str(self) -> str | None:
226227
def validate_integration(self) -> None:
227228
if not self._integration:
228229
self._integration = integration_service.get_integration(
229-
provider="discord", external_id=self.guild_id, status=ObjectStatus.ACTIVE
230+
provider=IntegrationProviderSlug.DISCORD.value,
231+
external_id=self.guild_id,
232+
status=ObjectStatus.ACTIVE,
230233
)
231234
self._info("discord.validate.integration")
232235

src/sentry/integrations/discord/spec.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
MessagingIdentityLinkViewSet,
1313
MessagingIntegrationSpec,
1414
)
15+
from sentry.integrations.types import IntegrationProviderSlug
1516
from sentry.models.organization import Organization
1617
from sentry.notifications.models.notificationaction import ActionService
1718
from sentry.rules.actions import IntegrationEventAction
@@ -20,7 +21,7 @@
2021
class DiscordMessagingSpec(MessagingIntegrationSpec):
2122
@property
2223
def provider_slug(self) -> str:
23-
return "discord"
24+
return IntegrationProviderSlug.DISCORD.value
2425

2526
@property
2627
def action_service(self) -> ActionService:

src/sentry/integrations/discord/webhooks/base.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from sentry.integrations.discord.requests.base import DiscordRequest, DiscordRequestError
1515
from sentry.integrations.discord.webhooks.command import DiscordCommandHandler
1616
from sentry.integrations.discord.webhooks.message_component import DiscordMessageComponentHandler
17+
from sentry.integrations.types import IntegrationProviderSlug
1718
from sentry.silo.base import SiloMode
1819

1920
from .types import DiscordResponseTypes
@@ -36,7 +37,7 @@ class DiscordInteractionsEndpoint(Endpoint):
3637
authentication_classes = ()
3738
permission_classes = ()
3839
discord_request_class = DiscordRequest
39-
provider = "discord"
40+
provider = IntegrationProviderSlug.DISCORD.value
4041

4142
def __init__(self) -> None:
4243
super().__init__()
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1+
from sentry.integrations.types import IntegrationProviderSlug
2+
13
from .integration_extension_configuration import IntegrationExtensionConfigurationView
24

35

46
class DiscordExtensionConfigurationView(IntegrationExtensionConfigurationView):
5-
provider = "discord"
6-
external_provider_key = "discord"
7+
provider = IntegrationProviderSlug.DISCORD.value
8+
external_provider_key = IntegrationProviderSlug.DISCORD.value
79

810
def map_params_to_state(self, params):
911
return {"use_configure": "1", **params}

src/sentry/middleware/integrations/tasks.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from requests import Response
1111
from rest_framework import status
1212

13+
from sentry.integrations.types import IntegrationProviderSlug
1314
from sentry.silo.base import SiloMode
1415
from sentry.silo.client import RegionSiloClient
1516
from sentry.tasks.base import instrumented_task
@@ -138,7 +139,7 @@ def convert_to_async_slack_response(
138139
class _AsyncDiscordDispatcher(_AsyncRegionDispatcher):
139140
@property
140141
def log_code(self) -> str:
141-
return "discord"
142+
return IntegrationProviderSlug.DISCORD.value
142143

143144
def unpack_payload(self, response: Response) -> Any:
144145
# Region will return a response assuming it's meant to go directly to Discord. Since we're

src/sentry/models/activity.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
)
2424
from sentry.db.models.fields.hybrid_cloud_foreign_key import HybridCloudForeignKey
2525
from sentry.db.models.manager.base import BaseManager
26+
from sentry.integrations.types import IntegrationProviderSlug
2627
from sentry.issues.grouptype import get_group_type_by_type_id
2728
from sentry.tasks import activity
2829
from sentry.types.activity import CHOICES, STATUS_CHANGE_ACTIVITY_TYPES, ActivityType
@@ -215,7 +216,7 @@ class ActivityIntegration(Enum):
215216

216217
CODEOWNERS = "codeowners"
217218
PROJECT_OWNERSHIP = "projectOwnership"
218-
SLACK = "slack"
219-
MSTEAMS = "msteams"
220-
DISCORD = "discord"
219+
SLACK = IntegrationProviderSlug.SLACK.value
220+
MSTEAMS = IntegrationProviderSlug.MSTEAMS.value
221+
DISCORD = IntegrationProviderSlug.DISCORD.value
221222
SUSPECT_COMMITTER = "suspectCommitter"

0 commit comments

Comments
 (0)