Skip to content

Commit 9a5dc41

Browse files
committed
address comment
1 parent 99ef9a4 commit 9a5dc41

File tree

4 files changed

+25
-29
lines changed

4 files changed

+25
-29
lines changed

src/sentry/integrations/github/tasks/sync_repos_on_install_change.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
import logging
2-
from typing import Literal, TypedDict
2+
from typing import Literal
33

44
from taskbroker_client.retry import Retry
55

66
from sentry import features
77
from sentry.constants import ObjectStatus
8+
from sentry.integrations.github.webhook_types import GitHubInstallationRepo
89
from sentry.integrations.services.integration import integration_service
910
from sentry.integrations.services.integration.model import RpcIntegration
1011
from sentry.integrations.services.repository.service import repository_service
@@ -25,13 +26,6 @@
2526

2627
from .link_all_repos import get_repo_config
2728

28-
29-
class GitHubRepo(TypedDict, total=False):
30-
id: int
31-
full_name: str
32-
private: bool
33-
34-
3529
logger = logging.getLogger(__name__)
3630

3731

@@ -46,8 +40,8 @@ class GitHubRepo(TypedDict, total=False):
4640
def sync_repos_on_install_change(
4741
integration_id: int,
4842
action: str,
49-
repos_added: list[GitHubRepo],
50-
repos_removed: list[GitHubRepo],
43+
repos_added: list[GitHubInstallationRepo],
44+
repos_removed: list[GitHubInstallationRepo],
5145
repository_selection: Literal["all", "selected"],
5246
) -> None:
5347
"""
@@ -111,8 +105,8 @@ def _sync_repos_for_org(
111105
integration: RpcIntegration,
112106
rpc_org: RpcOrganization,
113107
provider: str,
114-
repos_added: list[GitHubRepo],
115-
repos_removed: list[GitHubRepo],
108+
repos_added: list[GitHubInstallationRepo],
109+
repos_removed: list[GitHubInstallationRepo],
116110
) -> None:
117111
if repos_added:
118112
integration_repo_provider = get_integration_repository_provider(integration)

src/sentry/integrations/github/webhook.py

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from abc import ABC
99
from collections.abc import Mapping, MutableMapping, Sequence
1010
from datetime import timezone
11-
from typing import Any, Literal, Protocol, TypedDict
11+
from typing import Any, Protocol
1212

1313
import orjson
1414
import sentry_sdk
@@ -30,6 +30,7 @@
3030
from sentry.integrations.github.webhook_types import (
3131
GITHUB_WEBHOOK_TYPE_HEADER_KEY,
3232
GithubWebhookType,
33+
InstallationRepositoriesEvent,
3334
)
3435
from sentry.integrations.pipeline import ensure_integration
3536
from sentry.integrations.services.integration.model import (
@@ -418,21 +419,6 @@ def _handle_organization_deletion(
418419
)
419420

420421

421-
class GitHubInstallationRepo(TypedDict):
422-
id: int
423-
full_name: str
424-
private: bool
425-
426-
427-
class InstallationRepositoriesEvent(TypedDict):
428-
action: Literal["added", "removed"]
429-
installation: dict[str, Any]
430-
repositories_added: list[GitHubInstallationRepo]
431-
repositories_removed: list[GitHubInstallationRepo]
432-
repository_selection: Literal["all", "selected"]
433-
sender: dict[str, Any]
434-
435-
436422
class InstallationRepositoriesEventWebhook(GitHubWebhook):
437423
"""
438424
Handles installation_repositories events when repos are added to or

src/sentry/integrations/github/webhook_types.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from __future__ import annotations
22

33
from enum import StrEnum
4+
from typing import Any, Literal, TypedDict
45

56
GITHUB_WEBHOOK_TYPE_HEADER = "HTTP_X_GITHUB_EVENT"
67
GITHUB_WEBHOOK_TYPE_HEADER_KEY = "X-GITHUB-EVENT"
@@ -29,3 +30,18 @@ class GithubWebhookType(StrEnum):
2930
CELL_PROCESSED_GITHUB_EVENTS = frozenset(
3031
t.value for t in GithubWebhookType if t not in _CONTROL_ONLY_EVENTS
3132
)
33+
34+
35+
class GitHubInstallationRepo(TypedDict):
36+
id: int
37+
full_name: str
38+
private: bool
39+
40+
41+
class InstallationRepositoriesEvent(TypedDict):
42+
action: Literal["added", "removed"]
43+
installation: dict[str, Any]
44+
repositories_added: list[GitHubInstallationRepo]
45+
repositories_removed: list[GitHubInstallationRepo]
46+
repository_selection: Literal["all", "selected"]
47+
sender: dict[str, Any]

tests/sentry/integrations/github/test_webhook.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@
2222
from sentry.constants import ObjectStatus
2323
from sentry.integrations.github.webhook import (
2424
GitHubIntegrationsWebhookEndpoint,
25-
InstallationRepositoriesEvent,
2625
InstallationRepositoriesEventWebhook,
2726
)
27+
from sentry.integrations.github.webhook_types import InstallationRepositoriesEvent
2828
from sentry.integrations.models.integration import Integration
2929
from sentry.integrations.models.organization_integration import OrganizationIntegration
3030
from sentry.integrations.services.integration import integration_service

0 commit comments

Comments
 (0)