0013. Use Renovate for dependency updates
Status
Accepted
Date
2026-10-29
Context
Dependency updates shouldn’t be a manual job. Dependabot is an option, but I want to avoid tying more tooling to GitHub.
Decision
Use Renovate to open pull requests for dependency updates.
Consequences
- Renovate supports other hosting platforms and can be self-hosted.
- GitHub Actions runs Renovate daily and on demand as a dedicated private GitHub App. The workflow mints a short-lived installation token on each run, so there is no personal token to store or rotate.
- The app needs the permissions listed in Renovate’s GitHub App guide, including Workflows read and write.
GITHUB_TOKENcan’t update workflow files, so it isn’t used. PRs opened by the app also trigger normal PR workflows. - PRs and commits come from the app’s bot account, so the repository owner can approve them. Commits are made through the GitHub API and are signed.
- The app’s client ID is stored as the
RENOVATE_APP_CLIENT_IDvariable and its private key as theRENOVATE_APP_PRIVATE_KEYsecret. The private key needs rotating if it leaks. - Renovate reads its settings from
.github/renovate.json. The workflow only sets the repository to process. - Updates need review and validation before merging.