[GH-ISSUE #153] Add Game Center CLI support (achievements, leaderboards, sets) #34

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

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

Overview

Add CLI support for Game Center achievements, leaderboards, leaderboard sets, and their related metadata using the App Store Connect API. This enables full management of Game Center configuration from the CLI with JSON-first output and explicit flags.

Scope

Primary resources from the OpenAPI spec:

  • gameCenterDetails (app linkage, if required to access resources)
  • Achievements: gameCenterAchievements, gameCenterAchievementLocalizations, gameCenterAchievementImages, gameCenterAchievementReleases (and v2 versions if needed)
  • Leaderboards: gameCenterLeaderboards, gameCenterLeaderboardLocalizations, gameCenterLeaderboardImages, gameCenterLeaderboardReleases (and v2 versions if needed)
  • Leaderboard sets: gameCenterLeaderboardSets, gameCenterLeaderboardSetLocalizations, gameCenterLeaderboardSetImages, gameCenterLeaderboardSetMemberLocalizations, gameCenterLeaderboardSetReleases (and v2 versions if needed)

Proposed CLI

Top-level group:

  • asc game-center <subcommand> [flags]

Subcommands (all support list/get/create/update/delete unless noted):

  • game-center achievements
  • game-center achievements localizations
  • game-center achievements images (upload/delete)
  • game-center achievements releases (create/delete)
  • game-center leaderboards
  • game-center leaderboards localizations
  • game-center leaderboards images (upload/delete)
  • game-center leaderboards releases (create/delete)
  • game-center leaderboard-sets
  • game-center leaderboard-sets localizations
  • game-center leaderboard-sets images (upload/delete)
  • game-center leaderboard-sets members (list/add/remove if member localizations are exposed by the API)
  • game-center leaderboard-sets releases (create/delete)

Examples:

  • asc game-center achievements list --app APP_ID
  • asc game-center achievements create --game-center-detail-id DETAIL_ID --reference-name first_win --achievement-id ACH_001 --points 10
  • asc game-center achievements localizations create --achievement-id ACH_ID --locale en-US --display-name "First Win"
  • asc game-center leaderboards create --game-center-detail-id DETAIL_ID --reference-name top_scores --score-format INTEGER --sort-order HIGH_TO_LOW
  • asc game-center leaderboard-sets create --game-center-detail-id DETAIL_ID --reference-name season1

Flag patterns

Common:

  • --app, --output, --pretty, --limit, --next, --paginate
  • --confirm for destructive operations

Resource-specific examples:

  • --reference-name, --achievement-id, --points, --hidden, --repeatable
  • --score-format, --score-range-min, --score-range-max, --sort-order, --score-submission-type
  • --locale, --display-name, --earned-description, --pre-earned-description
  • --image-path (upload), --file (upload where required)

Output

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

Acceptance criteria

  • Commands appear in asc --help and asc game-center --help
  • CRUD works for achievements, leaderboards, leaderboard sets
  • Localizations CRUD works for achievements, leaderboards, leaderboard sets
  • Image upload and delete works where supported
  • Release create/delete works where supported
  • Pagination flags work (--paginate, --next, --limit)
  • Delete requires --confirm
  • JSON-first output matches existing conventions
  • Table and markdown output for list commands

Tests

  • Unit tests for command flag validation and error cases
  • HTTP client tests for list/get/create/update/delete
  • Output tests for table/markdown
  • Upload tests for image resources using existing upload helpers

Implementation notes

  • Add cmd/game_center*.go and internal/asc/client_game_center*.go
  • Add output helpers in internal/asc/output_game_center.go
  • Register command in cmd/root.go
  • Add resource type constants in internal/asc/client_types.go
  • Follow patterns in cmd/apps.go, cmd/beta_groups.go, and output helpers in internal/asc/output_*
Originally created by @rudrankriyam on GitHub (Jan 25, 2026). Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/153 # Overview Add CLI support for Game Center achievements, leaderboards, leaderboard sets, and their related metadata using the App Store Connect API. This enables full management of Game Center configuration from the CLI with JSON-first output and explicit flags. # Scope Primary resources from the OpenAPI spec: - `gameCenterDetails` (app linkage, if required to access resources) - Achievements: `gameCenterAchievements`, `gameCenterAchievementLocalizations`, `gameCenterAchievementImages`, `gameCenterAchievementReleases` (and v2 versions if needed) - Leaderboards: `gameCenterLeaderboards`, `gameCenterLeaderboardLocalizations`, `gameCenterLeaderboardImages`, `gameCenterLeaderboardReleases` (and v2 versions if needed) - Leaderboard sets: `gameCenterLeaderboardSets`, `gameCenterLeaderboardSetLocalizations`, `gameCenterLeaderboardSetImages`, `gameCenterLeaderboardSetMemberLocalizations`, `gameCenterLeaderboardSetReleases` (and v2 versions if needed) # Proposed CLI Top-level group: - `asc game-center <subcommand> [flags]` Subcommands (all support list/get/create/update/delete unless noted): - `game-center achievements` - `game-center achievements localizations` - `game-center achievements images` (upload/delete) - `game-center achievements releases` (create/delete) - `game-center leaderboards` - `game-center leaderboards localizations` - `game-center leaderboards images` (upload/delete) - `game-center leaderboards releases` (create/delete) - `game-center leaderboard-sets` - `game-center leaderboard-sets localizations` - `game-center leaderboard-sets images` (upload/delete) - `game-center leaderboard-sets members` (list/add/remove if member localizations are exposed by the API) - `game-center leaderboard-sets releases` (create/delete) Examples: - `asc game-center achievements list --app APP_ID` - `asc game-center achievements create --game-center-detail-id DETAIL_ID --reference-name first_win --achievement-id ACH_001 --points 10` - `asc game-center achievements localizations create --achievement-id ACH_ID --locale en-US --display-name "First Win"` - `asc game-center leaderboards create --game-center-detail-id DETAIL_ID --reference-name top_scores --score-format INTEGER --sort-order HIGH_TO_LOW` - `asc game-center leaderboard-sets create --game-center-detail-id DETAIL_ID --reference-name season1` # Flag patterns Common: - `--app`, `--output`, `--pretty`, `--limit`, `--next`, `--paginate` - `--confirm` for destructive operations Resource-specific examples: - `--reference-name`, `--achievement-id`, `--points`, `--hidden`, `--repeatable` - `--score-format`, `--score-range-min`, `--score-range-max`, `--sort-order`, `--score-submission-type` - `--locale`, `--display-name`, `--earned-description`, `--pre-earned-description` - `--image-path` (upload), `--file` (upload where required) # Output - JSON minified by default - `--pretty` for JSON - `--output table/markdown` for list commands # Acceptance criteria - [ ] Commands appear in `asc --help` and `asc game-center --help` - [ ] CRUD works for achievements, leaderboards, leaderboard sets - [ ] Localizations CRUD works for achievements, leaderboards, leaderboard sets - [ ] Image upload and delete works where supported - [ ] Release create/delete works where supported - [ ] Pagination flags work (`--paginate`, `--next`, `--limit`) - [ ] Delete requires `--confirm` - [ ] JSON-first output matches existing conventions - [ ] Table and markdown output for list commands # Tests - Unit tests for command flag validation and error cases - HTTP client tests for list/get/create/update/delete - Output tests for table/markdown - Upload tests for image resources using existing upload helpers # Implementation notes - Add `cmd/game_center*.go` and `internal/asc/client_game_center*.go` - Add output helpers in `internal/asc/output_game_center.go` - Register command in `cmd/root.go` - Add resource type constants in `internal/asc/client_types.go` - Follow patterns in `cmd/apps.go`, `cmd/beta_groups.go`, and output helpers in `internal/asc/output_*`
kerem closed this issue 2026-02-26 21:32:55 +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#34
No description provided.