One time setup for Vigil’s automated release flow. Day to day releases
need no configuration on this page — see RELEASING.md
for the release procedure. This document covers the GitHub App that
.github/workflows/release-please.yml depends on.
Why a GitHub App
release-please.yml mints short lived (1 hour) tokens at runtime from a
GitHub App rather than using a long-lived personal access token. The App
is org owned, so releases keep working when individual maintainers
leave, and tokens auto-rotate so there is no manual key rotation chore.
Required App permissions
Create a GitHub App on the Vigil-SOC org (org Owner role required) at
github.com/organizations/Vigil-SOC/settings/apps.
Grant only these Repository permissions — leave everything else at
“No access”:
| Permission | Access | Why |
|---|---|---|
| Contents | Read and write | Push tags and update VERSION / CHANGELOG.md |
| Pull requests | Read and write | Open and update the release PR |
| Issues | Read and write | Link release notes to closed issues |
| Workflows | Read and write | In case the release PR ever touches .github/workflows/ |
Uncheck “Active” under Webhooks (not needed). Restrict installation to
“Only on this account”. Install the App on the vigil repo only.
Wire it into the repo
.github/workflows/release-please.yml references two repo-level
configuration items by exact name. Set both at
Settings → Secrets and variables → Actions:
| Name | Tab | Value |
|---|---|---|
RELEASE_PLEASE_APP_ID |
Variables | The numeric App ID shown on the App’s settings page |
RELEASE_PLEASE_PRIVATE_KEY |
Secrets | Full contents of the .pem file generated under “Private keys” on the App’s settings page (including the BEGIN/END lines) |
See GitHub’s docs on
managing private keys for GitHub Apps
for the mechanics of generating the .pem.
Failure mode
If either configuration item is missing or empty, the “Mint GitHub App
token” step in release-please.yml fails immediately and no release PR
is opened. Symptom: every push to main produces a failed
release-please workflow run; no release PR appears in the PR list.