[GH-ISSUE #321] Parity: Product Pages search keywords and media sets #92

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

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

Overview

Add missing Product Pages endpoints around localization search keywords and media sets (preview/screenshot sets) to align with OpenAPI.

Scope (OpenAPI resources)

  • appCustomProductPageLocalizations search keywords relationships
  • appCustomProductPageLocalizations preview sets + screenshot sets

Proposed CLI

Top-level group:

  • asc product-pages ...

New/expanded subcommands:

  • product-pages custom-pages localizations search-keywords list|add|delete --localization-id ID
  • product-pages custom-pages localizations preview-sets list --localization-id ID
  • product-pages custom-pages localizations screenshot-sets list --localization-id ID

Examples:

  • asc product-pages custom-pages localizations search-keywords list --localization-id LOC_ID
  • asc product-pages custom-pages localizations search-keywords add --localization-id LOC_ID --keywords "kw1,kw2"
  • asc product-pages custom-pages localizations preview-sets list --localization-id LOC_ID

Flag patterns

Common:

  • --localization-id, --output, --pretty, --confirm

Resource-specific:

  • --keywords (comma-separated)

Output

  • JSON minified by default
  • --pretty for JSON
  • --output table/markdown for list commands

Detailed TODO

  • Add client methods for localization search keywords endpoints
  • Add client methods for preview/screenshot set endpoints
  • Implement CLI search-keywords commands
  • Implement CLI preview/screenshot set list commands
  • Add cmdtests + HTTP client tests (mocked)

Acceptance criteria

  • Search keywords list/add/delete work for localizations
  • Preview/screenshot sets list works via localization ID
  • JSON-first output preserved

Tests

  • Flag validation tests
  • HTTP client tests for new endpoints
  • Output tests for list commands

Implementation notes

  • Add client methods in internal/asc/client_product_pages.go
  • Add CLI commands in internal/cli/productpages
  • Follow patterns from existing product pages localizations commands
Originally created by @rudrankriyam on GitHub (Jan 30, 2026). Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/321 # Overview Add missing Product Pages endpoints around localization search keywords and media sets (preview/screenshot sets) to align with OpenAPI. # Scope (OpenAPI resources) - `appCustomProductPageLocalizations` search keywords relationships - `appCustomProductPageLocalizations` preview sets + screenshot sets # Proposed CLI Top-level group: - `asc product-pages ...` New/expanded subcommands: - `product-pages custom-pages localizations search-keywords list|add|delete --localization-id ID` - `product-pages custom-pages localizations preview-sets list --localization-id ID` - `product-pages custom-pages localizations screenshot-sets list --localization-id ID` Examples: - `asc product-pages custom-pages localizations search-keywords list --localization-id LOC_ID` - `asc product-pages custom-pages localizations search-keywords add --localization-id LOC_ID --keywords "kw1,kw2"` - `asc product-pages custom-pages localizations preview-sets list --localization-id LOC_ID` # Flag patterns Common: - `--localization-id`, `--output`, `--pretty`, `--confirm` Resource-specific: - `--keywords` (comma-separated) # Output - JSON minified by default - `--pretty` for JSON - `--output table/markdown` for list commands # Detailed TODO - [ ] Add client methods for localization search keywords endpoints - [ ] Add client methods for preview/screenshot set endpoints - [ ] Implement CLI `search-keywords` commands - [ ] Implement CLI preview/screenshot set list commands - [ ] Add cmdtests + HTTP client tests (mocked) # Acceptance criteria - [ ] Search keywords list/add/delete work for localizations - [ ] Preview/screenshot sets list works via localization ID - [ ] JSON-first output preserved # Tests - Flag validation tests - HTTP client tests for new endpoints - Output tests for list commands # Implementation notes - Add client methods in `internal/asc/client_product_pages.go` - Add CLI commands in `internal/cli/productpages` - Follow patterns from existing product pages localizations commands
kerem closed this issue 2026-02-26 21:33:19 +03:00
Author
Owner

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

@cursor Please implement per issue description. No live credentials; use mocked tests. Run make build/lint/test and open a PR when green. Keep JSON-first output and explicit flags; no interactive prompts.

<!-- gh-comment-id:3822603159 --> @rudrankriyam commented on GitHub (Jan 30, 2026): @cursor Please implement per issue description. No live credentials; use mocked tests. Run make build/lint/test and open a PR when green. Keep JSON-first output and explicit flags; no interactive prompts.
Author
Owner

@cursor[bot] commented on GitHub (Jan 30, 2026):

Summary:

  • I added ASC client support for custom product page localization search keywords plus preview/screenshot set fetches, along with appKeywords output formatting to keep JSON-first output consistent.
  • I implemented the new CLI subcommands under asc product-pages custom-pages localizations for search-keywords list|add|delete and preview-sets/screenshot-sets list, with explicit flags and no prompts.
  • I added mocked client tests, CLI flag-validation tests, and table/markdown output tests covering keywords and media set listings.

Tests (all passed):

  • make build
  • make lint
  • make test
  • go test ./internal/asc -run AppCustomProductPageLocalizationSearchKeywords
  • go test ./internal/cli/cmdtest -run SearchKeywords
    Walkthrough video: product_pages_search_keywords_tests/recording_demo.mp4 (shows the two targeted go test runs passing).

PR note: I pushed commits to cursor/product-pages-keywords-media-sets-0c04, but PR creation is handled by this environment, so I didn’t open one directly. If you want the direct PR URL, the push output suggested: https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/new/cursor/product-pages-keywords-media-sets-0c04

View PR
Open in Cursor Open in Web

<!-- gh-comment-id:3822603525 --> @cursor[bot] commented on GitHub (Jan 30, 2026): Summary: - I added ASC client support for custom product page localization search keywords plus preview/screenshot set fetches, along with appKeywords output formatting to keep JSON-first output consistent. - I implemented the new CLI subcommands under `asc product-pages custom-pages localizations` for `search-keywords list|add|delete` and `preview-sets/screenshot-sets list`, with explicit flags and no prompts. - I added mocked client tests, CLI flag-validation tests, and table/markdown output tests covering keywords and media set listings. Tests (all passed): - `make build` - `make lint` - `make test` - `go test ./internal/asc -run AppCustomProductPageLocalizationSearchKeywords` - `go test ./internal/cli/cmdtest -run SearchKeywords` Walkthrough video: `product_pages_search_keywords_tests/recording_demo.mp4` (shows the two targeted go test runs passing). PR note: I pushed commits to `cursor/product-pages-keywords-media-sets-0c04`, but PR creation is handled by this environment, so I didn’t open one directly. If you want the direct PR URL, the push output suggested: https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/new/cursor/product-pages-keywords-media-sets-0c04 <a href="https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/337"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/view-pr-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/view-pr-light.png"><img alt="View PR" width="86" height="28" src="https://cursor.com/assets/images/view-pr-light.png"></picture></a> <a href="https://cursor.com/background-agent?bcId=bc-84b83895-06e3-4857-a8e2-922777ef6345"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-cursor-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-cursor-light.png"><img alt="Open in Cursor" width="131" height="28" src="https://cursor.com/assets/images/open-in-cursor-dark.png"></picture></a>&nbsp;<a href="https://cursor.com/agents?id=bc-84b83895-06e3-4857-a8e2-922777ef6345"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/assets/images/open-in-web-dark.png"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/assets/images/open-in-web-light.png"><img alt="Open in Web" width="114" height="28" src="https://cursor.com/assets/images/open-in-web-dark.png"></picture></a>
Author
Owner

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

Fixed by #337 and pagination/test updates in #341. Included in release 0.20.2.

<!-- gh-comment-id:3825187991 --> @rudrankriyam commented on GitHub (Jan 30, 2026): Fixed by #337 and pagination/test updates in #341. Included in release 0.20.2.
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#92
No description provided.