No plugin to install and no bot to authorise. GitHub already runs commands on merge; two of them keep your translations in step.
Everything below authenticates with one API key, scoped to read or write and optionally pinned to a single platform, so a build job can never reach further than the app it builds.
GET /status reports how far every locale has got. Fail the job when the language you promised is not finished, and an untranslated string cannot reach production by accident.
A push compares values. Re-running the job on an unchanged branch writes nothing and enqueues nothing.
A changed English string flags its translations needs review. It does not overwrite what a translator wrote.
status returns per-locale counts and the plural forms a language is still missing, not just a percentage.
Create a workspace, mint a read/write key, paste the job in. Free while you are evaluating.