[PR #95] [MERGED] Add phased release management for app store versions #279

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

📋 Pull Request Information

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

Base: mainHead: issue/84-phased-release


📝 Commits (3)

  • 8d9e58c Add phased release management for app store versions
  • e445fc2 Address codex review feedback
  • f98f864 Align phased release flags and outputs.

📊 Changes

8 files changed (+1061 additions, -0 deletions)

View changed files

📝 README.md (+6 -0)
cmd/phased_release.go (+278 -0)
cmd/phased_release_test.go (+216 -0)
📝 cmd/versions.go (+1 -0)
📝 internal/asc/client.go (+53 -0)
📝 internal/asc/output_test.go (+88 -0)
internal/asc/phased_release.go (+185 -0)
internal/asc/phased_release_test.go (+234 -0)

📄 Description

Summary

Implements issue #84 - phased release CRUD operations for App Store versions.

Phased release gradually rolls out an app update over 7 days:

  • Day 1: 1%, Day 2: 2%, Day 3: 5%, Day 4: 10%, Day 5: 20%, Day 6: 50%, Day 7: 100%

Commands

asc versions phased-release get --version VERSION_ID
asc versions phased-release create --version VERSION_ID [--state ACTIVE]
asc versions phased-release update --id PHASED_ID --state PAUSED|ACTIVE|COMPLETE
asc versions phased-release delete --id PHASED_ID --confirm

API Endpoints

  • GET /v1/appStoreVersions/{id}/appStoreVersionPhasedRelease
  • POST /v1/appStoreVersionPhasedReleases
  • PATCH /v1/appStoreVersionPhasedReleases/{id}
  • DELETE /v1/appStoreVersionPhasedReleases/{id}

Changes

  • internal/asc/phased_release.go - Types and client methods
  • cmd/phased_release.go - CLI commands
  • Tests for both client and CLI validation

Test plan

  • All existing tests pass
  • CLI validation tests for missing flags
  • CLI validation tests for invalid states
  • HTTP client tests with mocked responses
  • State enum validation (INACTIVE, ACTIVE, PAUSED, COMPLETE)
  • Manual testing with real API (requires active version)

Closes #84


🔄 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/95 **Author:** [@rudrankriyam](https://github.com/rudrankriyam) **Created:** 1/24/2026 **Status:** ✅ Merged **Merged:** 1/24/2026 **Merged by:** [@rudrankriyam](https://github.com/rudrankriyam) **Base:** `main` ← **Head:** `issue/84-phased-release` --- ### 📝 Commits (3) - [`8d9e58c`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/8d9e58ca2b060f052dc52c32dd4d1938baebfa7a) Add phased release management for app store versions - [`e445fc2`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/e445fc25e1d47ff37c2d8b372d72d2ade92f448e) Address codex review feedback - [`f98f864`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/f98f8649f3ca7d6415bdc34504c08045d4f10680) Align phased release flags and outputs. ### 📊 Changes **8 files changed** (+1061 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `README.md` (+6 -0) ➕ `cmd/phased_release.go` (+278 -0) ➕ `cmd/phased_release_test.go` (+216 -0) 📝 `cmd/versions.go` (+1 -0) 📝 `internal/asc/client.go` (+53 -0) 📝 `internal/asc/output_test.go` (+88 -0) ➕ `internal/asc/phased_release.go` (+185 -0) ➕ `internal/asc/phased_release_test.go` (+234 -0) </details> ### 📄 Description ## Summary Implements issue #84 - phased release CRUD operations for App Store versions. Phased release gradually rolls out an app update over 7 days: - Day 1: 1%, Day 2: 2%, Day 3: 5%, Day 4: 10%, Day 5: 20%, Day 6: 50%, Day 7: 100% ## Commands ```bash asc versions phased-release get --version VERSION_ID asc versions phased-release create --version VERSION_ID [--state ACTIVE] asc versions phased-release update --id PHASED_ID --state PAUSED|ACTIVE|COMPLETE asc versions phased-release delete --id PHASED_ID --confirm ``` ## API Endpoints - `GET /v1/appStoreVersions/{id}/appStoreVersionPhasedRelease` - `POST /v1/appStoreVersionPhasedReleases` - `PATCH /v1/appStoreVersionPhasedReleases/{id}` - `DELETE /v1/appStoreVersionPhasedReleases/{id}` ## Changes - `internal/asc/phased_release.go` - Types and client methods - `cmd/phased_release.go` - CLI commands - Tests for both client and CLI validation ## Test plan - [x] All existing tests pass - [x] CLI validation tests for missing flags - [x] CLI validation tests for invalid states - [x] HTTP client tests with mocked responses - [x] State enum validation (INACTIVE, ACTIVE, PAUSED, COMPLETE) - [ ] Manual testing with real API (requires active version) Closes #84 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-26 21:34:25 +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#279
No description provided.