[PR #545] [MERGED] AppStoreConnectCLI async await #608

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

📋 Pull Request Information

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

Base: mainHead: cursor/appstoreconnectcli-async-await-f47d


📝 Commits (10+)

  • 9e9ad61 refactor: unify polling loops with shared helper
  • 9af0259 refactor(cli): consolidate output flag binding and rendering helpers
  • b476117 fix(asc): retry config load after transient failures
  • 12dc9e0 refactor asc single-to-list output registry adapters
  • 2ed979d refactor asc centralize review app clip row adapters
  • a4b1332 refactor asc prevalidate single-to-list adapter types
  • 8fd2c51 test asc assert struct-kind guard in single-list adapter
  • 096690f test asc share row-content assertion helper
  • 3a80c78 test(asc): cover list-direct conflict for single-to-list helper
  • f6a8432 test(asc): reuse registry absence assertion helper

📊 Changes

256 files changed (+4791 additions, -3886 deletions)

View changed files

📝 internal/asc/client_core.go (+40 -2)
internal/asc/client_core_config_cache_test.go (+118 -0)
📝 internal/asc/client_publish.go (+6 -14)
📝 internal/asc/output_registry.go (+292 -21)
📝 internal/asc/output_registry_init.go (+170 -588)
📝 internal/asc/output_registry_test.go (+1057 -37)
internal/asc/poll.go (+52 -0)
internal/asc/poll_test.go (+133 -0)
📝 internal/asc/secure_open_other.go (+6 -2)
📝 internal/asc/secure_open_unix.go (+2 -3)
📝 internal/cli/accessibility/accessibility.go (+11 -16)
📝 internal/cli/actors/actors.go (+5 -7)
📝 internal/cli/agerating/age_rating.go (+4 -6)
📝 internal/cli/agreements/agreements.go (+3 -4)
📝 internal/cli/alternativedistribution/alternative_distribution_domains.go (+9 -13)
📝 internal/cli/alternativedistribution/alternative_distribution_keys.go (+11 -16)
📝 internal/cli/alternativedistribution/alternative_distribution_package_versions.go (+11 -15)
📝 internal/cli/alternativedistribution/alternative_distribution_packages.go (+10 -15)
📝 internal/cli/analytics/analytics_instances.go (+5 -7)
📝 internal/cli/analytics/analytics_reports.go (+5 -7)

...and 80 more files

📄 Description

Summary

  • Implements refactoring outlined in #544 to improve code maintainability and reduce duplication.
  • Unifies duplicated polling logic into a shared helper in internal/asc/poll.
  • Centralizes secure file-open logic into a new internal/secureopen package, removing duplication across internal/asc and internal/cli/shared.
  • Introduces controlled config caching in internal/asc/client_core to reduce repeated configuration loads.
  • Refactors internal/asc/output_registry_init.go to reduce repetitive row registrations.
  • Begins consolidation of CLI boilerplate by introducing shared flag binder helpers.

Validation

  • make format
  • make lint
  • make test

Wall of Apps (only if this PR adds/updates a Wall app)

  • I edited docs/wall-of-apps.json (not the generated Wall block in README.md directly)
  • I ran make update-wall-of-apps
  • I committed all generated files:
    • docs/wall-of-apps.json
    • README.md

Entry template:

{
  "app": "Your App Name",
  "link": "https://apps.apple.com/app/id1234567890",
  "creator": "your-github-handle",
  "platform": ["iOS"]
}

Common Apple labels: iOS, macOS, watchOS, tvOS, visionOS.


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/545 **Author:** [@rudrankriyam](https://github.com/rudrankriyam) **Created:** 2/14/2026 **Status:** ✅ Merged **Merged:** 2/14/2026 **Merged by:** [@rudrankriyam](https://github.com/rudrankriyam) **Base:** `main` ← **Head:** `cursor/appstoreconnectcli-async-await-f47d` --- ### 📝 Commits (10+) - [`9e9ad61`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/9e9ad6178e3b67a7ec89298a6dea941062d35fd7) refactor: unify polling loops with shared helper - [`9af0259`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/9af0259ff6957ad726ec6adda77af3ccaaf1ad94) refactor(cli): consolidate output flag binding and rendering helpers - [`b476117`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/b476117a781f9d42982b01a51e7ddb36b0a05206) fix(asc): retry config load after transient failures - [`12dc9e0`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/12dc9e04e56c87110aa9bb1643d48a815959f69a) refactor asc single-to-list output registry adapters - [`2ed979d`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/2ed979d2177a697101570d8f5ce9289714197db3) refactor asc centralize review app clip row adapters - [`a4b1332`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/a4b1332b8b54f692c06928b5e40b3090a557b6cf) refactor asc prevalidate single-to-list adapter types - [`8fd2c51`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/8fd2c51d019a6ddce7ef9efb27eea686a0f67f6f) test asc assert struct-kind guard in single-list adapter - [`096690f`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/096690f0232a81ccbea4035a8a992e9dc83f4a4c) test asc share row-content assertion helper - [`3a80c78`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/3a80c78445ecf5fa84ffda7a584d1fe08f9368d0) test(asc): cover list-direct conflict for single-to-list helper - [`f6a8432`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/f6a843276e52c103f3eef3b7347c2b22c035a211) test(asc): reuse registry absence assertion helper ### 📊 Changes **256 files changed** (+4791 additions, -3886 deletions) <details> <summary>View changed files</summary> 📝 `internal/asc/client_core.go` (+40 -2) ➕ `internal/asc/client_core_config_cache_test.go` (+118 -0) 📝 `internal/asc/client_publish.go` (+6 -14) 📝 `internal/asc/output_registry.go` (+292 -21) 📝 `internal/asc/output_registry_init.go` (+170 -588) 📝 `internal/asc/output_registry_test.go` (+1057 -37) ➕ `internal/asc/poll.go` (+52 -0) ➕ `internal/asc/poll_test.go` (+133 -0) 📝 `internal/asc/secure_open_other.go` (+6 -2) 📝 `internal/asc/secure_open_unix.go` (+2 -3) 📝 `internal/cli/accessibility/accessibility.go` (+11 -16) 📝 `internal/cli/actors/actors.go` (+5 -7) 📝 `internal/cli/agerating/age_rating.go` (+4 -6) 📝 `internal/cli/agreements/agreements.go` (+3 -4) 📝 `internal/cli/alternativedistribution/alternative_distribution_domains.go` (+9 -13) 📝 `internal/cli/alternativedistribution/alternative_distribution_keys.go` (+11 -16) 📝 `internal/cli/alternativedistribution/alternative_distribution_package_versions.go` (+11 -15) 📝 `internal/cli/alternativedistribution/alternative_distribution_packages.go` (+10 -15) 📝 `internal/cli/analytics/analytics_instances.go` (+5 -7) 📝 `internal/cli/analytics/analytics_reports.go` (+5 -7) _...and 80 more files_ </details> ### 📄 Description ## Summary - Implements refactoring outlined in #544 to improve code maintainability and reduce duplication. - Unifies duplicated polling logic into a shared helper in `internal/asc/poll`. - Centralizes secure file-open logic into a new `internal/secureopen` package, removing duplication across `internal/asc` and `internal/cli/shared`. - Introduces controlled config caching in `internal/asc/client_core` to reduce repeated configuration loads. - Refactors `internal/asc/output_registry_init.go` to reduce repetitive row registrations. - Begins consolidation of CLI boilerplate by introducing shared flag binder helpers. ## Validation - [x] `make format` - [x] `make lint` - [x] `make test` ## Wall of Apps (only if this PR adds/updates a Wall app) - [ ] I edited `docs/wall-of-apps.json` (not the generated Wall block in `README.md` directly) - [ ] I ran `make update-wall-of-apps` - [ ] I committed all generated files: - `docs/wall-of-apps.json` - `README.md` Entry template: ```json { "app": "Your App Name", "link": "https://apps.apple.com/app/id1234567890", "creator": "your-github-handle", "platform": ["iOS"] } ``` Common Apple labels: `iOS`, `macOS`, `watchOS`, `tvOS`, `visionOS`. --- <p><a href="https://cursor.com/background-agent?bcId=bc-52b26446-657d-4ab1-8bf1-f1e7e87e4628"><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-52b26446-657d-4ab1-8bf1-f1e7e87e4628"><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:45 +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#608
No description provided.