How to Run Renovate Self-Hosted in a Workflow
Running Renovate self-hosted means invoking the renovatebot/github-action on a cron schedule with a token, so no third-party app needs access to your repositories.
Add a scheduled workflow that runs renovatebot/github-action. Provide a token (a PAT or GitHub App token) with permission to open PRs. This replaces the hosted Renovate app and gives you full control over frequency and runners.
Steps
- Create a token with
contentsandpull-requestswrite access. - Add a workflow on
schedulethat runsrenovatebot/github-action. - Pass the token via the
tokeninput. - Keep your
renovate.jsonin the repo as usual.
Self-hosted workflow
.github/workflows/renovate.yml
name: Renovate
on:
schedule:
- cron: '0 2 * * *'
workflow_dispatch:
jobs:
renovate:
runs-on: ubuntu-latest
steps:
- uses: renovatebot/github-action@v40
with:
token: ${{ secrets.RENOVATE_TOKEN }}
env:
RENOVATE_REPOSITORIES: my-org/my-repoGotchas
- The default
GITHUB_TOKENcannot open PRs that trigger other workflows; use a PAT or GitHub App token. - Self-hosting means you own the runner minutes and upgrade cadence of the Renovate version.
- Pin the action to a version tag so a Renovate release does not silently change behavior mid-run.
Related guides
How to Schedule Renovate Runs With a TimezoneLimit when Renovate opens PRs with schedule and timezone, using presets like "before 6am on monday" so update…
How to Choose Between Renovate and DependabotCompare Renovate and Dependabot honestly on setup, grouping, automerge, scheduling, and ecosystem support so…