[GH-ISSUE #206] Add App Store Version Release Requests CLI support #69

Closed
opened 2026-02-26 21:33:08 +03:00 by kerem · 2 comments
Owner

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

Overview

Add CLI support to manually release an App Store approved version that is in Pending Developer Release using the public App Store Connect API.

Docs (API)

Scope (Endpoints)

  • POST /v1/appStoreVersionReleaseRequests

(Discovery) Confirm whether GET /v1/appStoreVersionReleaseRequests/{id} exists in OpenAPI. If it does, add a get subcommand; otherwise keep create‑only.

Proposed CLI

asc versions release --version-id VERSION_ID --confirm

Optional (if GET exists):

asc versions release get --id RELEASE_REQUEST_ID

Flags

  • --version-id (required)
  • --confirm (required; release is impactful)
  • --output json|table|markdown
  • --pretty

Output

  • JSON (minified) by default
  • Table/markdown for a single release request (if GET supported)

Acceptance Criteria

  • asc versions release --help available
  • Create works against live App Store Connect
  • Validations for required flags
  • --confirm required
  • JSON/table/markdown output

Tests

  • CLI validation tests (missing --version-id, missing --confirm)
  • Client tests for POST /v1/appStoreVersionReleaseRequests
  • Output tests for table/markdown (if GET supported)

Manual Test Plan (using real apps)

  1. Find an app + version in Pending Developer Release:
    • asc apps list --paginate
    • asc versions list --app APP_ID --output table
  2. Release it:
    • asc versions release --version-id VERSION_ID --confirm
  3. Verify:
    • App Store Connect UI shows version released
    • (Optional) asc versions get --id VERSION_ID reflects updated state

Implementation Notes

  • Add internal/asc/release_requests.go with request/response types.
  • Add client method CreateAppStoreVersionReleaseRequest.
  • Add cmd/versions_release.go (or extend cmd/versions.go).
  • Register under versions.
Originally created by @rudrankriyam on GitHub (Jan 26, 2026). Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/206 # Overview Add CLI support to manually release an App Store approved version that is in **Pending Developer Release** using the public App Store Connect API. # Docs (API) - App Store Version Release Requests: https://sosumi.ai/documentation/appstoreconnectapi/app-store-version-release-requests - AppStoreVersionReleaseRequest: https://sosumi.ai/documentation/appstoreconnectapi/appstoreversionreleaserequest - Create request: https://sosumi.ai/documentation/appstoreconnectapi/appstoreversionreleaserequestcreaterequest # Scope (Endpoints) - `POST /v1/appStoreVersionReleaseRequests` (Discovery) Confirm whether `GET /v1/appStoreVersionReleaseRequests/{id}` exists in OpenAPI. If it does, add a `get` subcommand; otherwise keep create‑only. # Proposed CLI ``` asc versions release --version-id VERSION_ID --confirm ``` Optional (if GET exists): ``` asc versions release get --id RELEASE_REQUEST_ID ``` # Flags - `--version-id` (required) - `--confirm` (required; release is impactful) - `--output json|table|markdown` - `--pretty` # Output - JSON (minified) by default - Table/markdown for a single release request (if GET supported) # Acceptance Criteria - [ ] `asc versions release --help` available - [ ] Create works against live App Store Connect - [ ] Validations for required flags - [ ] `--confirm` required - [ ] JSON/table/markdown output # Tests - CLI validation tests (missing --version-id, missing --confirm) - Client tests for POST /v1/appStoreVersionReleaseRequests - Output tests for table/markdown (if GET supported) # Manual Test Plan (using real apps) 1) Find an app + version in **Pending Developer Release**: - `asc apps list --paginate` - `asc versions list --app APP_ID --output table` 2) Release it: - `asc versions release --version-id VERSION_ID --confirm` 3) Verify: - App Store Connect UI shows version released - (Optional) `asc versions get --id VERSION_ID` reflects updated state # Implementation Notes - Add `internal/asc/release_requests.go` with request/response types. - Add client method `CreateAppStoreVersionReleaseRequest`. - Add `cmd/versions_release.go` (or extend `cmd/versions.go`). - Register under `versions`.
kerem closed this issue 2026-02-26 21:33:09 +03:00
Author
Owner

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

@cursor Please implement issue #206 and run tests using ASC auth values from the environment (ASC_*). Test all endpoints you add (POST /v1/appStoreVersionReleaseRequests and GET if you add it). When you open the PR, update the PR description to include the test results you ran.

<!-- gh-comment-id:3804018961 --> @rudrankriyam commented on GitHub (Jan 27, 2026): @cursor Please implement issue #206 and run tests using ASC auth values from the environment (ASC_*). Test all endpoints you add (POST /v1/appStoreVersionReleaseRequests and GET if you add it). When you open the PR, update the PR description to include the test results you ran.
Author
Owner

@cursor[bot] commented on GitHub (Jan 27, 2026):

Summary:

  • Implemented App Store version release request support (client payload/response + asc versions release command with required --confirm) and wired the CLI to return a concise result object for output formatting.
// ...
// ...
  • Added table/markdown output support plus unit/integration tests and documented the new command in README; confirmed OpenAPI only exposes POST, so no release get subcommand.

Tests:

  • make test
  • make test-integration (skipped: ASC_* env vars were empty and ASC_APP_ID/ASC_RELEASE_VERSION_ID not set; I attempted env/local/global config discovery but no usable credentials were available).
    Note: gh pr view reports no PR for this branch yet, so I couldn’t update the PR description with test results.

Walkthrough artifact:

  • versions_release_help/recording_demo.mp4 (terminal demo of go run . versions release --help).

View PR
Open in Cursor Open in Web

<!-- gh-comment-id:3804019384 --> @cursor[bot] commented on GitHub (Jan 27, 2026): Summary: - Implemented App Store version release request support (client payload/response + `asc versions release` command with required `--confirm`) and wired the CLI to return a concise result object for output formatting. ```15:63:cmd/versions_release.go // ... ``` ```10:72:internal/asc/release_requests.go // ... ``` - Added table/markdown output support plus unit/integration tests and documented the new command in README; confirmed OpenAPI only exposes POST, so no `release get` subcommand. Tests: - `make test` - `make test-integration` (skipped: ASC_* env vars were empty and `ASC_APP_ID`/`ASC_RELEASE_VERSION_ID` not set; I attempted env/local/global config discovery but no usable credentials were available). Note: `gh pr view` reports no PR for this branch yet, so I couldn’t update the PR description with test results. Walkthrough artifact: - `versions_release_help/recording_demo.mp4` (terminal demo of `go run . versions release --help`). <a href="https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/213"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/view-pr-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/view-pr-light.svg"><img alt="View PR" src="https://cursor.com/view-pr-light.svg"></picture></a> <a href="https://cursor.com/background-agent?bcId=bc-3c04b46c-c528-41e4-a1b2-4aadda3785bc"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/open-in-cursor-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/open-in-cursor-light.svg"><img alt="Open in Cursor" src="https://cursor.com/open-in-cursor.svg"></picture></a>&nbsp;<a href="https://cursor.com/agents?id=bc-3c04b46c-c528-41e4-a1b2-4aadda3785bc"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/open-in-web-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/open-in-web-light.svg"><img alt="Open in Web" src="https://cursor.com/open-in-web.svg"></picture></a>
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#69
No description provided.