此登錄庫釘選版本所收錄的最新上游作者日期。

gplay-testers-orchestration

已同步 v1.1.0 授權: MIT 來源: tamtom/gplay-cli-skills/skills/gplay-testers-orchestration 提交: 10301b2 收錄的最新變更:

Manage testers for Google Play testing tracks (internal, closed alpha/beta, custom) using edit sessions. Use when assigning testers, creating closed tracks, or promoting builds between tracks.

摘要

用途
透過 gplay CLI 管理 Google Play 測試軌道的測試者存取權與版本發布流程,並以編輯工作階段處理測試者和軌道變更。
使用時機
當需要檢視測試者存取權、加入或取代電子郵件地址或 Google 群組測試者、建立自訂封閉測試軌道,或在軌道間推送版本時使用;測試者變更須提交編輯後才會生效。
輸出結果
它會回傳軌道的測試者清單,並在編輯工作階段中暫存測試者、軌道和版本更新以供提交;也可將來源軌道的版本代碼複製至目的軌道,並以 0.0–1.0 的小數設定推出比例。
上游變更(2 筆,最新收錄 2026-07-04)
439c9ae fix(skills): audit cleanup — correct every command, cut dead weight, add drift guardrail (#3) 重新整理指南以修正測試軌道與測試者說明、區分取代與合併測試者,並記錄透過編輯工作階段指派測試者、建立測試軌道及以小數設定分階段推出的流程。
acb31df Initial commit: Google Play CLI Skills repository 新增一份指南,涵蓋 Google Play 測試軌道、測試者管理、發布與升級流程,以及與測試者溝通。
npx skills add "lettucebo/Skills#v2.2.0@gplay-testers-orchestration" --full-depth

⚠ v2.2.0 發布後即可使用

Testers Orchestration for Google Play

Use this skill to assign testers to a track and promote builds through the testing funnel. All tester changes happen inside an edit session and take effect only after gplay edits commit.

Testing tracks

Track Type Max testers Review Access
internal Internal 100 No Instant
alpha Closed testing Unlimited No Minutes
beta Open or closed testing Unlimited No/Yes Minutes
custom track Closed testing Unlimited No Minutes
production Public Unlimited Yes Days

alpha is a closed track (invite-only), not public. Testers on internal and closed tracks are managed by email address or by Google Group.

Tester commands

gplay testers has only three subcommands. There is no testers list — to list the testers on a track, use testers get.

  • gplay testers get — read the testers on a track.
  • gplay testers update — replace the entire tester set (emails/groups not included are removed).
  • gplay testers patch — merge with the existing set (preserves fields you omit).

List (get) testers for a track

gplay testers get \
  --package com.example.app \
  --edit $EDIT_ID \
  --track alpha

Assign testers (replace the whole set)

gplay testers update \
  --package com.example.app \
  --edit $EDIT_ID \
  --track alpha \
  --emails "tester1@example.com,tester2@example.com"

By Google Group instead of individual emails:

gplay testers update \
  --package com.example.app \
  --edit $EDIT_ID \
  --track alpha \
  --google-groups "beta-testers@example.com,qa-team@example.com"

Add testers without dropping existing ones (patch)

gplay testers patch \
  --package com.example.app \
  --edit $EDIT_ID \
  --track alpha \
  --emails "newtester@example.com"

Remove a tester (update = replace with the reduced set)

update replaces the resource, so re-send only the testers you want to keep:

CURRENT=$(gplay testers get --package com.example.app --edit $EDIT_ID --track alpha \
  | jq -r '.testers[]?')
KEEP=$(echo "$CURRENT" | grep -v "user@example.com" | paste -sd "," -)

gplay testers update \
  --package com.example.app \
  --edit $EDIT_ID \
  --track alpha \
  --emails "$KEEP"

Assign testers inside an edit session (canonical flow)

Tester assignment is not a flag on gplay release. There is no --testers flag anywhere. The real flow is an edit session:

# 1. Create an edit
EDIT_ID=$(gplay edits create --package com.example.app | jq -r '.id')

# 2. Upload the build
gplay bundles upload \
  --package com.example.app \
  --edit $EDIT_ID \
  --file app-release.aab

# 3. Assign the release to the track
gplay tracks update \
  --package com.example.app \
  --edit $EDIT_ID \
  --track alpha \
  --releases '[{"versionCodes":["123"],"status":"completed"}]'

# 4. Assign testers to the track
gplay testers update \
  --package com.example.app \
  --edit $EDIT_ID \
  --track alpha \
  --emails "tester1@example.com,tester2@example.com"

# 5. Commit (nothing applies until this succeeds)
gplay edits commit --package com.example.app --edit $EDIT_ID

Create a closed testing track

Custom closed tracks are created inside an edit, then get testers assigned the same way:

EDIT_ID=$(gplay edits create --package com.example.app | jq -r '.id')

gplay tracks create \
  --package com.example.app \
  --edit $EDIT_ID \
  --track qa-ring

gplay testers update \
  --package com.example.app \
  --edit $EDIT_ID \
  --track qa-ring \
  --emails "qa1@example.com,qa2@example.com"

gplay edits commit --package com.example.app --edit $EDIT_ID

Promote a build between tracks

Promotion copies the source track's version codes to a destination track. --rollout is a fraction (0.0–1.0), not a percentage:

# Internal -> closed alpha
gplay promote --package com.example.app --from internal --to alpha

# Closed beta -> production at 10% staged rollout
gplay promote --package com.example.app --from beta --to production --rollout 0.1

Agent behavior

  • There is no testers list subcommand; use gplay testers get --track <track> to read a track's testers.
  • Never pass --testers to gplay release; assign testers via testers update/patch inside an edit, then commit.
  • Use update to set the exact tester set, patch to add without removing.
  • --rollout values are fractions (0.1 = 10%), range 0.0–1.0.
  • Always gplay edits commit — tester changes are inert until committed.
  • Confirm flags with --help before running.

歷程

v1.1.0 baseline-verified 10301b2
v1.1.0 license-refresh 10301b2