EAS Metadata: support Google Play (Data safety + store listing via androidpublisher write APIs)
- Dominant language
- TypeScript
- Stars
- 1.4k
- Forks
- 236
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 91
Description
### Summary
`eas metadata` manages the Apple App Store only. `eas metadata:push` has no Google Play path (the CLI exposes no `--platform android`, and the docs state under EAS Metadata that "The Google Play Store is one of those features currently not implemented"). This forces manual Play Console work for every Android release, including the first-release app-content declarations.
### The concrete, already-automatable part
Google exposes a service-account-writable endpoint for the Data safety declaration:
```
POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/dataSafety
{ "safetyLabels": "" }
```
(scope `https://www.googleapis.com/auth/androidpublisher`). I verified a Play service account can write it — an invalid body returns `400 Invalid safety labels declaration`, not `401/403`, and a correctly-formatted CSV passes format validation. The Main store listing is similarly writable via `edits.listings`.
EAS Metadata could wrap these to push the Data safety declaration and the Play store listing from `store.config`, exactly as it already syncs Apple metadata — covering the majority of Android first-release setup friction.
### Out of scope (no Google API exists)
Content rating, target audience, financial-features, and health declarations remain Console-only in Google's API, so those can't be automated by anyone today. This request is specifically about the surfaces Google *does* expose (Data safety + store listing).
### Why it matters
For a new app's first release, the parts EAS could drive (Data safety + listing) are exactly the ones that currently require a manual Console pass. Wrapping the existing `androidpublisher` write APIs in `eas metadata` would close most of that gap for paying EAS customers.
### Environment
- `eas-cli` 21.7.x
- Verified against `androidpublisher` v3 (dataSafety endpoint, docs last updated 2025-05-21)
Contributor guide
Research direction
Start at the existing eas metadata:push entry point and its store.config handling, then compare the Apple metadata path with Google’s androidpublisher dataSafety and edits.listings APIs. Verify the Android publisher authentication scope and confirm that Data safety CSV content and the Main store listing can be pushed, while unsupported declarations remain out of scope.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, typescript
- Domain
- cli, mobile
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100