Skip to content

Commit 65b6547

Browse files
authored
chore(github): Only support pagination for getting labels (#91570)
A follow-up to #91271.
1 parent d7cebe0 commit 65b6547

File tree

4 files changed

+6
-58
lines changed

4 files changed

+6
-58
lines changed

src/sentry/features/temporary.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -500,8 +500,6 @@ def register_temporary_features(manager: FeatureManager):
500500
manager.add("organizations:jira-per-project-statuses", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
501501
# Enable using paginated projects endpoint for Jira integration
502502
manager.add("organizations:jira-paginated-projects", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
503-
# Enable using paginated labels for GitHub integration
504-
manager.add("organizations:github-paginated-labels", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
505503
# Enable single trace summary
506504
manager.add("organizations:single-trace-summary", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=True)
507505
# Enable Relay extracting logs from breadcrumbs for a project.

src/sentry/integrations/github/client.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -498,15 +498,12 @@ def get_user(self, gh_username: str) -> Any:
498498
"""
499499
return self.get(f"/users/{gh_username}")
500500

501-
def get_labels(self, owner: str, repo: str, paginated: bool = False) -> list[Any]:
501+
def get_labels(self, owner: str, repo: str) -> list[Any]:
502502
"""
503503
Fetches all labels for a repository.
504504
https://docs.github.com/en/rest/issues/labels#list-labels-for-a-repository
505505
"""
506-
if paginated:
507-
return self.get_with_pagination(f"/repos/{owner}/{repo}/labels")
508-
else:
509-
return self.get(f"/repos/{owner}/{repo}/labels")
506+
return self.get_with_pagination(f"/repos/{owner}/{repo}/labels")
510507

511508
def check_file(self, repo: Repository, path: str, version: str | None) -> object | None:
512509
return self.head_cached(path=f"/repos/{repo.name}/contents/{path}", params={"ref": version})

src/sentry/integrations/github/issues.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
from django.urls import reverse
99

10-
from sentry import features
1110
from sentry.eventstore.models import Event, GroupEvent
1211
from sentry.integrations.mixins.issues import MAX_CHAR
1312
from sentry.integrations.models.external_issue import ExternalIssue
@@ -139,8 +138,7 @@ def get_create_issue_config(
139138
labels: Sequence[tuple[str, str]] = []
140139
if default_repo:
141140
owner, repo = default_repo.split("/")
142-
paginated = features.has("organizations:github-paginated-labels", org, actor=user)
143-
labels = self.get_repo_labels(owner, repo, paginated)
141+
labels = self.get_repo_labels(owner, repo)
144142

145143
autocomplete_url = reverse(
146144
"sentry-integration-github-search", args=[org.slug, self.model.id]
@@ -297,12 +295,10 @@ def get_allowed_assignees(self, repo: str) -> Sequence[tuple[str, str]]:
297295

298296
return (("", "Unassigned"),) + users
299297

300-
def get_repo_labels(
301-
self, owner: str, repo: str, paginated: bool = False
302-
) -> Sequence[tuple[str, str]]:
298+
def get_repo_labels(self, owner: str, repo: str) -> Sequence[tuple[str, str]]:
303299
client = self.get_client()
304300
try:
305-
response = client.get_labels(owner, repo, paginated)
301+
response = client.get_labels(owner, repo)
306302
except Exception as e:
307303
self.raise_error(e)
308304

tests/sentry/integrations/github/test_issues.py

Lines changed: 1 addition & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -169,49 +169,6 @@ def test_get_allowed_assignees(self):
169169

170170
@responses.activate
171171
def test_get_repo_labels(self):
172-
responses.add(
173-
responses.POST,
174-
"https://api.github.com/app/installations/github_external_id/access_tokens",
175-
json={"token": "token_1", "expires_at": "2018-10-11T22:14:10Z"},
176-
)
177-
responses.add(
178-
responses.GET,
179-
"https://api.github.com/repos/getsentry/sentry/labels",
180-
json=[
181-
{"name": "bug"},
182-
{"name": "Big Bug"},
183-
{"name": "enhancement"},
184-
{"name": "duplicate"},
185-
{"name": "1"},
186-
{"name": "10"},
187-
{"name": "2"},
188-
],
189-
)
190-
191-
# results should be sorted alphabetically
192-
assert self.install.get_repo_labels("getsentry", "sentry") == (
193-
("1", "1"),
194-
("2", "2"),
195-
("10", "10"),
196-
("Big Bug", "Big Bug"),
197-
("bug", "bug"),
198-
("duplicate", "duplicate"),
199-
("enhancement", "enhancement"),
200-
)
201-
202-
if self.should_call_api_without_proxying():
203-
assert len(responses.calls) == 2
204-
205-
request = responses.calls[0].request
206-
assert request.headers["Authorization"] == "Bearer jwt_token_1"
207-
208-
request = responses.calls[1].request
209-
assert request.headers["Authorization"] == "Bearer token_1"
210-
else:
211-
self._check_proxying()
212-
213-
@responses.activate
214-
def test_get_repo_labels_with_pagination(self):
215172
"""Test that labels are fetched using pagination when the feature flag is enabled."""
216173
responses.add(
217174
responses.POST,
@@ -236,7 +193,7 @@ def test_get_repo_labels_with_pagination(self):
236193
"sentry.integrations.github.client.GitHubBaseClient.page_size", new=len(labels) - 1
237194
):
238195
# results should be sorted alphabetically
239-
assert self.install.get_repo_labels("getsentry", "sentry", paginated=True) == (
196+
assert self.install.get_repo_labels("getsentry", "sentry") == (
240197
("1", "1"),
241198
("2", "2"),
242199
("10", "10"),

0 commit comments

Comments
 (0)