mirror of
https://github.com/rudrankriyam/App-Store-Connect-CLI.git
synced 2026-04-25 15:45:48 +03:00
[PR #722] [MERGED] perf: hot-path optimizations, streaming pagination, and benchmark CI #741
Labels
No labels
bug
bug
documentation
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/App-Store-Connect-CLI#741
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/722
Author: @rudrankriyam
Created: 2/21/2026
Status: ✅ Merged
Merged: 2/22/2026
Merged by: @rudrankriyam
Base:
main← Head:perf/hot-path-optimizations-and-bench-suite📝 Commits (6)
b4b0937perf: hot-path optimizations, streaming pagination, and benchmark CI192493ffix: create .perf directory before writing baseline in bench-compare1494a75fix: skip benchmark comment when no baseline exists to compare against1f921fdfeat: glanceable benchmark PR comment with icons and verdict table4a75ca3Fix benchstat parser for modern p-value output49faca3Merge pull request #723 from rudrankriyam/cursor/benchstat-output-regex-7293📊 Changes
28 files changed (+1205 additions, -98 deletions)
View changed files
➕
.github/workflows/bench-compare.yml(+96 -0)📝
.github/workflows/main-branch.yml(+36 -3)📝
.github/workflows/pr-checks.yml(+36 -4)📝
.github/workflows/release.yml(+1 -0)📝
Makefile(+46 -0)📝
cmd/root.go(+11 -4)📝
cmd/run.go(+26 -3)➕
cmd/run_bench_test.go(+38 -0)📝
internal/asc/assets_upload.go(+9 -1)📝
internal/asc/client_core.go(+32 -4)➕
internal/asc/client_core_transport_test.go(+48 -0)📝
internal/asc/client_http.go(+17 -1)➕
internal/asc/client_http_cache_test.go(+37 -0)📝
internal/asc/client_pagination.go(+49 -0)➕
internal/asc/client_pagination_bench_test.go(+60 -0)➕
internal/asc/client_pagination_each_test.go(+66 -0)➕
internal/asc/perf_bench_test.go(+41 -0)📝
internal/cli/builds/builds_latest.go(+56 -32)📝
internal/cli/migrate/screenshots.go(+8 -13)➕
internal/cli/migrate/screenshots_bench_test.go(+21 -0)...and 8 more files
📄 Description
Summary
PaginateEachfor streaming pagination without full-memory aggregation; convertbuilds latest --nextto use itbench-compare.yml) that postsbenchstatdiffs as PR commentsmake bench-perf,scripts/bench-ci.sh) covering API path, pagination, and local toolingBenchmark deltas (median, Apple M5)
PaginateEachvsPaginateAll(5000 items)Client.newRequest(JWT cached)The remaining changes (version fast-path, env merge, shell cache) are technically correct micro-optimizations but don't materially affect wall-clock time for real commands.
What actually matters here
builds latest --nextpaginating hundreds of build uploads no longer accumulates all pages in memorykou --version10 timesbenchstatcomparison commentTest plan
make format-checkmake lintASC_BYPASS_KEYCHAIN=1 make test(full suite, all packages pass)make bench-perf(benchmark snapshot runs clean)bench-compare.ymlposts comment on this PR (first run will show PR-only results since base branch doesn't have the bench script yet)🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.