Skip to content

GH-86: fix(github): exhaustive pagination for ListIssues/ListReleases/ListTags (30-item silent truncation) - #90

Merged
alekspetrov merged 1 commit into
mainfrom
pilot/GH-86
Jul 13, 2026
Merged

GH-86: fix(github): exhaustive pagination for ListIssues/ListReleases/ListTags (30-item silent truncation)#90
alekspetrov merged 1 commit into
mainfrom
pilot/GH-86

Conversation

@alekspetrov

Copy link
Copy Markdown
Contributor

Summary

Automated PR created by Pilot for task GH-86.

Closes #86

Changes

GitHub Issue GH-86: fix(github): exhaustive pagination for ListIssues/ListReleases/ListTags (30-item silent truncation)

Context

SaaS pre-work S0.5. GitHub list-endpoint pagination is inconsistent (verified 2026-07-13): ListPullRequests and tag resolution loop up to 50 pages (sdk/integrations/github/client.go:544-556, 643-660), but ListIssues issues a SINGLE request with no per_page/page params — GitHub's default returns 30 items (client.go:398-426) — and ListReleases/ListTags fetch one page (client.go:623,633). Any repo with >30 open issues is silently truncated today; the SaaS board ingest needs exhaustive listing.

Implementation

In sdk/integrations/github/client.go: bring ListIssues, ListReleases, and ListTags up to the ListPullRequests pattern — per_page=100, page loop with the same page cap and retry integration. Keep return shapes and exported signatures unchanged. If search/comment endpoints (client.go:254,848,967,1008) are intentionally single-page, add a doc-comment saying so explicitly rather than changing them here.

Acceptance

  • ListIssues returns >100 issues completely (mocked 3-page test asserting union and page params)
  • ListReleases/ListTags paginate identically
  • Single-page endpoints that stay single-page carry an explicit doc-comment
  • Existing github connector tests green; no api.golden change

Refs

  • Verified: qf-studio/pilot .agent/system/saas-asset-research.md verification appendix (studio-sdk pagination finding)

ListIssues issued a single request (GitHub default 30 items) and
ListReleases/ListTags fetched one page, silently truncating repos with
more items — bringing them up to the ListPullRequests pattern
(per_page=100, page loop, 50-page cap). Single-page endpoints
(ListIssueComments, GetPullRequestComments, SearchPRsForIssue,
SearchOpenPRsForIssue) now carry explicit doc-comments explaining why
they stay single-page.
@alekspetrov
alekspetrov merged commit 2aa8fea into main Jul 13, 2026
3 checks passed
@alekspetrov
alekspetrov deleted the pilot/GH-86 branch July 13, 2026 18:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(github): exhaustive pagination for ListIssues/ListReleases/ListTags (30-item silent truncation)

1 participant