mirror of
https://github.com/rudrankriyam/App-Store-Connect-CLI.git
synced 2026-04-25 15:45:48 +03:00
[GH-ISSUE #72] Add App Store assets (screenshots + previews) upload support #18
Labels
No labels
bug
bug
documentation
enhancement
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/App-Store-Connect-CLI#18
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @rudrankriyam on GitHub (Jan 24, 2026).
Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/72
Summary
Add App Store metadata assets management (screenshots + app previews). ASC already handles text localizations, but does not support asset upload/manage.
Current State (verified)
Repo contains
localizationsfor text fields only. NoappScreenshot*orappPreview*commands or client support.API Endpoints (App Store Connect OpenAPI)
Screenshot / Preview Sets and Assets
POST /v1/appScreenshotSetsGET|DELETE /v1/appScreenshotSets/{id}GET /v1/appScreenshotSets/{id}/appScreenshotsGET|PATCH /v1/appScreenshotSets/{id}/relationships/appScreenshotsPOST /v1/appScreenshotsGET|PATCH|DELETE /v1/appScreenshots/{id}POST /v1/appPreviewSetsGET|DELETE /v1/appPreviewSets/{id}GET /v1/appPreviewSets/{id}/appPreviewsGET|PATCH /v1/appPreviewSets/{id}/relationships/appPreviewsPOST /v1/appPreviewsGET|PATCH|DELETE /v1/appPreviews/{id}Linking from version localizations
GET /v1/appStoreVersionLocalizations/{id}/appScreenshotSetsGET /v1/appStoreVersionLocalizations/{id}/appPreviewSetsProposed CLI
Implementation Notes
Implementation Plan
internal/asc/assets.gocmd/assets.goassetscommand group withscreenshots+previewssubcommands.Acceptance Criteria
@rudrankriyam commented on GitHub (Jan 24, 2026):
@cursor
Implementation Guide
Codebase Context
This feature involves multi-step upload flows. See
cmd/builds.goandinternal/asc/client_builds.gofor the existing build upload pattern with upload operations.File Structure
1.
internal/asc/assets.go(~250-300 lines)2.
internal/asc/client_assets.go(~200-250 lines)3.
internal/asc/assets_upload.go(~150-200 lines)4.
internal/asc/assets_output.go(~100-150 lines)5.
cmd/assets.go(~350-400 lines)6. Register in
cmd/commands.goAdd
AssetsCommand()to RootCommand().SubcommandsUpload Flow (multi-step)
API Endpoints Reference
Safety Requirements
os.Lstatto check files before reading (prevent symlink attacks)cmd/secure_open_unix.goTesting
make test && make lint@cursor[bot] commented on GitHub (Jan 24, 2026):
Summary:
asc assetsCLI with list/upload/delete flows, safe file handling, checksuming, uploads, and delivery-state polling.Tests:
make testmake lintNotes:
ValidateImageFile; preview uploads infer MIME type from the file extension (e.g.,.mov,.mp4).