ADR-0387: Migrate Renovate from self-hosted workflow to GitHub App¶
- Status: Accepted
- Date: 2026-05-10
- Deciders: lusoris
- Tags:
infra,dependency-bot,fork-local
Context¶
The fork ran Mend Renovate self-hosted as a GitHub Actions workflow (.github/workflows/renovate.yml, scheduled cron). On 2026-05-10 the listener session wedged twice (7-hour stall, lost session post-bounce), causing user-visible symptoms: 13 dependency updates parked under "Awaiting Schedule", 2 stuck under "Pending Status Checks", and a duplicate dashboard issue (#603) the listener never reaped.
Decision¶
Remove .github/workflows/renovate.yml and rely on the Mend-hosted Renovate GitHub App (free for public repos, webhook-driven, hosted by Mend).
Alternatives considered¶
- Keep self-hosted; harden the listener — ARC controller restart loop, liveness probe, scheduled bounces. Ongoing infra maintenance for a side-quest. Rejected.
- Run both in parallel — duplicate-PR risk from two bots competing on the same
renovate.json. Rejected. - Switch to Dependabot — lacks Renovate's grouping + custom regex managers (FFmpeg pin tracker). Rejected.
Consequences¶
Positive:
- No infra to maintain (no
RENOVATE_TOKEN, no ARC runner-set, no cron). - Webhook-driven response to dashboard ticks (vs polling).
- Free for public repos.
Negative:
- External SaaS dependency (Mend); rollback path documented in
docs/development/dependency-bot.md.
References¶
- ADR-0363 (self-hosted Renovate adoption — superseded by this ADR).
- Issue #749 (live dashboard).
- Issue #603 (closed duplicate, 2026-05-10).
- PR #750 (renovate.json config widened earlier the same session).