[GH-ISSUE #203] Add Routing App Coverages CLI support #66

Closed
opened 2026-02-26 21:33:07 +03:00 by kerem · 1 comment
Owner

Originally created by @rudrankriyam on GitHub (Jan 26, 2026).
Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/203

Overview

Add CLI support for Routing App Coverages to upload, update, and delete geographic coverage files required for routing apps.

Docs (API)

Scope (Endpoints)

  • GET /v1/appStoreVersions/{id}/routingAppCoverage
  • GET /v1/routingAppCoverages/{id}
  • POST /v1/routingAppCoverages (create + upload operations)
  • PATCH /v1/routingAppCoverages/{id} (commit after upload)
  • DELETE /v1/routingAppCoverages/{id}

Proposed CLI

Top‑level group: asc routing-coverage <subcommand> [flags]

Subcommands:

  • routing-coverage get --version-id VERSION_ID
  • routing-coverage info --id COVERAGE_ID
  • routing-coverage create --version-id VERSION_ID --file ./coverage.geojson
  • routing-coverage commit --id COVERAGE_ID --checksum SHA256 (if commit requires explicit call)
  • routing-coverage delete --id COVERAGE_ID --confirm

If commit is always required after upload, hide it behind create and perform automatically.

Flags

Common:

  • --output json|table|markdown
  • --pretty

Create:

  • --file required
  • Safe file handling: no symlinks, size guardrail, file exists

Delete:

  • --confirm required

Output

  • JSON (minified) by default
  • Table/markdown for get/info
  • Show upload state and errors (assetDeliveryState)

Acceptance Criteria

  • asc routing-coverage --help available
  • Can fetch coverage for a version
  • Can create/upload and commit a coverage file
  • Can delete a coverage file
  • JSON/table/markdown output

Tests

  • CLI validation tests (missing --version-id/--file/--confirm)
  • Client tests for GET/POST/PATCH/DELETE
  • Upload tests using mocked presigned URLs
  • Output tests for table/markdown

Manual Test Plan (using real apps)

  1. asc apps --paginateAPP_ID
  2. asc versions list --app APP_ID --paginateVERSION_ID
  3. Create:
    • asc routing-coverage create --version-id VERSION_ID --file ./coverage.geojson
  4. Get for version:
    • asc routing-coverage get --version-id VERSION_ID
  5. Get by id:
    • asc routing-coverage info --id COVERAGE_ID
  6. Delete:
    • asc routing-coverage delete --id COVERAGE_ID --confirm

Implementation Notes

  • Reuse upload helpers from assets/builds for upload operations.
  • Add cmd/routing_coverage.go, internal/asc/client_routing_coverage.go, and output helpers.
  • Register in cmd/root.go.
Originally created by @rudrankriyam on GitHub (Jan 26, 2026). Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/203 # Overview Add CLI support for **Routing App Coverages** to upload, update, and delete geographic coverage files required for routing apps. # Docs (API) - Routing App Coverages: https://sosumi.ai/documentation/appstoreconnectapi/routing-app-coverages - RoutingAppCoverage object: https://sosumi.ai/documentation/appstoreconnectapi/routingappcoverage - Create request: https://sosumi.ai/documentation/appstoreconnectapi/routingappcoveragecreaterequest - Update request (commit): https://sosumi.ai/documentation/appstoreconnectapi/routingappcoverageupdaterequest # Scope (Endpoints) - `GET /v1/appStoreVersions/{id}/routingAppCoverage` - `GET /v1/routingAppCoverages/{id}` - `POST /v1/routingAppCoverages` (create + upload operations) - `PATCH /v1/routingAppCoverages/{id}` (commit after upload) - `DELETE /v1/routingAppCoverages/{id}` # Proposed CLI Top‑level group: `asc routing-coverage <subcommand> [flags]` Subcommands: - `routing-coverage get --version-id VERSION_ID` - `routing-coverage info --id COVERAGE_ID` - `routing-coverage create --version-id VERSION_ID --file ./coverage.geojson` - `routing-coverage commit --id COVERAGE_ID --checksum SHA256` (if commit requires explicit call) - `routing-coverage delete --id COVERAGE_ID --confirm` If commit is always required after upload, hide it behind `create` and perform automatically. # Flags Common: - `--output json|table|markdown` - `--pretty` Create: - `--file` required - Safe file handling: no symlinks, size guardrail, file exists Delete: - `--confirm` required # Output - JSON (minified) by default - Table/markdown for get/info - Show upload state and errors (`assetDeliveryState`) # Acceptance Criteria - [ ] `asc routing-coverage --help` available - [ ] Can fetch coverage for a version - [ ] Can create/upload and commit a coverage file - [ ] Can delete a coverage file - [ ] JSON/table/markdown output # Tests - CLI validation tests (missing --version-id/--file/--confirm) - Client tests for GET/POST/PATCH/DELETE - Upload tests using mocked presigned URLs - Output tests for table/markdown # Manual Test Plan (using real apps) 1) `asc apps --paginate` → `APP_ID` 2) `asc versions list --app APP_ID --paginate` → `VERSION_ID` 3) Create: - `asc routing-coverage create --version-id VERSION_ID --file ./coverage.geojson` 4) Get for version: - `asc routing-coverage get --version-id VERSION_ID` 5) Get by id: - `asc routing-coverage info --id COVERAGE_ID` 6) Delete: - `asc routing-coverage delete --id COVERAGE_ID --confirm` # Implementation Notes - Reuse upload helpers from assets/builds for upload operations. - Add `cmd/routing_coverage.go`, `internal/asc/client_routing_coverage.go`, and output helpers. - Register in `cmd/root.go`.
kerem closed this issue 2026-02-26 21:33:07 +03:00
Author
Owner

@rudrankriyam commented on GitHub (Jan 27, 2026):

Closed as fixed by #232. PRs: https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/232

<!-- gh-comment-id:3808155946 --> @rudrankriyam commented on GitHub (Jan 27, 2026): Closed as fixed by #232. PRs: https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/232
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#66
No description provided.