Skip to content

[GitHub] Add native pagination to lists - #30128

Open
TyceHerrman wants to merge 1 commit into
raycast:mainfrom
TyceHerrman:feat/github-list-pagination
Open

[GitHub] Add native pagination to lists#30128
TyceHerrman wants to merge 1 commit into
raycast:mainfrom
TyceHerrman:feat/github-list-pagination

Conversation

@TyceHerrman

@TyceHerrman TyceHerrman commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Description

The GitHub extension currently eager-loads multiple result batches before rendering some lists, while other lists use fixed-size requests without native Raycast pagination. This makes cold launches slower and increases the chance of large GraphQL requests failing.

This change:

  • uses Raycast's paginated promise contract for repository, issue, pull-request, discussion, release, notification, workflow-run, and commit lists;
  • caps search pages at 25 items while honoring smaller configured limits;
  • uses forward GraphQL cursors for ordinary lists and backward cursors for newest-first pull-request commits;
  • deduplicates accumulated pages by stable ID;
  • introduces a lightweight RepositoryListFields fragment and loads releases only when opened;
  • keeps mutation revalidation compatible with paginated results; and
  • preserves the checked-in GraphQL schema pipeline, View Diff action, and Checks metadata from current upstream.

The expected user impact is that initial list results can render sooner and later pages load as the user navigates the list.

Validation

  • npm run generate twice with identical output
  • npm test
  • ./node_modules/.bin/tsc -p tsconfig.json --noEmit
  • npm run build
  • npm run lint
  • git diff --check
  • Local Raycast build smoke-tested with repository search reset and starred repositories crossing a page boundary

Checklist

@raycastbot raycastbot added extension fix / improvement Label for PRs with extension's fix improvements extension: github Issues related to the github extension AI Extension platform: macOS platform: Windows labels Aug 10, 2026
@raycastbot

Copy link
Copy Markdown
Collaborator

Thank you for your contribution! 🎉

🔔 @thomaslombart @unnamedd @tonka3000 @khasbilegt @pernielsentikaer @loxygenK @oilbeater @LunaticMuch @aeorge @daquinoaldo @aeither @marcotf @qeude @nesl247 @xilopaint @antonengelhardt @bangerang @wottpal @LitoMore @d-mitrofanov-v @j3lte @jfkisafk @vlasischar @JavaLangRuntimeException @shyakadavis @sushichan044 @luarmr @nicolas-marien @ionTea @ridemountainpig @kud @MartinGonzalez @brandonnly @oscmarb @emergerrrd @ryo246912 @gfazioli @wonbywondev @SandeepBaskaran you might want to have a look.

You can use this guide to learn how to check out the Pull Request locally in order to test it.

📋 Quick checkout commands
BRANCH="feat/github-list-pagination"
FORK_URL="https://github.com/TyceHerrman/extensions.git"
EXTENSION_NAME="github"
REPO_NAME="extensions"

git clone -n --depth=1 --filter=tree:0 -b $BRANCH $FORK_URL
cd $REPO_NAME
git sparse-checkout set --no-cone "extensions/$EXTENSION_NAME"
git checkout
cd "extensions/$EXTENSION_NAME"
npm install && npm run dev

We're currently experiencing a high volume of incoming requests. As a result, the initial review may take up to 15 business days.

@greptile-apps

greptile-apps Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR converts GitHub extension lists to Raycast's native pagination contract and reduces initial GraphQL payloads. Major changes include:

  • Adds cursor-based pagination for repositories, issues, pull requests, discussions, releases, notifications, workflow runs, and commits.
  • Introduces lightweight repository-list fields, deduplicates accumulated pages, and preserves mutation-driven revalidation.
  • Adds user-facing release notes for the incremental loading behavior.

Confidence Score: 5/5

The PR appears safe to merge because no blocking failure remains.

No blocking failure remains.

Important Files Changed

Filename Overview
extensions/github/src/hooks/useRepositories.ts Implements paginated repository and release fetching with cursor propagation and lightweight list fragments.
extensions/github/src/components/PullRequestCommits.tsx Replaces the fixed commit request with backward cursor pagination while retaining newest-first display order.
extensions/github/src/helpers/index.ts Adds shared paginated-list revalidation and stable-ID deduplication helpers.
extensions/github/src/api/repository.graphql Adds list-specific repository fields and cursor metadata for repository and release queries.

Reviews (2): Last reviewed commit: "github: paginate list data sources" | Re-trigger Greptile

Comment thread extensions/github/src/components/Menu.tsx
@TyceHerrman
TyceHerrman force-pushed the feat/github-list-pagination branch from da9bb22 to b8241c9 Compare August 10, 2026 21:35
@TyceHerrman
TyceHerrman marked this pull request as ready for review August 10, 2026 21:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI Extension extension fix / improvement Label for PRs with extension's fix improvements extension: github Issues related to the github extension platform: macOS platform: Windows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants