[PR #428] [MERGED] Issue 426 refactor #519

Closed
opened 2026-02-26 22:31:21 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/428
Author: @rudrankriyam
Created: 2/5/2026
Status: Merged
Merged: 2/5/2026
Merged by: @rudrankriyam

Base: mainHead: cursor/issue-426-refactor-7e7f


📝 Commits (3)

  • 62a2ebb Harden test infrastructure and split internal/asc package
  • c2777bd Fix typed nil pointer panic in pagination
  • 752fb6b Merge pull request #429 from rudrankriyam/cursor/pagination-nil-pointer-panic-a6a7

📊 Changes

28 files changed (+1509 additions, -1031 deletions)

View changed files

.github/workflows/integration.yml (+44 -0)
📝 internal/asc/accessibility.go (+3 -3)
📝 internal/asc/app_events.go (+53 -53)
📝 internal/asc/beta_recruitment.go (+8 -7)
📝 internal/asc/client.go (+42 -42)
📝 internal/asc/client_builds.go (+5 -5)
📝 internal/asc/client_pagination.go (+43 -522)
internal/asc/client_pagination_test.go (+564 -0)
📝 internal/asc/client_types.go (+224 -278)
📝 internal/asc/game_center_activities.go (+42 -42)
📝 internal/asc/game_center_challenges.go (+16 -16)
📝 internal/asc/game_center_groups.go (+3 -3)
📝 internal/asc/game_center_matchmaking.go (+32 -32)
📝 internal/asc/iap.go (+3 -3)
📝 internal/asc/output_app_events.go (+5 -5)
📝 internal/asc/retry_log_test.go (+0 -1)
📝 internal/asc/review_submission_items.go (+2 -2)
📝 internal/asc/subscription_grace_periods.go (+4 -4)
internal/asc/types/resources.go (+322 -0)
📝 internal/cli/cmdtest/error_hints_test.go (+0 -1)

...and 8 more files

📄 Description

Refactor pagination logic to use reflection, extract core types, and add comprehensive test coverage.

This PR addresses Issue 426 by:

  • Replacing the 150+ case type switch in PaginateAll with reflection, eliminating the maintenance burden for new response types.
  • Extracting core API data structures to internal/asc/types/ with backward-compatible type aliases, improving code organization.
  • Adding comprehensive unit and integration tests for pagination, ensuring robustness across various scenarios.

Open in Cursor Open in Web


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/428 **Author:** [@rudrankriyam](https://github.com/rudrankriyam) **Created:** 2/5/2026 **Status:** ✅ Merged **Merged:** 2/5/2026 **Merged by:** [@rudrankriyam](https://github.com/rudrankriyam) **Base:** `main` ← **Head:** `cursor/issue-426-refactor-7e7f` --- ### 📝 Commits (3) - [`62a2ebb`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/62a2ebbea416af0cf881fca9cdb9a62df8477c93) Harden test infrastructure and split internal/asc package - [`c2777bd`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/c2777bd6a6b6944daa08cf96be176aa613875af9) Fix typed nil pointer panic in pagination - [`752fb6b`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/752fb6bb7f69f084a2a6f0fdd12733ff38be8243) Merge pull request #429 from rudrankriyam/cursor/pagination-nil-pointer-panic-a6a7 ### 📊 Changes **28 files changed** (+1509 additions, -1031 deletions) <details> <summary>View changed files</summary> ➕ `.github/workflows/integration.yml` (+44 -0) 📝 `internal/asc/accessibility.go` (+3 -3) 📝 `internal/asc/app_events.go` (+53 -53) 📝 `internal/asc/beta_recruitment.go` (+8 -7) 📝 `internal/asc/client.go` (+42 -42) 📝 `internal/asc/client_builds.go` (+5 -5) 📝 `internal/asc/client_pagination.go` (+43 -522) ➕ `internal/asc/client_pagination_test.go` (+564 -0) 📝 `internal/asc/client_types.go` (+224 -278) 📝 `internal/asc/game_center_activities.go` (+42 -42) 📝 `internal/asc/game_center_challenges.go` (+16 -16) 📝 `internal/asc/game_center_groups.go` (+3 -3) 📝 `internal/asc/game_center_matchmaking.go` (+32 -32) 📝 `internal/asc/iap.go` (+3 -3) 📝 `internal/asc/output_app_events.go` (+5 -5) 📝 `internal/asc/retry_log_test.go` (+0 -1) 📝 `internal/asc/review_submission_items.go` (+2 -2) 📝 `internal/asc/subscription_grace_periods.go` (+4 -4) ➕ `internal/asc/types/resources.go` (+322 -0) 📝 `internal/cli/cmdtest/error_hints_test.go` (+0 -1) _...and 8 more files_ </details> ### 📄 Description Refactor pagination logic to use reflection, extract core types, and add comprehensive test coverage. This PR addresses Issue 426 by: - Replacing the 150+ case type switch in `PaginateAll` with reflection, eliminating the maintenance burden for new response types. - Extracting core API data structures to `internal/asc/types/` with backward-compatible type aliases, improving code organization. - Adding comprehensive unit and integration tests for pagination, ensuring robustness across various scenarios. --- <p><a href="https://cursor.com/background-agent?bcId=bc-37fabb6d-b51a-429a-b278-4c743a4545f9"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/agents?id=bc-37fabb6d-b51a-429a-b278-4c743a4545f9"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a></p> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-26 22:31:21 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/App-Store-Connect-CLI#519
No description provided.