Skip to content
Back to skills

Gplay Testers Orchestration

ASecurity

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.

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 9, 2026
developmentgobashtesting

Security analysis

A100/100

Scanned October 9, 2026

npx -y skills add deonmenezes/mobile-app-skill --skill gplay-testers-orchestration --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Gplay Testers Orchestration?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Gplay Testers Orchestration
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/deonmenezes-gplay-testers-orchestration/badge)](https://www.skillsdirectory.com/skills/deonmenezes-gplay-testers-orchestration)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: gplay-testers-orchestration
description: 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.
---

# 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

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

### Assign testers (replace the whole set)

```bash
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:

```bash
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)

```bash
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:

```bash
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:

```bash
# 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:

```bash
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:

```bash
# 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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.