Skip to content

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.

BotWatchesDelivers
RenovateOutdated dependenciesBump merge requests; green minor and patch bumps automerge
RenovatebotbotFailing Renovate merge requestsAdaptation commits on the bump branch, reported ready when green
MainfixbotFailing default-branch pipelinesDraft fix merge requests on botfix/ branches, ready when green
sentry-botRuntime errors reported by SentryGitLab work items linked to the Sentry issue
dc-pr-agentMerge requests when they openReview 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.

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.

  • 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.