[PR #660] [CLOSED] feat(testflight): add --internal, --all-builds flags to beta-groups create #689

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

📋 Pull Request Information

Original PR: https://github.com/rudrankriyam/App-Store-Connect-CLI/pull/660
Author: @ss5nathan
Created: 2/19/2026
Status: Closed

Base: mainHead: feat/beta-groups-create-internal-flag


📝 Commits (1)

  • ef5bbb3 feat(testflight): add --internal, --all-builds, and --feedback-enabled flags to beta-groups create

📊 Changes

3 files changed (+90 additions, -5 deletions)

View changed files

📝 internal/asc/client.go (+2 -2)
📝 internal/asc/client_http_test.go (+57 -1)
📝 internal/cli/testflight/beta_groups.go (+31 -2)

📄 Description

Summary

  • The beta-groups create command currently only supports --app and --name, always creating external beta groups that require Apple's beta review before testers can install
  • Adds --internal, --all-builds, and --feedback-enabled flags to beta-groups create, following the same fs.Visit() pattern already used by beta-groups update
  • Changes CreateBetaGroup() client method to accept a BetaGroupAttributes struct instead of a bare name string, allowing the new API fields to be passed through

Motivation

External beta groups require Apple's beta review before testers can install builds. Internal groups allow immediate installation for App Store Connect team members — a critical workflow for indie developers and small teams doing rapid iteration. The Apple API already supports isInternalGroup: true in the POST body, and the Go structs already have this field, but the CLI command didn't expose it.

Changes

internal/cli/testflight/beta_groups.go

  • Added --internal (bool, default false) — creates an internal group
  • Added --all-builds (bool, default false) — grants access to all builds
  • Added --feedback-enabled (bool, default true) — enables feedback
  • Uses fs.Visit() to track explicitly-passed flags (same pattern as update)
  • Updated help text and examples

internal/asc/client.go

  • Changed CreateBetaGroup(ctx, appID, name string) to CreateBetaGroup(ctx, appID string, attrs BetaGroupAttributes)
  • The struct fields (IsInternalGroup, HasAccessToAllBuilds, FeedbackEnabled) are serialized via omitempty, so unset fields are excluded from the request body

internal/asc/client_http_test.go

  • Updated existing TestCreateBetaGroup_SendsRequest to use new signature
  • Added TestCreateBetaGroup_InternalGroup verifying all new attributes are sent in the POST body and parsed in the response

Test plan

  • go test ./... passes (all 82 packages)
  • Manual test: asc testflight beta-groups create --app APP_ID --name "Test" --internal
  • Manual test: asc testflight beta-groups create --app APP_ID --name "Test" (backwards-compatible, external group)

🔄 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/660 **Author:** [@ss5nathan](https://github.com/ss5nathan) **Created:** 2/19/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `feat/beta-groups-create-internal-flag` --- ### 📝 Commits (1) - [`ef5bbb3`](https://github.com/rudrankriyam/App-Store-Connect-CLI/commit/ef5bbb3b259e0fa1fc3cb2da5de51fde7bc18cdf) feat(testflight): add --internal, --all-builds, and --feedback-enabled flags to beta-groups create ### 📊 Changes **3 files changed** (+90 additions, -5 deletions) <details> <summary>View changed files</summary> 📝 `internal/asc/client.go` (+2 -2) 📝 `internal/asc/client_http_test.go` (+57 -1) 📝 `internal/cli/testflight/beta_groups.go` (+31 -2) </details> ### 📄 Description ## Summary - The `beta-groups create` command currently only supports `--app` and `--name`, always creating **external** beta groups that require Apple's beta review before testers can install - Adds `--internal`, `--all-builds`, and `--feedback-enabled` flags to `beta-groups create`, following the same `fs.Visit()` pattern already used by `beta-groups update` - Changes `CreateBetaGroup()` client method to accept a `BetaGroupAttributes` struct instead of a bare `name` string, allowing the new API fields to be passed through ## Motivation External beta groups require Apple's beta review before testers can install builds. Internal groups allow immediate installation for App Store Connect team members — a critical workflow for indie developers and small teams doing rapid iteration. The Apple API already supports `isInternalGroup: true` in the POST body, and the Go structs already have this field, but the CLI command didn't expose it. ## Changes ### `internal/cli/testflight/beta_groups.go` - Added `--internal` (bool, default false) — creates an internal group - Added `--all-builds` (bool, default false) — grants access to all builds - Added `--feedback-enabled` (bool, default true) — enables feedback - Uses `fs.Visit()` to track explicitly-passed flags (same pattern as `update`) - Updated help text and examples ### `internal/asc/client.go` - Changed `CreateBetaGroup(ctx, appID, name string)` to `CreateBetaGroup(ctx, appID string, attrs BetaGroupAttributes)` - The struct fields (`IsInternalGroup`, `HasAccessToAllBuilds`, `FeedbackEnabled`) are serialized via `omitempty`, so unset fields are excluded from the request body ### `internal/asc/client_http_test.go` - Updated existing `TestCreateBetaGroup_SendsRequest` to use new signature - Added `TestCreateBetaGroup_InternalGroup` verifying all new attributes are sent in the POST body and parsed in the response ## Test plan - [x] `go test ./...` passes (all 82 packages) - [ ] Manual test: `asc testflight beta-groups create --app APP_ID --name "Test" --internal` - [ ] Manual test: `asc testflight beta-groups create --app APP_ID --name "Test"` (backwards-compatible, external group) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-26 22:32:08 +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#689
No description provided.