Browse Source

ref: fix typing for jira.views.sentry_issue_details (#71747)

<!-- Describe your PR here. -->
anthony sottile 9 months ago
parent
commit
4c13721d12

+ 0 - 1
pyproject.toml

@@ -299,7 +299,6 @@ module = [
     "sentry.integrations.jira.client",
     "sentry.integrations.jira.integration",
     "sentry.integrations.jira.views.base",
-    "sentry.integrations.jira.views.sentry_issue_details",
     "sentry.integrations.jira.webhooks.base",
     "sentry.integrations.jira.webhooks.issue_updated",
     "sentry.integrations.jira_server.client",

+ 7 - 8
src/sentry/integrations/jira/views/sentry_issue_details.py

@@ -1,11 +1,13 @@
 from __future__ import annotations
 
 import logging
-from collections.abc import Mapping, Sequence
+from collections.abc import Mapping
 from functools import reduce
 from typing import Any
 from urllib.parse import quote
 
+from django.db.models.query import QuerySet
+from django.http.request import HttpRequest
 from django.http.response import HttpResponseBase
 from jwt import ExpiredSignatureError
 from rest_framework.request import Request
@@ -54,7 +56,7 @@ def get_release_url(group: Group, release: str) -> str:
     )
 
 
-def build_context(group: Group) -> Mapping[str, Any]:
+def build_context(group: Group) -> dict[str, Any]:
     result, stats_24hr = get_serialized_and_stats(group, "24h")
     _, stats_14d = get_serialized_and_stats(group, "14d")
 
@@ -98,11 +100,8 @@ class JiraSentryIssueDetailsView(JiraSentryUIBaseView):
 
     html_file = "sentry/integrations/jira-issue.html"
 
-    def handle_groups(self, groups: Sequence[Group]) -> Response:
-        response_context = {"groups": []}
-        for group in groups:
-            context = build_context(group)
-            response_context["groups"].append(context)
+    def handle_groups(self, groups: QuerySet[Group]) -> Response:
+        response_context = {"groups": [build_context(group) for group in groups]}
 
         logger.info(
             "issue_hook.response",
@@ -111,7 +110,7 @@ class JiraSentryIssueDetailsView(JiraSentryUIBaseView):
 
         return self.get_response(response_context)
 
-    def dispatch(self, request: Request, *args, **kwargs) -> HttpResponseBase:
+    def dispatch(self, request: HttpRequest, *args, **kwargs) -> HttpResponseBase:
         try:
             return super().dispatch(request, *args, **kwargs)
         except ApiError as exc:

+ 1 - 1
src/sentry/models/group.py

@@ -390,7 +390,7 @@ class GroupManager(BaseManager["Group"]):
         integration: RpcIntegration,
         organizations: Sequence[Organization],
         external_issue_key: str,
-    ) -> QuerySet:
+    ) -> QuerySet[Group]:
         from sentry.models.grouplink import GroupLink
         from sentry.models.integrations.external_issue import ExternalIssue
         from sentry.services.hybrid_cloud.integration import integration_service