mcpField
G
gpc-user-management

gpc-user-management

github.com/yasserstudioSecurity137 installsUpdated 1w ago
Repository

About gpc-user-management

gpc-user-management is a skill for managing users, permissions and testers in Google Play developer accounts through GPC. It covers account and per-app access, testing tracks, CSV imports and dry-run checks.

Key features

  1. 01List, inspect, invite and remove users
  2. 02Set developer-level and per-app permissions
  3. 03Manage testers across testing tracks
  4. 04Import testers from CSV files
  5. 05Preview changes with dry-run commands
  6. 06Use JSON output for scripting

Use cases

  1. 01Audit access to a developer account
  2. 02Grant or update app-specific permissions
  3. 03Add testers to internal, alpha or beta tracks
  4. 04Bulk-import tester email addresses

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/yasserstudio/gpc-skills --skill gpc-user-management

After installing, type/gpc-user-managementin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

evals/
evals.json
references/
permissions.md
tester-workflows.md
scripts/
detect_gpc.mjs

Details

From the project README

gpc-user-management

Manage developer account users, permissions, and testers with GPC.

When to use

  • Inviting or removing users from a Google Play developer account
  • Updating user permissions (developer-level or per-app)
  • Listing and auditing who has access to the developer account
  • Adding or removing testers from testing tracks (internal, alpha, beta)
  • Importing testers in bulk from a CSV file
  • Setting up Google Group-based tester access

Inputs required

  • Authenticated GPC — gpc auth status must show valid credentials
  • Developer account ID — required for user commands (--developer-id or GPC_DEVELOPER_ID)
  • App package name — required for tester commands and per-app grants (--app)
  • Email addresses — for inviting users or adding testers
  • CSV file — for bulk tester import (--file)

Procedure

0. Verify setup
gpc auth status
gpc config get app

User commands require --developer-id. Set it once:

export GPC_DEVELOPER_ID=1234567890

Or pass it per command: gpc users list --developer-id 1234567890.

1. Users — list and inspect
# List all users in the developer account
gpc users list --developer-id 1234567890

# Get details for a specific user
gpc users get [email protected] --developer-id 1234567890

# JSON output for scripting
gpc users list --developer-id 1234567890 --json

Fixed in v0.9.98: users list and users get failed on older versions with "Pagination is not currently available" because Google now requires an unpaginated request. Upgrade to v0.9.98+. Google returns every user in one response, so --limit trims that response locally, nextPageToken is always null, and --next-page has no effect for users.

2. Users — invite

Invite a new user with developer-level permissions and optional per-app grants:

# Invite with developer-level permissions
gpc users invite [email protected] \
  --role VIEW_APP_INFORMATION VIEW_FINANCIAL_DATA \
  --developer-id 1234567890

# Invite with per-app grants
gpc users invite [email protected] \
  --grant "com.example.app:VIEW_APP_INFORMATION,MANAGE_TESTING" \
  --developer-id 1234567890

# Combine developer-level and per-app permissions
gpc users invite [email protected] \
  --role VIEW_APP_INFORMATION \
  --grant "com.example.app:MANAGE_PRODUCTION_RELEASES" \
  --developer-id 1234567890

# Preview first
gpc users invite [email protected] \
  --role VIEW_APP_INFORMATION \
  --developer-id 1234567890 \
  --dry-run

Read: references/permissions.md for the full list of developer-level and per-app permission constants.

Note: Permission changes may take up to 48 hours to propagate across Google's systems.

3. Users — update permissions
# Update developer-level permissions
gpc users update [email protected] \
  --role VIEW_APP_INFORMATION VIEW_FINANCIAL_DATA MANAGE_ORDERS \
  --developer-id 1234567890

# Update per-app grants
gpc users update [email protected] \
  --grant "com.example.app:MANAGE_PRODUCTION_RELEASES,MANAGE_TESTING" \
  --developer-id 1234567890

# Preview changes
gpc users update [email protected] \
  --role VIEW_APP_INFORMATION \
  --developer-id 1234567890 \
  --dry-run
4. Users — remove
# Preview removal
gpc users remove [email protected] --developer-id 1234567890 --dry-run

# Remove
gpc users remove [email protected] --developer-id 1234567890
5. Testers — list
# List testers for a track
gpc testers list --track internal
gpc testers list --track alpha
gpc testers list --track beta

# JSON output
gpc testers list --track beta --json
6. Testers — add and remove
# Add individual testers (Google Group emails or individual emails)
gpc testers add [email protected] [email protected] --track internal

# Add a Google Group
gpc testers add [email protected] --track beta

# Add testers without auto-submitting changes for review
gpc testers add [email protected] --track beta --changes-not-sent-for-review

# Fail if the app is currently in review or rejected before modifying testers
gpc testers add [email protected] --track beta --error-if-in-review

# Remove testers
gpc testers remove [email protected] --track internal

# Remove testers without auto-submitting changes for review
gpc testers remove [email protected] --track internal --changes-not-sent-for-review

# Preview changes
gpc testers add [email protected] --track beta --dry-run
7. Grants — standalone per-app permission management

gpc grants manages per-app permissions independently from user invitations. Use this when you need fine-grained control over what individual users can do on specific apps.

# List all grants for a user
gpc grants list [email protected] --developer-id 1234567890

# List grants for a specific app
gpc grants list [email protected] \
  --developer-id 1234567890 \
  --app com.example.app

# Create a new per-app grant
gpc grants create [email protected] \
  --app com.example.app \
  --permissions MANAGE_PRODUCTION_RELEASES VIEW_APP_INFORMATION \
  --developer-id 1234567890

# Update existing grant permissions
gpc grants patch [email protected] \
  --app com.example.app \
  --permissions VIEW_APP_INFORMATION \
  --developer-id 1234567890

# Remove a per-app grant (revokes app-specific access)
gpc grants delete [email protected] \
  --app com.example.app \
  --developer-id 1234567890

When to use gpc grants vs gpc users update --grant:

  • Use gpc grants for managing grants on existing users without modifying their developer-level role
  • Use gpc users invite --grant or gpc users update --grant when also changing the user's account-level permissions

New in v0.9.87: grants list and testers list now return the unified --json envelope { <key>, nextPageToken, meta.count, message? }, matching other list commands. Scripts reading a bare array will break — update to destructure the keyed field. testers list also emits googleGroups: [] when a track has no Google Groups configured (the items key is always present). users list shares the same envelope as of GPC v0.9.83.

Read: references/permissions.md for the full list of per-app permission constants.

8. Testers — bulk import from CSV

Import testers from a CSV file containing email addresses:

# Preview import
gpc testers import --track beta --file testers.csv --dry-run

# Import
gpc testers import --track beta --file testers.csv

CSV format — one email per line:

email
[email protected]
[email protected]
[email protected]

Read: references/tester-workflows.md for common tester management patterns and Google Group best practices.

Verification

  • gpc users list --developer-id <id> returns current users with their permissions
  • gpc users get <email> --developer-id <id> shows the user's current role and grants
  • gpc testers list --track <track> returns testers for the specified track
  • All --dry-run commands show what would change without modifying data
  • JSON output works on all commands (--json flag)
  • Permission changes may take up to 48 hours to propagate

Failure modes / debugging

SymptomLikely CauseFix
DEVELOPER_ID_REQUIREDMissing --developer-id flagSet GPC_DEVELOPER_ID env var or pass --developer-id
PERMISSION_DENIED on user commandsService account lacks admin permissionsService account needs "Admin" access in Play Console
USER_NOT_FOUNDEmail not in the developer accountCheck spelling; use gpc users list to verify
INVALID_GRANT formatWrong --grant syntaxFormat: com.example.app:PERM1,PERM2 (colon between app and perms, commas between perms)
INVALID_PERMISSIONUnknown permission constantCheck references/permissions.md for valid constants
Permissions not taking effect48-hour propagation delayWait; changes are eventual — verify after 48 hours
TRACK_NOT_FOUND for testersTrack doesn't exist or wrong nameValid tracks: internal, alpha, beta, or custom track names
CSV import failsWrong CSV format or encodingEnsure UTF-8, one email per line, header row with email
TESTER_LIMIT_EXCEEDEDTrack has maximum tester countInternal: 100, Alpha/Beta: no hard limit but Google Groups recommended for scale

Related skills

  • gpc-setup — authentication and developer account configuration
  • gpc-release-flow — releasing to testing tracks that testers access
  • gpc-ci-integration — automating tester management in CI/CD pipelines

Comments

Markdown supported