@@ -12,10 +12,21 @@ logic; it is also used to populate entries manually (`pnpm entry:from-release`).
1212
1313## One-time setup (repo admin)
1414
15- - ** builtin-plugins secret ` REGISTRY_DISPATCH_TOKEN ` ** — a fine-scoped PAT or
16- GitHub App token permitted to ` POST repos/motrixapp/plugin-registry/dispatches ` .
17- Until it is set, the release workflow's notify step is a no-op (a shell
18- guard skips it) and the release still succeeds.
15+ - ** builtin-plugins → a GitHub App for the cross-repo dispatch.** Create an
16+ org-owned GitHub App with the single Repository permission ** Contents:
17+ Read and write** (what ` repository_dispatch ` requires), install it on
18+ ` motrixapp/plugin-registry ` only, and store its credentials in
19+ builtin-plugins' ** ` plugin-signing ` environment** :
20+ - ` REGISTRY_DISPATCH_APP_ID ` — the App ID (secret or variable),
21+ - ` REGISTRY_DISPATCH_APP_PRIVATE_KEY ` — the App private key ` .pem ` (secret).
22+
23+ The release workflow's ` sign ` job mints a short-lived (~ 1h), repo-scoped
24+ installation token from these (` actions/create-github-app-token ` ) and uses
25+ it to ` POST repos/motrixapp/plugin-registry/dispatches ` . This is a distinct
26+ credential from the Ed25519 signing key (` MOTRIX_PLUGIN_SIGNING_KEY ` ) —
27+ same environment, far lower sensitivity. Until BOTH App secrets are set,
28+ the mint + notify steps skip (gated on a credentials-present check) and the
29+ signed release still succeeds.
1930- ** plugin-registry setting** — Settings → Actions → General → "Allow GitHub
2031 Actions to create and approve pull requests" must be enabled so the
2132 workflow's ` GITHUB_TOKEN ` can open the PR.
0 commit comments