Skip to content

Commit 09ceea5

Browse files
authored
feat(github-growth): exclude hidden repos (#52773)
1 parent 6d280b3 commit 09ceea5

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

src/sentry/api/endpoints/organization_repositories.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ def get(self, request: Request, organization) -> Response:
8181

8282
elif status:
8383
queryset = queryset.none()
84+
elif status is None:
85+
queryset = queryset.exclude(status=ObjectStatus.HIDDEN)
8486

8587
return self.paginate(
8688
request=request,

tests/sentry/api/endpoints/test_organization_repositories.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,63 @@ def test_get_integration_repository(self):
4848
assert first_row["provider"] == {"id": "dummy", "name": "Example"}
4949
assert first_row["externalSlug"] == str(repo.external_id)
5050

51+
def test_get_active_repos(self):
52+
repo1 = Repository.objects.create(
53+
name="getsentry/example",
54+
organization_id=self.org.id,
55+
external_id=12345,
56+
provider="dummy",
57+
config={"name": "getsentry/example"},
58+
)
59+
repo2 = Repository.objects.create(
60+
name="getsentry/sentry",
61+
organization_id=self.org.id,
62+
external_id=54321,
63+
provider="dummy",
64+
config={"name": "getsentry/sentry"},
65+
)
66+
67+
response = self.client.get(self.url, format="json")
68+
69+
assert response.status_code == 200, response.content
70+
assert len(response.data) == 2
71+
72+
first_row = response.data[0]
73+
assert first_row["id"] == str(repo1.id)
74+
assert first_row["provider"] == {"id": "dummy", "name": "Example"}
75+
assert first_row["externalSlug"] == str(repo1.external_id)
76+
77+
second_row = response.data[1]
78+
assert second_row["id"] == str(repo2.id)
79+
assert second_row["provider"] == {"id": "dummy", "name": "Example"}
80+
assert second_row["externalSlug"] == str(repo2.external_id)
81+
82+
def test_get_exclude_hidden_repo(self):
83+
repo = Repository.objects.create(
84+
name="getsentry/example",
85+
organization_id=self.org.id,
86+
external_id=12345,
87+
provider="dummy",
88+
config={"name": "getsentry/example"},
89+
)
90+
Repository.objects.create(
91+
name="getsentry/sentry",
92+
organization_id=self.org.id,
93+
external_id=54321,
94+
provider="dummy",
95+
config={"name": "getsentry/sentry"},
96+
status=ObjectStatus.HIDDEN,
97+
)
98+
99+
response = self.client.get(self.url, format="json")
100+
101+
assert response.status_code == 200, response.content
102+
assert len(response.data) == 1
103+
first_row = response.data[0]
104+
assert first_row["id"] == str(repo.id)
105+
assert first_row["provider"] == {"id": "dummy", "name": "Example"}
106+
assert first_row["externalSlug"] == str(repo.external_id)
107+
51108
def test_status_unmigratable(self):
52109
self.url = self.url + "?status=unmigratable"
53110

0 commit comments

Comments
 (0)