Skip to content

fix(lists): follow every page in list commands that read only the first - #25

Merged
hanrw merged 1 commit into
mainfrom
fix/list-pagination
Sep 23, 2026
Merged

hanrw merged 1 commit into
mainfrom
fix/list-pagination

Conversation

@hanrw

@hanrw hanrw commented Sep 23, 2026

Copy link
Copy Markdown
Member

Stacked on #24, which is stacked on #23. This PR needs the APIClient.requestAllPages helper added in #23. Merge #23, then #24, then this one; GitHub retargets each PR as the one below it merges.

Problem

These list commands called Apple without a limit and read a single page. Anything past Apple's default page size was silently dropped: 50 for most endpoints, 20 for bundle IDs.

reviews list · devices list · bundle-ids list · profiles list (both with and without --bundle-id-id) · users list · versions list · builds uploads list · xcode-cloud builds list · diagnostics list

Fix

Each adapter now requests limit=200 and follows every page through requestAllPages. The commands and REST routes are unchanged, and they now return the complete list.

Tests

  • One new test per list, 10 in total. Each returns 75 items over two pages. All failed at count == 75 before the fix.
  • Full swift test passes.

Live check (read-only, real account)

Command Before After
builds uploads list (app with 101+ builds) 50 122
bundle-ids list 20 85

All the other changed commands ran without errors, which confirms Apple accepts limit=200 on each endpoint.

Not in this PR

profiles list without --bundle-id-id returns bundleIdId: "" for every profile. It reads the linked bundle ID without requesting it via include=, the same bug #24 fixes for offer prices.

🤖 Generated with Claude Code

reviews, devices, bundle-ids, profiles (both paths), users, versions,
build uploads, Xcode Cloud build runs and diagnostic signatures called
Apple without a limit and read one page, so anything past Apple's default
page size (50 for most endpoints, 20 for bundle IDs) was dropped. They now
request limit=200 and follow every page via APIClient.requestAllPages.

Verified live: builds uploads list 50 -> 122, bundle-ids list 20 -> 85;
every changed endpoint accepts limit=200.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 9 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 2 included reviews currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 265120a3-528f-49f8-9946-3357aee822d5

📥 Commits

Reviewing files that changed from the base of the PR and between 6989f97 and 1cb6332.

📒 Files selected for processing (19)
  • CHANGELOG.md
  • Sources/Infrastructure/Apps/Builds/SDKBuildUploadRepository.swift
  • Sources/Infrastructure/Apps/Performance/SDKDiagnosticsRepository.swift
  • Sources/Infrastructure/Apps/Reviews/SDKCustomerReviewRepository.swift
  • Sources/Infrastructure/Apps/Versions/SDKVersionRepository.swift
  • Sources/Infrastructure/CodeSigning/SDKBundleIDRepository.swift
  • Sources/Infrastructure/CodeSigning/SDKDeviceRepository.swift
  • Sources/Infrastructure/CodeSigning/SDKProfileRepository.swift
  • Sources/Infrastructure/Users/SDKUserRepository.swift
  • Sources/Infrastructure/XcodeCloud/SDKXcodeCloudBuildRunRepository.swift
  • Tests/InfrastructureTests/Apps/Builds/SDKBuildUploadRepositoryTests.swift
  • Tests/InfrastructureTests/Apps/Performance/SDKDiagnosticsRepositoryTests.swift
  • Tests/InfrastructureTests/Apps/Reviews/SDKCustomerReviewRepositoryTests.swift
  • Tests/InfrastructureTests/Apps/Versions/SDKVersionRepositoryTests.swift
  • Tests/InfrastructureTests/CodeSigning/SDKBundleIDRepositoryTests.swift
  • Tests/InfrastructureTests/CodeSigning/SDKDeviceRepositoryTests.swift
  • Tests/InfrastructureTests/CodeSigning/SDKProfileRepositoryTests.swift
  • Tests/InfrastructureTests/Users/SDKUserRepositoryTests.swift
  • Tests/InfrastructureTests/XcodeCloud/SDKXcodeCloudBuildRunRepositoryTests.swift

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@hanrw
hanrw changed the base branch from fix/offer-price-territory to main September 23, 2026 04:28
@hanrw hanrw closed this Sep 23, 2026
@hanrw hanrw reopened this Sep 23, 2026
@hanrw
hanrw merged commit bed5a4c into main Sep 23, 2026
2 checks passed
@hanrw
hanrw deleted the fix/list-pagination branch September 23, 2026 04:54
@codecov

codecov Bot commented Sep 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 81.75%. Comparing base (c4df682) to head (1cb6332).
⚠️ Report is 4 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main      #25      +/-   ##
==========================================
+ Coverage   81.65%   81.75%   +0.09%     
==========================================
  Files         473      473              
  Lines       13838    13862      +24     
==========================================
+ Hits        11300    11333      +33     
+ Misses       2538     2529       -9     
Files with missing lines Coverage Δ
...ructure/Apps/Builds/SDKBuildUploadRepository.swift 44.14% <100.00%> (+1.02%) ⬆️
...re/Apps/Performance/SDKDiagnosticsRepository.swift 100.00% <100.00%> (ø)
...ure/Apps/Reviews/SDKCustomerReviewRepository.swift 100.00% <100.00%> (ø)
...structure/Apps/Versions/SDKVersionRepository.swift 73.91% <100.00%> (+0.57%) ⬆️
...astructure/CodeSigning/SDKBundleIDRepository.swift 72.22% <100.00%> (+2.52%) ⬆️
...frastructure/CodeSigning/SDKDeviceRepository.swift 76.19% <100.00%> (+1.83%) ⬆️
...rastructure/CodeSigning/SDKProfileRepository.swift 69.49% <100.00%> (+2.21%) ⬆️
...urces/Infrastructure/Users/SDKUserRepository.swift 100.00% <100.00%> (ø)
...e/XcodeCloud/SDKXcodeCloudBuildRunRepository.swift 100.00% <100.00%> (ø)

... and 3 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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.

1 participant