[GH-ISSUE #191] Add App Store Review Details CLI support #54

Closed
opened 2026-02-26 21:33:02 +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/191

Overview

Add CLI support for App Store Review Details (not TestFlight) so we can set contact info, demo account info, and review notes for App Review.

Docs (API)

Scope (Endpoints)

  • GET /v1/appStoreVersions/{id}/appStoreReviewDetail
  • GET /v1/appStoreReviewDetails/{id}
  • POST /v1/appStoreReviewDetails
  • PATCH /v1/appStoreReviewDetails/{id}
  • GET /v1/appStoreVersions/{id}/relationships/appStoreReviewDetail (optional, for linkage)

Required Attributes (from docs)

Required for App Review:

  • Contact first name
  • Contact last name
  • Contact phone number
  • Contact email address
  • Demo account required (boolean)
  • Demo account name (if SSO is used)
  • Demo account password (if SSO is used)

Optional:

  • Notes for review team

Proposed CLI

Top-level group (suggested): asc review-details <subcommand> [flags]

Subcommands:

  • review-details get --id REVIEW_DETAIL_ID
  • review-details get --version-id VERSION_ID
  • review-details create --version-id VERSION_ID --contact-first-name ... --contact-last-name ... --contact-email ... --contact-phone ... --demo-account-required true|false [--demo-account-name ... --demo-account-password ...] [--notes ...]
  • review-details update --id REVIEW_DETAIL_ID [flags to update fields]

Flag Patterns

Common:

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

Create-specific:

  • --version-id (required)
  • --contact-first-name, --contact-last-name, --contact-email, --contact-phone (required)
  • --demo-account-required (required)
  • --demo-account-name, --demo-account-password (required when demo account is needed)
  • --notes (optional)

Update-specific:

  • --id (required)
  • At least one update flag is required

Output

  • JSON (minified) by default
  • --output table/markdown for human-friendly display

Acceptance Criteria

  • asc review-details --help is available
  • Create/get/update works against live App Store Connect
  • Can read review detail from a version (--version-id path)
  • Validations for required fields and demo account requirements
  • JSON/table/markdown output for get commands

Tests

  • CLI validation tests for missing required flags and mutually dependent fields
  • HTTP client tests for POST/GET/PATCH
  • Output tests for table/markdown

Manual Test Plan (using real apps)

  1. Find IDs:
    • asc apps --paginate → pick APP_ID
    • asc versions list --app APP_ID --paginate → pick VERSION_ID
  2. Create:
    • asc review-details create --version-id VERSION_ID \ --contact-first-name "First" --contact-last-name "Last" \ --contact-email "you@example.com" --contact-phone "+1-555-555-5555" \ --demo-account-required false --notes "Review notes"
  3. Read by version:
    • asc review-details get --version-id VERSION_ID
  4. Read by id:
    • Use the ID from create response: asc review-details get --id REVIEW_DETAIL_ID
  5. Update:
    • asc review-details update --id REVIEW_DETAIL_ID --notes "Updated notes"

Implementation Notes

  • Add cmd/review_details.go
  • Add internal/asc/review_details.go with types + client methods
  • Add internal/asc/output_review_details.go
  • Register command in cmd/root.go
  • Follow existing patterns in cmd/testflight_review.go for validation and updates
Originally created by @rudrankriyam on GitHub (Jan 26, 2026). Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/191 # Overview Add CLI support for **App Store Review Details** (not TestFlight) so we can set contact info, demo account info, and review notes for App Review. # Docs (API) - App Store Review Details: https://sosumi.ai/documentation/appstoreconnectapi/app-store-review-details - Read review detail for a version: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-appstoreversions-_id_-appstorereviewdetail # Scope (Endpoints) - `GET /v1/appStoreVersions/{id}/appStoreReviewDetail` - `GET /v1/appStoreReviewDetails/{id}` - `POST /v1/appStoreReviewDetails` - `PATCH /v1/appStoreReviewDetails/{id}` - `GET /v1/appStoreVersions/{id}/relationships/appStoreReviewDetail` (optional, for linkage) # Required Attributes (from docs) Required for App Review: - Contact first name - Contact last name - Contact phone number - Contact email address - Demo account required (boolean) - Demo account name (if SSO is used) - Demo account password (if SSO is used) Optional: - Notes for review team # Proposed CLI Top-level group (suggested): `asc review-details <subcommand> [flags]` Subcommands: - `review-details get --id REVIEW_DETAIL_ID` - `review-details get --version-id VERSION_ID` - `review-details create --version-id VERSION_ID --contact-first-name ... --contact-last-name ... --contact-email ... --contact-phone ... --demo-account-required true|false [--demo-account-name ... --demo-account-password ...] [--notes ...]` - `review-details update --id REVIEW_DETAIL_ID [flags to update fields]` # Flag Patterns Common: - `--output json|table|markdown` - `--pretty` Create-specific: - `--version-id` (required) - `--contact-first-name`, `--contact-last-name`, `--contact-email`, `--contact-phone` (required) - `--demo-account-required` (required) - `--demo-account-name`, `--demo-account-password` (required when demo account is needed) - `--notes` (optional) Update-specific: - `--id` (required) - At least one update flag is required # Output - JSON (minified) by default - `--output table/markdown` for human-friendly display # Acceptance Criteria - [ ] `asc review-details --help` is available - [ ] Create/get/update works against live App Store Connect - [ ] Can read review detail from a version (`--version-id` path) - [ ] Validations for required fields and demo account requirements - [ ] JSON/table/markdown output for get commands # Tests - CLI validation tests for missing required flags and mutually dependent fields - HTTP client tests for POST/GET/PATCH - Output tests for table/markdown # Manual Test Plan (using real apps) 1) Find IDs: - `asc apps --paginate` → pick `APP_ID` - `asc versions list --app APP_ID --paginate` → pick `VERSION_ID` 2) Create: - `asc review-details create --version-id VERSION_ID \ --contact-first-name "First" --contact-last-name "Last" \ --contact-email "you@example.com" --contact-phone "+1-555-555-5555" \ --demo-account-required false --notes "Review notes"` 3) Read by version: - `asc review-details get --version-id VERSION_ID` 4) Read by id: - Use the ID from create response: `asc review-details get --id REVIEW_DETAIL_ID` 5) Update: - `asc review-details update --id REVIEW_DETAIL_ID --notes "Updated notes"` # Implementation Notes - Add `cmd/review_details.go` - Add `internal/asc/review_details.go` with types + client methods - Add `internal/asc/output_review_details.go` - Register command in `cmd/root.go` - Follow existing patterns in `cmd/testflight_review.go` for validation and updates
kerem closed this issue 2026-02-26 21:33:02 +03:00
Author
Owner

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

Implemented App Store review details + attachments in main.

<!-- gh-comment-id:3805377435 --> @rudrankriyam commented on GitHub (Jan 27, 2026): Implemented App Store review details + attachments in main.
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#54
No description provided.