Helper bots
A small family of bots keeps routine repository work moving. Renovate
automerges green minor and patch bumps; the AI fix bots never merge anything,
and a human reviews everything else. The bots that write code run as scheduled
GitLab CI jobs under the bot user renovatebotbot, whose group membership
defines their scope; dc-pr-agent reacts to merge request events instead.
| Bot | Watches | Delivers |
|---|---|---|
| Renovate | Outdated dependencies | Bump merge requests; green minor and patch bumps automerge |
| Renovatebotbot | Failing Renovate merge requests | Adaptation commits on the bump branch, reported ready when green |
| Mainfixbot | Failing default-branch pipelines | Draft fix merge requests on botfix/ branches, ready when green |
| sentry-bot | Runtime errors reported by Sentry | GitLab work items linked to the Sentry issue |
| dc-pr-agent | Merge requests when they open | Review comments and code suggestions, never a merge |
The shared mechanics (state persistence, worker execution, commit checks, GitLab access) live in botcore. Each bot’s own README is the authority on its exact behavior and safety checks. Renovate’s configuration is covered under external dependencies.
How they behave
Section titled “How they behave”An AI worker writes the code, in a checkout, without any GitLab credential. The bot validates the commit before publishing it: the reviewed change must survive, history is never rewritten, and pushes are never forced. Every result arrives in a merge request, and the merge request’s pipeline is the verdict.
A bump or fix gets a bounded number of attempts. After that the bot hands the work to a human: a note on the merge request, or an issue when no merge request exists. A new head commit hands it back to the bot with a fresh budget.
Mainfixbot ignores runner queue pressure (a red default branch outranks it) and leaves branches alone whose failing pipeline is older than a year: those are dormant, not broken.
Working with them
Section titled “Working with them”- Review and merge like any merge request. A note saying the pipeline passes means it is ready for you; the fix bots never merge.
- Steer with a reply. A comment from a member with push access on a Renovate merge request the bot works on becomes the instruction for its next attempt, and reopens a green one.
- Conflicted adapted bumps resolve themselves. The bot ticks Renovate’s rebase checkbox, Renovate regenerates the bump, and the bot replays its adaptation on the fresh branch.
- Close what you do not want. Closing a Renovate merge request mutes that
update; closing a
botfix/merge request leaves the repair to you.
