[PR #275] [MERGED] Add Game Center CLI support (achievements, leaderboards, sets) #402

Closed
opened 2026-02-26 22:30:46 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/275
Author: @goktugbasaran
Created: 1/28/2026
Status: Merged
Merged: 1/28/2026
Merged by: @rudrankriyam

Base: mainHead: pr-153-game-center


📝 Commits (3)

  • 1c9d841 Add Game Center CLI support (achievements, leaderboards, sets)
  • 8014e04 Refactor: Split game_center.go into smaller files
  • 38c718b Refactor: Split Game Center types and tests into smaller files

📊 Changes

23 files changed (+8907 additions, -77 deletions)

View changed files

cmd/game_center.go (+85 -0)
cmd/game_center_achievements.go (+1143 -0)
cmd/game_center_achievements_test.go (+335 -0)
cmd/game_center_leaderboard_localizations.go (+365 -0)
cmd/game_center_leaderboard_set_images.go (+142 -0)
cmd/game_center_leaderboard_set_members.go (+180 -0)
cmd/game_center_leaderboard_sets.go (+896 -0)
cmd/game_center_leaderboard_sets_test.go (+130 -0)
cmd/game_center_leaderboards.go (+754 -0)
cmd/game_center_leaderboards_test.go (+193 -0)
📝 cmd/root.go (+1 -0)
internal/asc/client_game_center.go (+1478 -0)
📝 internal/asc/client_http_test.go (+448 -0)
📝 internal/asc/client_types.go (+90 -77)
internal/asc/game_center.go (+40 -0)
internal/asc/game_center_achievement_releases_test.go (+260 -0)
internal/asc/game_center_achievements.go (+337 -0)
internal/asc/game_center_leaderboard_localizations_test.go (+304 -0)
internal/asc/game_center_leaderboard_sets.go (+361 -0)
internal/asc/game_center_leaderboard_sets_test.go (+311 -0)

...and 3 more files

📄 Description

Summary

  • Add game-center command group with achievements, leaderboards, and leaderboard-sets subcommands
  • Add full CRUD operations for achievements, leaderboards, and leaderboard sets
  • Add localizations support for all Game Center resources
  • Add image upload/delete support for achievements, leaderboards, and leaderboard sets
  • Add releases create/delete for achievements, leaderboards, and leaderboard sets
  • Add leaderboard set member management (list/set leaderboards in sets)
  • Add HTTP client methods, types, and query builders in internal/asc/
  • Add table/markdown output formatters
  • Add unit tests for flag validation and HTTP client methods

Fixes #153

Test plan

  • make test - all tests pass
  • make build - builds successfully
  • make lint - no lint errors
  • ./asc game-center --help - shows subcommands
  • ./asc game-center achievements --help - shows full command tree
  • ./asc game-center leaderboards --help - shows full command tree
  • ./asc game-center leaderboard-sets --help - shows full command tree

Integration Test Results

33/35 tests passed, 2 skipped, 0 failed

Resource CRUD Localizations Releases Images
Achievements ⚠️
Leaderboards ⚠️
Leaderboard Sets ⚠️

Operations Verified

  • Create, Get, Update, List, Delete for all resources
  • Localizations CRUD for achievements, leaderboards, and leaderboard sets
  • Image uploads (1024x1024 PNG) for all resource types
  • Leaderboard set members list
  • Releases list for all resource types

Skipped Tests (API Limitations)

Release Creation: Creating releases for achievements, leaderboards, and leaderboard sets requires the app to have an editable App Store version with Game Center enabled. This is a prerequisite enforced by the App Store Connect API—the CLI correctly sends the request, but the API rejects it when no eligible app version exists. The releases list command works correctly.

Leaderboard Set Members Set: The members set command to replace leaderboards in a set requires the leaderboards to already be associated with the same Game Center detail and meet specific membership prerequisites. This is an API-level constraint, not a CLI limitation. The members list command works correctly.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/275 **Author:** [@goktugbasaran](https://github.com/goktugbasaran) **Created:** 1/28/2026 **Status:** ✅ Merged **Merged:** 1/28/2026 **Merged by:** [@rudrankriyam](https://github.com/rudrankriyam) **Base:** `main` ← **Head:** `pr-153-game-center` --- ### 📝 Commits (3) - [`1c9d841`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/1c9d841460e41b93ec1a048eabeaca092833fbe5) Add Game Center CLI support (achievements, leaderboards, sets) - [`8014e04`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/8014e047faa3284b0ab49a837f4bad36aef54b2f) Refactor: Split game_center.go into smaller files - [`38c718b`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/38c718b72ec41ad4ffe80d8f89528db323f5be79) Refactor: Split Game Center types and tests into smaller files ### 📊 Changes **23 files changed** (+8907 additions, -77 deletions) <details> <summary>View changed files</summary> ➕ `cmd/game_center.go` (+85 -0) ➕ `cmd/game_center_achievements.go` (+1143 -0) ➕ `cmd/game_center_achievements_test.go` (+335 -0) ➕ `cmd/game_center_leaderboard_localizations.go` (+365 -0) ➕ `cmd/game_center_leaderboard_set_images.go` (+142 -0) ➕ `cmd/game_center_leaderboard_set_members.go` (+180 -0) ➕ `cmd/game_center_leaderboard_sets.go` (+896 -0) ➕ `cmd/game_center_leaderboard_sets_test.go` (+130 -0) ➕ `cmd/game_center_leaderboards.go` (+754 -0) ➕ `cmd/game_center_leaderboards_test.go` (+193 -0) 📝 `cmd/root.go` (+1 -0) ➕ `internal/asc/client_game_center.go` (+1478 -0) 📝 `internal/asc/client_http_test.go` (+448 -0) 📝 `internal/asc/client_types.go` (+90 -77) ➕ `internal/asc/game_center.go` (+40 -0) ➕ `internal/asc/game_center_achievement_releases_test.go` (+260 -0) ➕ `internal/asc/game_center_achievements.go` (+337 -0) ➕ `internal/asc/game_center_leaderboard_localizations_test.go` (+304 -0) ➕ `internal/asc/game_center_leaderboard_sets.go` (+361 -0) ➕ `internal/asc/game_center_leaderboard_sets_test.go` (+311 -0) _...and 3 more files_ </details> ### 📄 Description ## Summary - Add `game-center` command group with achievements, leaderboards, and leaderboard-sets subcommands - Add full CRUD operations for achievements, leaderboards, and leaderboard sets - Add localizations support for all Game Center resources - Add image upload/delete support for achievements, leaderboards, and leaderboard sets - Add releases create/delete for achievements, leaderboards, and leaderboard sets - Add leaderboard set member management (list/set leaderboards in sets) - Add HTTP client methods, types, and query builders in `internal/asc/` - Add table/markdown output formatters - Add unit tests for flag validation and HTTP client methods Fixes #153 ## Test plan - [x] `make test` - all tests pass - [x] `make build` - builds successfully - [x] `make lint` - no lint errors - [x] `./asc game-center --help` - shows subcommands - [x] `./asc game-center achievements --help` - shows full command tree - [x] `./asc game-center leaderboards --help` - shows full command tree - [x] `./asc game-center leaderboard-sets --help` - shows full command tree ## Integration Test Results **33/35 tests passed, 2 skipped, 0 failed** | Resource | CRUD | Localizations | Releases | Images | |----------|------|---------------|----------|--------| | Achievements | ✅ | ✅ | ⚠️ | ✅ | | Leaderboards | ✅ | ✅ | ⚠️ | ✅ | | Leaderboard Sets | ✅ | ✅ | ⚠️ | ✅ | ### Operations Verified - **Create, Get, Update, List, Delete** for all resources - **Localizations** CRUD for achievements, leaderboards, and leaderboard sets - **Image uploads** (1024x1024 PNG) for all resource types - **Leaderboard set members** list - **Releases** list for all resource types ### Skipped Tests (API Limitations) **Release Creation**: Creating releases for achievements, leaderboards, and leaderboard sets requires the app to have an editable App Store version with Game Center enabled. This is a prerequisite enforced by the App Store Connect API—the CLI correctly sends the request, but the API rejects it when no eligible app version exists. The `releases list` command works correctly. **Leaderboard Set Members Set**: The `members set` command to replace leaderboards in a set requires the leaderboards to already be associated with the same Game Center detail and meet specific membership prerequisites. This is an API-level constraint, not a CLI limitation. The `members list` command works correctly. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-26 22:30:46 +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#402
No description provided.