ENGINEERING

Assign GitLab MR reviewers by current queue depth

When a merge request opens, picks the eligible code owner with the lightest current review queue and assigns them, then posts the pick to Slack.

CategoryEngineering
Enginesim
Difficultyintermediate
Triggerwebhook
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerGitLab MR opened or marked readyGitLabGitLab
  • ActionResolve code owners from changed filesGitLabGitLab
  • ActionFetch each owner's open-review countPostgreSQLPostgres
  • LogicPick owner with lightest queue (tie-break by oldest assignment)
  • ActionAssign reviewer and log assignmentGitLabGitLab
  • OutputPost assignment to SlackSlack

What it does

Every time a GitLab merge request is opened or marked ready, this workflow finds the people who own the changed files, measures how many open reviews each of them is already holding, and assigns the one with the shallowest queue. It then announces the assignment in the team Slack channel so nobody has to chase it down.

When to use it

Use it when your team relies on CODEOWNERS but a handful of senior reviewers absorb most of the load while others sit idle. It enforces fairness automatically without a human triage step.

How it works

  1. 1A GitLab webhook fires on merge_request opened/ready events.
  2. 2The workflow reads the MR diff and resolves the matching code owners from CODEOWNERS.
  3. 3It queries Postgres for each candidate's count of currently assigned, unmerged reviews.
  4. 4A logic step picks the candidate with the lowest open-review count, breaking ties by least-recently-assigned.
  5. 5It calls GitLab to set that person as the MR reviewer and records the assignment in Postgres.
  6. 6A Slack message posts the MR link, the assignee, and their new queue depth to the engineering channel.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitLabRepos, MRs, pipelines, registry.
  2. 2
    Connect PostgresAny Postgres URL — query, write, migrate.
  3. 3
    Connect SlackChannels, DMs, threads, mentions.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.