[GH-ISSUE #233] Complete Xcode Cloud CLI coverage for remaining endpoints #71

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

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

Overview

The CLI now covers workflows, build runs, actions, artifacts, test results, and issues. The remaining Xcode Cloud endpoints in the OpenAPI spec are not surfaced yet. This issue tracks adding those endpoints (read-only and workflow mutations) so the CLI can fully cover Xcode Cloud.

Docs (API)

Scope (Endpoints)

Read-only:

  • GET /v1/ciProducts
  • GET /v1/ciProducts/{id}
  • GET /v1/ciProducts/{id}/app
  • GET /v1/ciProducts/{id}/buildRuns
  • GET /v1/ciProducts/{id}/workflows
  • GET /v1/ciProducts/{id}/primaryRepositories
  • GET /v1/ciProducts/{id}/additionalRepositories
  • GET /v1/ciWorkflows/{id}
  • GET /v1/ciWorkflows/{id}/buildRuns
  • GET /v1/ciWorkflows/{id}/repository
  • GET /v1/ciBuildRuns/{id}/builds
  • GET /v1/ciBuildActions/{id}
  • GET /v1/ciBuildActions/{id}/buildRun
  • GET /v1/ciMacOsVersions
  • GET /v1/ciMacOsVersions/{id}
  • GET /v1/ciMacOsVersions/{id}/xcodeVersions
  • GET /v1/ciXcodeVersions
  • GET /v1/ciXcodeVersions/{id}
  • GET /v1/ciXcodeVersions/{id}/macOsVersions
  • Optional: relationship endpoints for linkages (if useful for lightweight list)

Mutations:

  • POST /v1/ciWorkflows
  • PATCH /v1/ciWorkflows/{id}
  • DELETE /v1/ciWorkflows/{id}
  • DELETE /v1/ciProducts/{id}

Proposed CLI

All under xcode-cloud:

asc xcode-cloud products list [--app APP_ID]
asc xcode-cloud products get --id PRODUCT_ID

asc xcode-cloud workflows get --id WORKFLOW_ID
asc xcode-cloud workflows repository --id WORKFLOW_ID

asc xcode-cloud build-runs builds --run-id BUILD_RUN_ID
asc xcode-cloud actions get --id ACTION_ID
asc xcode-cloud actions build-run --id ACTION_ID

asc xcode-cloud macos-versions list
asc xcode-cloud macos-versions get --id MACOS_VERSION_ID
asc xcode-cloud macos-versions xcode-versions --id MACOS_VERSION_ID

asc xcode-cloud xcode-versions list
asc xcode-cloud xcode-versions get --id XCODE_VERSION_ID
asc xcode-cloud xcode-versions macos-versions --id XCODE_VERSION_ID

Mutations (separate subcommands):

asc xcode-cloud workflows create --file ./workflow.json
asc xcode-cloud workflows update --id WORKFLOW_ID --file ./workflow.json
asc xcode-cloud workflows delete --id WORKFLOW_ID --confirm

asc xcode-cloud products delete --id PRODUCT_ID --confirm

Flags

Common:

  • --output json|table|markdown
  • --pretty
  • --limit, --next, --paginate

Mutations:

  • --confirm required for deletes
  • --file for create/update (raw JSON request body)

Output

  • JSON (minified) by default
  • Table/markdown for list/get
  • Builds list should surface build number, version, processing state, uploaded date (if available)
  • Versions list should surface version name and related xcode/macos versions
  • Products list should surface product name, bundle ID, and created date (if available)

Acceptance Criteria

  • asc xcode-cloud products|workflows|actions|build-runs|macos-versions|xcode-versions --help available
  • Read-only endpoints work with pagination
  • Get endpoints return details for a single item
  • Create/update/delete require --confirm (delete) and --file (create/update)
  • JSON/table/markdown output where applicable

Tests

  • CLI validation tests (missing --id / invalid flags)
  • Client tests for list/get endpoints and pagination
  • Mutation tests for workflow create/update/delete (request shape + validation)
  • Output tests for table/markdown

Manual Test Plan (using real apps)

  1. List products and workflows:
    • asc xcode-cloud products list --app APP_ID
    • asc xcode-cloud products get --id PRODUCT_ID
  2. Read workflow metadata:
    • asc xcode-cloud workflows get --id WORKFLOW_ID
    • asc xcode-cloud workflows repository --id WORKFLOW_ID
  3. Build run builds:
    • asc xcode-cloud build-runs builds --run-id BUILD_RUN_ID
  4. Build action get/build-run:
    • asc xcode-cloud actions get --id ACTION_ID
    • asc xcode-cloud actions build-run --id ACTION_ID
  5. List versions:
    • asc xcode-cloud macos-versions list
    • asc xcode-cloud xcode-versions list

Implementation Notes

  • Add CiMacOsVersion/CiXcodeVersion types and responses in internal/asc/xcode_cloud.go.
  • Add client methods for all endpoints above.
  • Add output helpers in internal/asc/xcode_cloud_output.go.
  • Add new subcommands in cmd/xcode_cloud.go (or split into new files), register under xcode-cloud.
  • Use explicit flags only; no interactive prompts (use --confirm for destructive operations).
Originally created by @rudrankriyam on GitHub (Jan 27, 2026). Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/233 # Overview The CLI now covers workflows, build runs, actions, artifacts, test results, and issues. The remaining Xcode Cloud endpoints in the OpenAPI spec are not surfaced yet. This issue tracks adding those endpoints (read-only and workflow mutations) so the CLI can fully cover Xcode Cloud. # Docs (API) - CiProducts list: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-ciproducts - CiProducts get: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-ciproducts-_id_ - CiProducts app: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-ciproducts-_id_-app - CiProducts build runs: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-ciproducts-_id_-buildruns - CiProducts workflows: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-ciproducts-_id_-workflows - CiProducts primary repos: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-ciproducts-_id_-primaryrepositories - CiProducts additional repos: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-ciproducts-_id_-additionalrepositories - CiProducts delete: https://sosumi.ai/documentation/appstoreconnectapi/delete-v1-ciproducts-_id_ - CiWorkflows get: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-ciworkflows-_id_ - CiWorkflows build runs: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-ciworkflows-_id_-buildruns - CiWorkflows repository: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-ciworkflows-_id_-repository - CiWorkflows create: https://sosumi.ai/documentation/appstoreconnectapi/post-v1-ciworkflows - CiWorkflows update: https://sosumi.ai/documentation/appstoreconnectapi/patch-v1-ciworkflows-_id_ - CiWorkflows delete: https://sosumi.ai/documentation/appstoreconnectapi/delete-v1-ciworkflows-_id_ - CiBuildRuns builds: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-cibuildruns-_id_-builds - CiBuildActions get: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-cibuildactions-_id_ - CiBuildActions build run: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-cibuildactions-_id_-buildrun - CiMacOsVersions list: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-cimacosversions - CiMacOsVersions get: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-cimacosversions-_id_ - CiMacOsVersions xcode versions: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-cimacosversions-_id_-xcodeversions - CiXcodeVersions list: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-cixcodeversions - CiXcodeVersions get: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-cixcodeversions-_id_ - CiXcodeVersions macOS versions: https://sosumi.ai/documentation/appstoreconnectapi/get-v1-cixcodeversions-_id_-macosversions # Scope (Endpoints) Read-only: - `GET /v1/ciProducts` - `GET /v1/ciProducts/{id}` - `GET /v1/ciProducts/{id}/app` - `GET /v1/ciProducts/{id}/buildRuns` - `GET /v1/ciProducts/{id}/workflows` - `GET /v1/ciProducts/{id}/primaryRepositories` - `GET /v1/ciProducts/{id}/additionalRepositories` - `GET /v1/ciWorkflows/{id}` - `GET /v1/ciWorkflows/{id}/buildRuns` - `GET /v1/ciWorkflows/{id}/repository` - `GET /v1/ciBuildRuns/{id}/builds` - `GET /v1/ciBuildActions/{id}` - `GET /v1/ciBuildActions/{id}/buildRun` - `GET /v1/ciMacOsVersions` - `GET /v1/ciMacOsVersions/{id}` - `GET /v1/ciMacOsVersions/{id}/xcodeVersions` - `GET /v1/ciXcodeVersions` - `GET /v1/ciXcodeVersions/{id}` - `GET /v1/ciXcodeVersions/{id}/macOsVersions` - Optional: relationship endpoints for linkages (if useful for lightweight list) Mutations: - `POST /v1/ciWorkflows` - `PATCH /v1/ciWorkflows/{id}` - `DELETE /v1/ciWorkflows/{id}` - `DELETE /v1/ciProducts/{id}` # Proposed CLI All under `xcode-cloud`: ``` asc xcode-cloud products list [--app APP_ID] asc xcode-cloud products get --id PRODUCT_ID asc xcode-cloud workflows get --id WORKFLOW_ID asc xcode-cloud workflows repository --id WORKFLOW_ID asc xcode-cloud build-runs builds --run-id BUILD_RUN_ID asc xcode-cloud actions get --id ACTION_ID asc xcode-cloud actions build-run --id ACTION_ID asc xcode-cloud macos-versions list asc xcode-cloud macos-versions get --id MACOS_VERSION_ID asc xcode-cloud macos-versions xcode-versions --id MACOS_VERSION_ID asc xcode-cloud xcode-versions list asc xcode-cloud xcode-versions get --id XCODE_VERSION_ID asc xcode-cloud xcode-versions macos-versions --id XCODE_VERSION_ID ``` Mutations (separate subcommands): ``` asc xcode-cloud workflows create --file ./workflow.json asc xcode-cloud workflows update --id WORKFLOW_ID --file ./workflow.json asc xcode-cloud workflows delete --id WORKFLOW_ID --confirm asc xcode-cloud products delete --id PRODUCT_ID --confirm ``` # Flags Common: - `--output json|table|markdown` - `--pretty` - `--limit`, `--next`, `--paginate` Mutations: - `--confirm` required for deletes - `--file` for create/update (raw JSON request body) # Output - JSON (minified) by default - Table/markdown for list/get - Builds list should surface build number, version, processing state, uploaded date (if available) - Versions list should surface version name and related xcode/macos versions - Products list should surface product name, bundle ID, and created date (if available) # Acceptance Criteria - [ ] `asc xcode-cloud products|workflows|actions|build-runs|macos-versions|xcode-versions --help` available - [ ] Read-only endpoints work with pagination - [ ] Get endpoints return details for a single item - [ ] Create/update/delete require `--confirm` (delete) and `--file` (create/update) - [ ] JSON/table/markdown output where applicable # Tests - CLI validation tests (missing --id / invalid flags) - Client tests for list/get endpoints and pagination - Mutation tests for workflow create/update/delete (request shape + validation) - Output tests for table/markdown # Manual Test Plan (using real apps) 1) List products and workflows: - `asc xcode-cloud products list --app APP_ID` - `asc xcode-cloud products get --id PRODUCT_ID` 2) Read workflow metadata: - `asc xcode-cloud workflows get --id WORKFLOW_ID` - `asc xcode-cloud workflows repository --id WORKFLOW_ID` 3) Build run builds: - `asc xcode-cloud build-runs builds --run-id BUILD_RUN_ID` 4) Build action get/build-run: - `asc xcode-cloud actions get --id ACTION_ID` - `asc xcode-cloud actions build-run --id ACTION_ID` 5) List versions: - `asc xcode-cloud macos-versions list` - `asc xcode-cloud xcode-versions list` # Implementation Notes - Add CiMacOsVersion/CiXcodeVersion types and responses in `internal/asc/xcode_cloud.go`. - Add client methods for all endpoints above. - Add output helpers in `internal/asc/xcode_cloud_output.go`. - Add new subcommands in `cmd/xcode_cloud.go` (or split into new files), register under `xcode-cloud`. - Use explicit flags only; no interactive prompts (use `--confirm` for destructive operations).
kerem closed this issue 2026-02-26 21:33:10 +03:00
Author
Owner

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

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

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