mirror of
https://github.com/rudrankriyam/App-Store-Connect-CLI.git
synced 2026-04-25 23:55:51 +03:00
[GH-ISSUE #469] Parity: Game Center mutating endpoints (app versions, details, member localizations) #133
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#133
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 (Feb 10, 2026).
Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/469
Overview
Fill remaining Game Center write-path parity gaps for app versions, details, and leaderboard set member localizations.
This is the residual mutating scope after the existing Game Center read/list parity work.
Scope (OpenAPI resources)
POST /v1/gameCenterAppVersionsPATCH /v1/gameCenterAppVersions/{id}POST /v1/gameCenterDetailsPATCH /v1/gameCenterDetails/{id}POST /v1/gameCenterLeaderboardSetMemberLocalizationsPATCH /v1/gameCenterLeaderboardSetMemberLocalizations/{id}DELETE /v1/gameCenterLeaderboardSetMemberLocalizations/{id}Current state
Current CLI coverage in these areas is read-heavy:
Create/update/delete flows above are still missing.
Proposed CLI
App versions
asc game-center app-versions create ...asc game-center app-versions update --id "GC_APP_VERSION_ID" ...Game Center details
asc game-center details create ...asc game-center details update --id "DETAIL_ID" ...Leaderboard set member localizations
asc game-center leaderboard-sets member-localizations create ...asc game-center leaderboard-sets member-localizations update --id "LOCALIZATION_ID" ...asc game-center leaderboard-sets member-localizations delete --id "LOCALIZATION_ID" --confirmExamples (final flags should match required OpenAPI attributes/relationships):
asc game-center app-versions create --app-store-version-id "APP_STORE_VERSION_ID"asc game-center app-versions update --id "GC_APP_VERSION_ID" --enabled trueasc game-center details create --game-center-group-id "GROUP_ID"asc game-center details update --id "DETAIL_ID" --challenge-enabled trueasc game-center leaderboard-sets member-localizations create --leaderboard-set-id "SET_ID" --leaderboard-id "LEADERBOARD_ID" --locale "en-US" --name "Top Score"asc game-center leaderboard-sets member-localizations delete --id "LOCALIZATION_ID" --confirmFlag patterns
Common:
--id, relationship IDs, update attributes,--confirm(delete),--output,--prettyValidation rules:
--confirmDetailed TODO
internal/ascGame Center types.internal/asc/client_game_center_app_versions.go(create/update)internal/asc/client_game_center_details.go(create/update)internal/asc/client_game_center_leaderboard_set_member_localizations.go(create/update/delete)internal/cli/gamecenter/game_center_app_versions.gointernal/cli/gamecenter/game_center_details.gointernal/cli/gamecenter/game_center_leaderboard_sets.goAcceptance criteria
--confirmrequired for delete.make format,make lint, andmake testpass.Tests
json+ optionaltable/markdownwhere applicable).Implementation notes
References
docs/openapi/paths.txtdocs/openapi/latest.jsoninternal/asc/client_game_center_app_versions.gointernal/asc/client_game_center_details.gointernal/asc/client_game_center_leaderboard_set_member_localizations.gointernal/cli/gamecenter/@rudrankriyam commented on GitHub (Feb 10, 2026):
@cursor Please implement this issue end-to-end.
What to build
Implement the remaining Game Center mutating endpoints below.
Endpoints to add
POST /v1/gameCenterAppVersionsPATCH /v1/gameCenterAppVersions/{id}POST /v1/gameCenterDetailsPATCH /v1/gameCenterDetails/{id}POST /v1/gameCenterLeaderboardSetMemberLocalizationsPATCH /v1/gameCenterLeaderboardSetMemberLocalizations/{id}DELETE /v1/gameCenterLeaderboardSetMemberLocalizations/{id}Implementation plan
internal/asc)internal/asc/client_game_center_app_versions.goCreateGameCenterAppVersionUpdateGameCenterAppVersioninternal/asc/client_game_center_details.goCreateGameCenterDetailUpdateGameCenterDetailinternal/asc/client_game_center_leaderboard_set_member_localizations.goCreateGameCenterLeaderboardSetMemberLocalizationUpdateGameCenterLeaderboardSetMemberLocalizationDeleteGameCenterLeaderboardSetMemberLocalizationinternal/cli/gamecenter)game-center app-versionsgame-center detailsgame-center leaderboard-sets member-localizationsdeletemust require--confirm.shared.ContextWithTimeoutand existing output conventions.New tests to write
A) Client HTTP tests (
internal/asc/client_http_test.goand/or gamecenter-specific HTTP tests)Add one test per endpoint (7 total), each asserting method + path + payload:
TestCreateGameCenterAppVersionTestUpdateGameCenterAppVersionTestCreateGameCenterDetailTestUpdateGameCenterDetailTestCreateGameCenterLeaderboardSetMemberLocalizationTestUpdateGameCenterLeaderboardSetMemberLocalizationTestDeleteGameCenterLeaderboardSetMemberLocalizationB) CLI cmdtests (new files)
internal/cli/cmdtest/game_center_app_versions_mutations_test.gointernal/cli/cmdtest/game_center_details_mutations_test.gointernal/cli/cmdtest/game_center_member_localizations_mutations_test.go--confirm--confirm-> usage errorHow to test locally
Run exactly:
make formatmake lintmake testTargeted tests:
go test ./internal/asc -run 'GameCenter.*(Create|Update|Delete)'go test ./internal/cli/cmdtest -run 'game_center_.*mutations'Done criteria
format,lint,test).@cursor[bot] commented on GitHub (Feb 10, 2026):
All work is complete. Here's a summary of what was implemented:
Types (
internal/asc)GameCenterAppVersion,GameCenterDetail, andGameCenterLeaderboardSetMemberLocalizationwith proper attributes, relationships, and resource type wiringClient methods (7 endpoints)
CreateGameCenterAppVersion- POST/v1/gameCenterAppVersionswithappStoreVersionrelationshipUpdateGameCenterAppVersion- PATCH/v1/gameCenterAppVersions/{id}with sparseenabledattributeCreateGameCenterDetail- POST/v1/gameCenterDetailswithapprelationshipUpdateGameCenterDetail- PATCH/v1/gameCenterDetails/{id}with optional attributes and relationships (gameCenterGroup,defaultLeaderboard)CreateGameCenterLeaderboardSetMemberLocalization- POST withgameCenterLeaderboardSet+gameCenterLeaderboardrelationshipsUpdateGameCenterLeaderboardSetMemberLocalization- PATCH with sparsenameattributeDeleteGameCenterLeaderboardSetMemberLocalization- DELETE (returns error only)CLI commands
asc game-center app-versions create --app-store-version-id ...asc game-center app-versions update --id ... --enabled true/falseasc game-center details create --app ...asc game-center details update --id ... --challenge-enabled/--game-center-group-id/--default-leaderboard-idasc game-center leaderboard-sets member-localizations create --leaderboard-set-id ... --leaderboard-id ... --locale ... --name ...asc game-center leaderboard-sets member-localizations update --id ... --name ...asc game-center leaderboard-sets member-localizations delete --id ... --confirmTests
--confirmenforcement for deletemake format,make lint, andmake testall pass@rudrankriyam commented on GitHub (Feb 10, 2026):
Implemented and merged in #474.
Game Center mutation parity is now covered (app versions, details, member localizations), including audit hardening and test coverage.
Closing as complete.