[GH-ISSUE #152] Implement direct app-info metadata management commands #36

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

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

Originally assigned to: @rudrankriyam on GitHub.

Summary

Currently, the CLI only supports app metadata (keywords, description, support URL, etc.) through .strings files via the localizations command. Users cannot directly set or view metadata using simple flags, which creates friction for common automation workflows.

Current State

The CLI has types defined in internal/asc/client_types.go for:

  • AppStoreVersionLocalizationAttributes - includes keywords, description, supportUrl, marketingUrl, promotionalText, whatsNew
  • AppInfoLocalizationAttributes - includes name, subtitle, privacyPolicyUrl, privacyChoicesUrl, privacyPolicyText

And there's a localizations download/upload command that works with .strings files. However, there's no direct way to:

  1. View current app metadata with a simple command
  2. Set metadata using flags instead of .strings files

Desired Feature

New Commands

# View current metadata for an app
asc app-info get --app "com.example.app" [--output json|table|markdown]

# Set metadata using flags
asc app-info set --app "com.example.app" \
  --keywords "foo,bar" \
  --description "My app description" \
  --support-url "https://support.example.com" \
  --marketing-url "https://marketing.example.com" \
  --promotional-text "Check out our new features!" \
  --whats-new "Fixed bugs and improved performance"

# Download metadata as JSON
asc app-info download --app "com.example.app" --output ./metadata

# Upload metadata from JSON
asc app-info upload --app "com.example.app" --file ./metadata.json

Key Benefits

  1. Simplified CI/CD workflows - No need to generate .strings files just to update metadata
  2. Direct flag access - Easier scripting and automation
  3. Faster iteration - Skip the file-based workflow for quick updates
  4. Better discoverability - Users can see all metadata options via --help
  5. Consistency - Aligns with other commands that use flags (e.g., reviews respond)

Implementation Notes

The API endpoints already exist:

  • GET /v1/apps/{id}/appStoreVersions/{versionId}/appStoreVersionLocalizations
  • POST /v1/appStoreVersionLocalizations
  • PATCH /v1/appStoreVersionLocalizations/{id}

The types are already defined in internal/asc/client_types.go. The main work is:

  1. Creating the CLI command structure in cmd/app_info.go
  2. Adding client methods if needed
  3. Output formatting for table/markdown views
  • localizations download/upload - Works with .strings files
  • versions - Shows version info but not metadata content
  • reviews - Has direct flag-based responses (reviews respond --body)

Priority

Medium - This is a common automation need that improves DX but doesn't unlock new functionality.

Originally created by @rudrankriyam on GitHub (Jan 25, 2026). Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/152 Originally assigned to: @rudrankriyam on GitHub. ## Summary Currently, the CLI only supports app metadata (keywords, description, support URL, etc.) through `.strings` files via the `localizations` command. Users cannot directly set or view metadata using simple flags, which creates friction for common automation workflows. ## Current State The CLI has types defined in `internal/asc/client_types.go` for: - `AppStoreVersionLocalizationAttributes` - includes `keywords`, `description`, `supportUrl`, `marketingUrl`, `promotionalText`, `whatsNew` - `AppInfoLocalizationAttributes` - includes `name`, `subtitle`, `privacyPolicyUrl`, `privacyChoicesUrl`, `privacyPolicyText` And there's a `localizations download/upload` command that works with `.strings` files. However, there's no direct way to: 1. View current app metadata with a simple command 2. Set metadata using flags instead of `.strings` files ## Desired Feature ### New Commands ```bash # View current metadata for an app asc app-info get --app "com.example.app" [--output json|table|markdown] # Set metadata using flags asc app-info set --app "com.example.app" \ --keywords "foo,bar" \ --description "My app description" \ --support-url "https://support.example.com" \ --marketing-url "https://marketing.example.com" \ --promotional-text "Check out our new features!" \ --whats-new "Fixed bugs and improved performance" # Download metadata as JSON asc app-info download --app "com.example.app" --output ./metadata # Upload metadata from JSON asc app-info upload --app "com.example.app" --file ./metadata.json ``` ### Key Benefits 1. **Simplified CI/CD workflows** - No need to generate `.strings` files just to update metadata 2. **Direct flag access** - Easier scripting and automation 3. **Faster iteration** - Skip the file-based workflow for quick updates 4. **Better discoverability** - Users can see all metadata options via `--help` 5. **Consistency** - Aligns with other commands that use flags (e.g., `reviews respond`) ### Implementation Notes The API endpoints already exist: - `GET /v1/apps/{id}/appStoreVersions/{versionId}/appStoreVersionLocalizations` - `POST /v1/appStoreVersionLocalizations` - `PATCH /v1/appStoreVersionLocalizations/{id}` The types are already defined in `internal/asc/client_types.go`. The main work is: 1. Creating the CLI command structure in `cmd/app_info.go` 2. Adding client methods if needed 3. Output formatting for table/markdown views ### Related Commands - `localizations download/upload` - Works with `.strings` files - `versions` - Shows version info but not metadata content - `reviews` - Has direct flag-based responses (`reviews respond --body`) ### Priority Medium - This is a common automation need that improves DX but doesn't unlock new functionality.
kerem 2026-02-26 21:32:54 +03:00
Author
Owner

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

Resolved by #183 (app-info metadata commands).

<!-- gh-comment-id:3800451868 --> @rudrankriyam commented on GitHub (Jan 26, 2026): Resolved by #183 (app-info metadata commands).
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#36
No description provided.