release: add read-only Play status fallback [skip mobile-release] - #294
Closed
0xSero wants to merge 1 commit into
Closed
release: add read-only Play status fallback [skip mobile-release]#2940xSero wants to merge 1 commit into
0xSero wants to merge 1 commit into
Conversation
Owner
Author
|
Superseded by #295 (v2.0.1 mega convergence). Equivalent mega commit: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Read-only fallback for the Google Play store-status read, so the
play-statusjob can still report track/versionCode state when the service account holds
read access but not edit access.
Edits.insert→Edits.tracks.list→Edits.delete(delete infinally) remains the primary path.edits.insert403 PERMISSION_DENIED. Falls backto
applications.tracks.releases.list, probingproduction,beta,qa,alpha, and the legacyinternalalias; per-track 404 (not-found) is recordedseparately from 200-empty; the canonical
trackfield is recorded as theresolved name.
userFraction(the direct methodexcludes obsolete releases, caps at 20 per track, and exposes no rollout
fraction) — and it does not bypass a missing Play Console grant: it only
succeeds when the service account has read permission on the app. If access is
missing entirely, the read also 403s.
Self-test transcript
Deterministic in-process mock covers: edit happy path (POST→GET→DELETE order),
403 fallback, non-403 no-fallback, per-track 404 vs empty, raw
releaseLifecycleStatepreservation,DRAFT→draft/PUBLISHED→completedmapping,sourcemarker (edit/direct-get), nulluserFractionin direct path, andresolved track names.
Verification
python3 -m py_compile tools/scripts/list-play-tracks.py— OKgit diff --name-only HEAD~1 HEAD— exactly one file:tools/scripts/list-play-tracks.pygit status --porcelain— cleanApproval
FABLE_APPROVE_PLAY_REPAIR_PUSH_PR_HEAD_F675FB24Commits / scope
193944cb0a98256ca598d53f5243024a7818edb9(origin/main)f675fb2441071229483e319aa56d50648d0a4eb195785c21c9cb502d3f8bed97397d27920b084c9dtools/scripts/list-play-tracks.py(+304/−94); no workflow/docs/secrets/permissions changes.Do not merge.