[GH-ISSUE #202] Add End User License Agreements (EULA) CLI support #65

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

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

Overview

Add CLI support for managing End User License Agreements (EULA) so users can create, update, delete, and inspect custom EULAs and their territories.

Docs (API)

Scope (Endpoints)

  • GET /v1/apps/{id}/endUserLicenseAgreement
  • GET /v1/endUserLicenseAgreements/{id}
  • POST /v1/endUserLicenseAgreements
  • PATCH /v1/endUserLicenseAgreements/{id}
  • DELETE /v1/endUserLicenseAgreements/{id}
  • GET /v1/endUserLicenseAgreements/{id}/territories
  • GET /v1/endUserLicenseAgreements/{id}/relationships/territories

Proposed CLI

Top‑level group: asc eula <subcommand> [flags]

Subcommands:

  • eula get --app APP_ID (get EULA for an app)
  • eula get --id EULA_ID (get EULA by id)
  • eula create --app APP_ID --text ./eula.txt --territory "USA,GBR"
  • eula update --id EULA_ID --text ./eula.txt [--territory ...]
  • eula delete --id EULA_ID --confirm
  • eula territories --id EULA_ID

Flags

Common:

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

Create/update:

  • --text can accept file path or inline text (document behavior)
  • --territory comma‑separated territory codes

Delete:

  • --confirm required

Output

  • JSON (minified) by default
  • Table/markdown for get/list

Acceptance Criteria

  • asc eula --help available
  • Create/update/delete EULA works against live API
  • Can fetch EULA for an app and by id
  • Territory listing works
  • JSON/table/markdown output

Tests

  • CLI validation tests (missing --app/--id, missing --text, missing --confirm)
  • Client tests for create/get/update/delete
  • Output tests for table/markdown

Manual Test Plan (using real apps)

  1. asc apps --paginateAPP_ID
  2. Create:
    • asc eula create --app APP_ID --text ./eula.txt --territory "USA,GBR"
  3. Get for app:
    • asc eula get --app APP_ID
  4. Get by id:
    • asc eula get --id EULA_ID
  5. Update:
    • asc eula update --id EULA_ID --text ./eula-updated.txt
  6. Territories:
    • asc eula territories --id EULA_ID
  7. Delete:
    • asc eula delete --id EULA_ID --confirm

Implementation Notes

  • Add cmd/eula.go and internal/asc/client_eula.go
  • Add output helpers for EULA + territories
  • 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/202 # Overview Add CLI support for managing **End User License Agreements (EULA)** so users can create, update, delete, and inspect custom EULAs and their territories. # Docs (API) - EULA collection: https://sosumi.ai/documentation/appstoreconnectapi/end-user-license-agreements-eula - EndUserLicenseAgreement object: https://sosumi.ai/documentation/appstoreconnectapi/enduserlicenseagreement - Create request: https://sosumi.ai/documentation/appstoreconnectapi/enduserlicenseagreementcreaterequest - Update request: https://sosumi.ai/documentation/appstoreconnectapi/enduserlicenseagreementupdaterequest # Scope (Endpoints) - `GET /v1/apps/{id}/endUserLicenseAgreement` - `GET /v1/endUserLicenseAgreements/{id}` - `POST /v1/endUserLicenseAgreements` - `PATCH /v1/endUserLicenseAgreements/{id}` - `DELETE /v1/endUserLicenseAgreements/{id}` - `GET /v1/endUserLicenseAgreements/{id}/territories` - `GET /v1/endUserLicenseAgreements/{id}/relationships/territories` # Proposed CLI Top‑level group: `asc eula <subcommand> [flags]` Subcommands: - `eula get --app APP_ID` (get EULA for an app) - `eula get --id EULA_ID` (get EULA by id) - `eula create --app APP_ID --text ./eula.txt --territory "USA,GBR"` - `eula update --id EULA_ID --text ./eula.txt [--territory ...]` - `eula delete --id EULA_ID --confirm` - `eula territories --id EULA_ID` # Flags Common: - `--output json|table|markdown` - `--pretty` Create/update: - `--text` can accept file path or inline text (document behavior) - `--territory` comma‑separated territory codes Delete: - `--confirm` required # Output - JSON (minified) by default - Table/markdown for get/list # Acceptance Criteria - [ ] `asc eula --help` available - [ ] Create/update/delete EULA works against live API - [ ] Can fetch EULA for an app and by id - [ ] Territory listing works - [ ] JSON/table/markdown output # Tests - CLI validation tests (missing --app/--id, missing --text, missing --confirm) - Client tests for create/get/update/delete - Output tests for table/markdown # Manual Test Plan (using real apps) 1) `asc apps --paginate` → `APP_ID` 2) Create: - `asc eula create --app APP_ID --text ./eula.txt --territory "USA,GBR"` 3) Get for app: - `asc eula get --app APP_ID` 4) Get by id: - `asc eula get --id EULA_ID` 5) Update: - `asc eula update --id EULA_ID --text ./eula-updated.txt` 6) Territories: - `asc eula territories --id EULA_ID` 7) Delete: - `asc eula delete --id EULA_ID --confirm` # Implementation Notes - Add `cmd/eula.go` and `internal/asc/client_eula.go` - Add output helpers for EULA + territories - Register in `cmd/root.go`
kerem closed this issue 2026-02-26 21:33:07 +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#65
No description provided.