feat(ci): add Play Store review triage workflow

scripts/triage-reviews.py was fully written but had no workflow, so it
never ran. Add a daily 07:00 UTC cron (staggered after product-intelligence)
plus workflow_dispatch, with Python 3.12 + the Android Publisher API client
deps the script imports, and GOOGLE_SERVICE_ACCOUNT_JSON / GH_TOKEN passed
through as named secrets.

Also fix a stale doc-string reference: the issue body linked to a
non-existent monitor-reviews.yml; point it at the workflow actually created.
This commit is contained in:
engineer
2026-07-16 15:46:21 -07:00
parent 14a130cf66
commit e72e82df8e
2 changed files with 36 additions and 1 deletions

35
.github/workflows/triage-reviews.yml vendored Normal file
View File

@@ -0,0 +1,35 @@
name: Play Store Review Triage
on:
workflow_dispatch:
schedule:
# 07:00 UTC daily (staggered after Daily Product Intelligence at 06:00 UTC)
- cron: "0 7 * * *"
permissions:
contents: read
issues: write
concurrency:
group: triage-reviews-${{ github.ref }}
cancel-in-progress: false
jobs:
triage:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
run: pip install google-auth google-auth-httplib2 google-api-python-client
- name: Triage Play Store reviews
env:
GOOGLE_SERVICE_ACCOUNT_JSON: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_JSON }}
GH_TOKEN: ${{ secrets.GH_TOKEN || secrets.GITHUB_TOKEN }}
run: python scripts/triage-reviews.py

View File

@@ -109,7 +109,7 @@ def create_issue(review: dict):
---
*This issue was automatically created by the [monitor-reviews workflow](/.github/workflows/monitor-reviews.yml).
*This issue was automatically created by the [triage-reviews workflow](/.github/workflows/triage-reviews.yml).
Reply to the user in Play Console if applicable.*
**Labels**: `user-feedback`, `play-store-review`