All templates

Automated GitLab Merge Request Chasing

Every weekday morning, WebRun signs in to GitLab, reads every open merge request across the projects you track, records who opened it, who is assigned to review, how long it has waited, and whether its pipeline passed, posts the ones past your review target to Telegram oldest first, and queues a Twilio SMS only for merge requests blocking a release.

Runs on WebRun · Strict Lockdown policy
Every weekday at 9:00 AM WebRunorchestrates each step
1 GitLab find merge requests waiting on review
2 Telegram post the chase list
3 Twilio queue an SMS on release blockers
In short

How do I stop merge requests from sitting unreviewed for days?

WebRun reads every open GitLab merge request each weekday morning, recording the author, the assigned reviewer, hours waited, and the latest pipeline result. It posts the ones past your review target to Telegram oldest first, separates failing pipelines and unassigned requests, and queues an SMS only for release blockers.

  • Review debt is visible every morning, oldest first
  • Unassigned and failing merge requests are separated from real review waits
  • SMS is limited to release blockers and still needs your release

Built for engineering managers · development teams · platform teams · tech leads

Step by step

What does WebRun do on every run?

The exact actions WebRun takes, in order - in plain language, so you can adjust anything.

  1. WebRun signs in and gets to work

    Opens gitlab.com/users/sign_in in a real browser with your saved login - no setup, no API keys.

  2. 1
    GitLab - find merge requests waiting on review
    gitlab.com
    WebRun in GitLab: find merge requests waiting on review
    WebRun opens GitLab to find merge requests waiting on review.
    • Sign in to GitLab and open the merge requests view across the projects you track
    • Capture each open merge request with its title, author, assigned reviewers, target branch, and the date it was opened
    • Record the latest pipeline result and whether the branch has conflicts
    • Work out hours since the last reviewer comment and mark anything past your review target
    • Separate drafts from ready merge requests, and mark any labelled for the current release

    Done when Every open merge request has a reviewer, a waiting time, and a pipeline result.

  3. 2
    Telegram - post the chase list
    telegram.org
    WebRun in Telegram: post the chase list
    WebRun opens Telegram to post the chase list.
    • Post the chase list to your engineering Telegram group, longest waiting first
    • Give the merge request title, the author, the reviewer, the hours waited, and the pipeline result
    • Put merge requests with a failing pipeline in their own block, since those need the author not the reviewer
    • List ready merge requests with no reviewer assigned at all so a lead can assign one
    • Post a clean board line when nothing is past target

    Done when The chase list is in Telegram with unassigned and failing ones separated.

  4. 3
    Twilio - queue an SMS on release blockers
    twilio.com
    WebRun in Twilio: queue an SMS on release blockers
    WebRun opens Twilio to queue an SMS on release blockers.
    • Draft a short SMS only for merge requests labelled for the current release that are past target
    • Queue every message in Twilio for your approval instead of sending it
    • Use only numbers on your saved internal engineering list. Nobody outside the team is ever texted
    • Queue nothing when no release blocker is overdue

    Done when Release blockers have an SMS queued for your release, or there were none.

Run settings

How is each run configured?

Starting pageWhere Chrome opens at the start of each run
gitlab.com/users/sign_in
ScheduleRuns automatically on this cadence
Every weekday at 9:00 AM
DeliveryHow each run's result reaches you
Review chase list · Telegram
OutputWhat each run produces - A daily list of GitLab merge requests past their review target with author, reviewer, hours waited and pipeline status.
Text
Setup & safety

Secure by default

Connect once, stays signed in

WebRun signs in once and keeps each session in a persistent environment, so every run picks up right where it left off.

Your credentials stay in your own private environment - WebRun never stores your passwords.
Strict Lockdown

Every action is checked against this policy before it runs.

Domains ALLOWLIST
Typed input ALLOW
Shell command BLOCK
File uploads BLOCK
Runs in a contained environment More on policies
Good to know

Questions, answered

Can it approve or merge code?

No. WebRun reads merge requests and reports them. It never approves, merges, comments, closes, or runs a pipeline, so review and merge decisions stay entirely with your engineers.

Will it text people without approval?

No. SMS is reserved for release blockers, every message is queued in Twilio until you release it, and only numbers on your saved internal engineering list are ever used.

Does it chase drafts?

No. Draft merge requests are listed separately and never chased, because a draft is not waiting on a reviewer yet.

Put this on autopilot.

Turn it on in minutes - or have our team set it up for you.