Skip to content

Commit 0e6e6fc

Browse files
feat(sentry-apps): Expose sentryAppId in SentryAppInstallation API (#109496)
1 parent f19882e commit 0e6e6fc

File tree

4 files changed

+42
-9
lines changed

4 files changed

+42
-9
lines changed

src/sentry/sentry_apps/api/serializers/sentry_app_installation.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
class SentryAppInstallationAppResult(TypedDict):
1818
uuid: str
1919
slug: str
20+
sentryAppId: int
2021

2122

2223
class SentryAppInstallationOrganizationResult(TypedDict):
@@ -64,7 +65,11 @@ def serialize(
6465
) -> SentryAppInstallationResult:
6566
access = kwargs.get("access")
6667
data: SentryAppInstallationResult = {
67-
"app": {"uuid": attrs["sentry_app"].uuid, "slug": attrs["sentry_app"].slug},
68+
"app": {
69+
"uuid": attrs["sentry_app"].uuid,
70+
"slug": attrs["sentry_app"].slug,
71+
"sentryAppId": attrs["sentry_app"].id,
72+
},
6873
"organization": {"slug": attrs["organization"].slug, "id": attrs["organization"].id},
6974
"uuid": obj.uuid,
7075
"status": SentryAppInstallationStatus.as_str(obj.status),

tests/sentry/sentry_apps/api/endpoints/test_organization_sentry_app_installation_details.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,11 @@ def test_access_within_installs_organization_by_member(self) -> None:
7171

7272
assert response.status_code == 200, response.content
7373
assert response.data == {
74-
"app": {"uuid": self.unpublished_app.uuid, "slug": self.unpublished_app.slug},
74+
"app": {
75+
"uuid": self.unpublished_app.uuid,
76+
"slug": self.unpublished_app.slug,
77+
"sentryAppId": self.unpublished_app.id,
78+
},
7579
"organization": {"slug": self.org.slug, "id": self.org.id},
7680
"uuid": self.installation2.uuid,
7781
"status": "pending",
@@ -86,7 +90,11 @@ def test_access_within_installs_organization_by_manager(self) -> None:
8690

8791
assert response.status_code == 200, response.content
8892
assert response.data == {
89-
"app": {"uuid": self.unpublished_app.uuid, "slug": self.unpublished_app.slug},
93+
"app": {
94+
"uuid": self.unpublished_app.uuid,
95+
"slug": self.unpublished_app.slug,
96+
"sentryAppId": self.unpublished_app.id,
97+
},
9098
"organization": {"slug": self.org.slug, "id": self.org.id},
9199
"uuid": self.installation2.uuid,
92100
"code": self.installation2.api_grant.code,

tests/sentry/sentry_apps/api/endpoints/test_organization_sentry_app_installations.py

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,11 @@ def test_superuser_sees_all_installs(self) -> None:
5353

5454
assert response.data == [
5555
{
56-
"app": {"slug": self.unpublished_app.slug, "uuid": self.unpublished_app.uuid},
56+
"app": {
57+
"slug": self.unpublished_app.slug,
58+
"uuid": self.unpublished_app.uuid,
59+
"sentryAppId": self.unpublished_app.id,
60+
},
5761
"organization": {"slug": self.org.slug, "id": self.org.id},
5862
"uuid": self.installation2.uuid,
5963
"code": self.installation2.api_grant.code,
@@ -65,7 +69,11 @@ def test_superuser_sees_all_installs(self) -> None:
6569

6670
assert response.data == [
6771
{
68-
"app": {"slug": self.published_app.slug, "uuid": self.published_app.uuid},
72+
"app": {
73+
"slug": self.published_app.slug,
74+
"uuid": self.published_app.uuid,
75+
"sentryAppId": self.published_app.id,
76+
},
6977
"organization": {"slug": self.super_org.slug, "id": self.super_org.id},
7078
"uuid": self.installation.uuid,
7179
"code": self.installation.api_grant.code,
@@ -97,7 +105,11 @@ def test_users_only_sees_installs_on_their_org(self) -> None:
97105

98106
assert response.data == [
99107
{
100-
"app": {"slug": self.unpublished_app.slug, "uuid": self.unpublished_app.uuid},
108+
"app": {
109+
"slug": self.unpublished_app.slug,
110+
"uuid": self.unpublished_app.uuid,
111+
"sentryAppId": self.unpublished_app.id,
112+
},
101113
"organization": {"slug": self.org.slug, "id": self.org.id},
102114
"uuid": self.installation2.uuid,
103115
"code": self.installation2.api_grant.code,
@@ -118,7 +130,7 @@ def get_expected_response(self, app: SentryApp, org: Organization) -> dict[str,
118130
installation = SentryAppInstallation.objects.get(sentry_app=app, organization_id=org.id)
119131
assert installation.api_grant is not None
120132
return {
121-
"app": {"slug": app.slug, "uuid": app.uuid},
133+
"app": {"slug": app.slug, "uuid": app.uuid, "sentryAppId": app.id},
122134
"organization": {"slug": org.slug, "id": org.id},
123135
"code": installation.api_grant.code,
124136
}

tests/sentry/sentry_apps/test_sentry_app_installation_notifier.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,11 @@ def test_task_enqueued(self, safe_urlopen: MagicMock) -> None:
5656
"installation": {"uuid": self.install.uuid},
5757
"data": {
5858
"installation": {
59-
"app": {"uuid": self.sentry_app.uuid, "slug": self.sentry_app.slug},
59+
"app": {
60+
"uuid": self.sentry_app.uuid,
61+
"slug": self.sentry_app.slug,
62+
"sentryAppId": self.sentry_app.id,
63+
},
6064
"organization": {"slug": self.organization.slug, "id": self.organization.id},
6165
"uuid": self.install.uuid,
6266
"code": self.install.api_grant.code,
@@ -89,7 +93,11 @@ def test_uninstallation_enqueued(self, safe_urlopen: MagicMock) -> None:
8993
"installation": {"uuid": self.install.uuid},
9094
"data": {
9195
"installation": {
92-
"app": {"uuid": self.sentry_app.uuid, "slug": self.sentry_app.slug},
96+
"app": {
97+
"uuid": self.sentry_app.uuid,
98+
"slug": self.sentry_app.slug,
99+
"sentryAppId": self.sentry_app.id,
100+
},
93101
"organization": {"slug": self.organization.slug, "id": self.organization.id},
94102
"uuid": self.install.uuid,
95103
"code": self.install.api_grant.code,

0 commit comments

Comments
 (0)