[GH-ISSUE #623] coverage: Add remaining missing relationship endpoints (misc) (OpenAPI) #179

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

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

Context

These endpoints exist in the offline OpenAPI snapshot (docs/openapi/latest.json, indexed by docs/openapi/paths.txt) but are currently missing from internal/asc client coverage.

Goal

Add ASC client methods for the endpoints below (method + path).

Missing endpoints

  • GET /v1/alternativeDistributionPackageVersions/{id}/relationships/deltas
  • GET /v1/alternativeDistributionPackageVersions/{id}/relationships/variants
  • GET /v1/analyticsReportRequests/{id}/relationships/reports
  • GET /v1/appCategories/{id}/relationships/parent
  • GET /v1/appCategories/{id}/relationships/subcategories
  • GET /v1/appEncryptionDeclarations/{id}/relationships/app
  • GET /v1/appEncryptionDeclarations/{id}/relationships/appEncryptionDeclarationDocument
  • GET /v1/bundleIds/{id}/relationships/app
  • GET /v1/bundleIds/{id}/relationships/bundleIdCapabilities
  • GET /v1/bundleIds/{id}/relationships/profiles
  • GET /v1/customerReviews/{id}/relationships/response
  • GET /v1/endUserLicenseAgreements/{id}/relationships/territories
  • GET /v1/gameCenterLeaderboardSetLocalizations/{id}/relationships/gameCenterLeaderboardSetImage
  • GET /v1/userInvitations/{id}/relationships/visibleApps
  • GET /v2/appAvailabilities/{id}/relationships/territoryAvailabilities
  • GET /v2/gameCenterAchievementLocalizations/{id}/relationships/image
  • GET /v2/gameCenterAchievementVersions/{id}/relationships/localizations
  • GET /v2/gameCenterLeaderboardLocalizations/{id}/relationships/image
  • GET /v2/gameCenterLeaderboardSetLocalizations/{id}/relationships/image
  • GET /v2/gameCenterLeaderboardSetVersions/{id}/relationships/localizations
  • GET /v2/gameCenterLeaderboardVersions/{id}/relationships/localizations

Where/what to add

  • Implement in the appropriate internal/asc/ client files based on resource (bundle IDs, analytics, categories, etc.).
  • Prefer small, focused client methods + request-shaping tests per resource.

Test plan

  • Add request-shaping tests using newTestClient (assert method + path + query).
  • For mutation endpoints (POST/PATCH/DELETE), assert request method + path and (when applicable) JSON relationship payload shape.

Acceptance criteria

  • All endpoints listed are implemented in internal/asc with tests.
  • ASC_BYPASS_KEYCHAIN=1 make test passes.
Originally created by @rudrankriyam on GitHub (Feb 18, 2026). Original GitHub issue: https://github.com/rudrankriyam/App-Store-Connect-CLI/issues/623 ## Context These endpoints exist in the offline OpenAPI snapshot (`docs/openapi/latest.json`, indexed by `docs/openapi/paths.txt`) but are currently missing from `internal/asc` client coverage. ## Goal Add ASC client methods for the endpoints below (method + path). ## Missing endpoints - [ ] GET /v1/alternativeDistributionPackageVersions/{id}/relationships/deltas - [ ] GET /v1/alternativeDistributionPackageVersions/{id}/relationships/variants - [ ] GET /v1/analyticsReportRequests/{id}/relationships/reports - [ ] GET /v1/appCategories/{id}/relationships/parent - [ ] GET /v1/appCategories/{id}/relationships/subcategories - [ ] GET /v1/appEncryptionDeclarations/{id}/relationships/app - [ ] GET /v1/appEncryptionDeclarations/{id}/relationships/appEncryptionDeclarationDocument - [ ] GET /v1/bundleIds/{id}/relationships/app - [ ] GET /v1/bundleIds/{id}/relationships/bundleIdCapabilities - [ ] GET /v1/bundleIds/{id}/relationships/profiles - [ ] GET /v1/customerReviews/{id}/relationships/response - [ ] GET /v1/endUserLicenseAgreements/{id}/relationships/territories - [ ] GET /v1/gameCenterLeaderboardSetLocalizations/{id}/relationships/gameCenterLeaderboardSetImage - [ ] GET /v1/userInvitations/{id}/relationships/visibleApps - [ ] GET /v2/appAvailabilities/{id}/relationships/territoryAvailabilities - [ ] GET /v2/gameCenterAchievementLocalizations/{id}/relationships/image - [ ] GET /v2/gameCenterAchievementVersions/{id}/relationships/localizations - [ ] GET /v2/gameCenterLeaderboardLocalizations/{id}/relationships/image - [ ] GET /v2/gameCenterLeaderboardSetLocalizations/{id}/relationships/image - [ ] GET /v2/gameCenterLeaderboardSetVersions/{id}/relationships/localizations - [ ] GET /v2/gameCenterLeaderboardVersions/{id}/relationships/localizations ## Where/what to add - Implement in the appropriate `internal/asc/` client files based on resource (bundle IDs, analytics, categories, etc.). - Prefer small, focused client methods + request-shaping tests per resource. ## Test plan - Add request-shaping tests using `newTestClient` (assert method + path + query). - For mutation endpoints (POST/PATCH/DELETE), assert request method + path and (when applicable) JSON relationship payload shape. ## Acceptance criteria - All endpoints listed are implemented in `internal/asc` with tests. - `ASC_BYPASS_KEYCHAIN=1 make test` passes.
kerem 2026-02-26 21:33:55 +03:00
Author
Owner

@rudrankriyam commented on GitHub (Feb 18, 2026):

@cursor please implement this issue (#623).

Scope: 21 remaining missing relationship endpoints (GET-only) across misc resources.

Implementation notes:

  • Implement the endpoints listed in the issue body by adding small, focused client methods in the appropriate internal/asc/client_*.go files.
  • Relationship endpoints may be to-one or to-many; match the JSON shape accordingly (single ResourceData vs []ResourceData).
  • Add request-shaping tests for each endpoint using newTestClient.

Acceptance:

  • All endpoints in the issue checklist are implemented in internal/asc/ with tests.
  • ASC_BYPASS_KEYCHAIN=1 make test passes.
<!-- gh-comment-id:3918647246 --> @rudrankriyam commented on GitHub (Feb 18, 2026): @cursor please implement this issue (#623). Scope: 21 remaining missing relationship endpoints (GET-only) across misc resources. Implementation notes: - Implement the endpoints listed in the issue body by adding small, focused client methods in the appropriate `internal/asc/client_*.go` files. - Relationship endpoints may be to-one or to-many; match the JSON shape accordingly (single `ResourceData` vs `[]ResourceData`). - Add request-shaping tests for each endpoint using `newTestClient`. Acceptance: - All endpoints in the issue checklist are implemented in `internal/asc/` with tests. - `ASC_BYPASS_KEYCHAIN=1 make test` passes.
Author
Owner

@cursor[bot] commented on GitHub (Feb 18, 2026):

Implemented issue #623: added all 21 missing GET relationship endpoints to the internal/asc client, using to-one vs to-many linkage response shapes (ResourceData vs []ResourceData) as defined in the offline OpenAPI snapshot.

Added request-shaping tests for every endpoint using newTestClient (asserting HTTP method + path + relationship query params like limit) across the appropriate internal/asc/*_test.go files, plus a small new client_http_categories_test.go for the App Categories relationship coverage.

Verification (post-push):

  • make format
  • make lint
  • ASC_BYPASS_KEYCHAIN=1 make test

Changes are committed and pushed on cursor/missing-relationship-endpoints-c4f7 (d6a1a37).

View PR

Open in Cursor Open in Web

<!-- gh-comment-id:3918647842 --> @cursor[bot] commented on GitHub (Feb 18, 2026): Implemented issue **#623**: added **all 21 missing GET relationship endpoints** to the `internal/asc` client, using **to-one** vs **to-many** linkage response shapes (`ResourceData` vs `[]ResourceData`) as defined in the offline OpenAPI snapshot. Added **request-shaping tests for every endpoint** using `newTestClient` (asserting HTTP method + path + relationship query params like `limit`) across the appropriate `internal/asc/*_test.go` files, plus a small new `client_http_categories_test.go` for the App Categories relationship coverage. Verification (post-push): - `make format` - `make lint` - `ASC_BYPASS_KEYCHAIN=1 make test` ✅ Changes are committed and pushed on `cursor/missing-relationship-endpoints-c4f7` (`d6a1a37`). <p><a href="https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/629"><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></p> <p><a href="https://cursor.com/background-agent?bcId=bc-4b68e286-6816-4bd8-85e5-7c17f93cc889"><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-4b68e286-6816-4bd8-85e5-7c17f93cc889"><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></p>
Author
Owner

@rudrankriyam commented on GitHub (Feb 18, 2026):

Closed by PR #629 (merged). Note: production disallows the limit param for bundleIdCapabilities relationships and reports bundleIds->app relationship does not exist.

<!-- gh-comment-id:3919363398 --> @rudrankriyam commented on GitHub (Feb 18, 2026): Closed by PR #629 (merged). Note: production disallows the limit param for bundleIdCapabilities relationships and reports bundleIds->app relationship does not exist.
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#179
No description provided.