Every 5 minutes
Get an email for each review request
Whenever you are added as reviewer on a merge request, you get its title and link by email.
- Runs
- Every 5 minutes
- Apps
- GitLab
- AI
- Not needed
- Access
- read_api
Send this to your assistant
Create a ClickRuntime automation: every 5 minutes, check GitLab for open merge requests where I'm a reviewer and email me any new ones with the title and link.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
On GitLab, being added as a reviewer produces a notification that is easy to miss, especially if you filter GitLab email or work in a different timezone from the author. The merge request then waits, the author asks in chat whether anyone has looked, and a change that could have merged in an hour takes three days because the request reached the wrong inbox at the wrong time.
Every 5 minutes, open merge requests where your username is the reviewer are listed. Any you have not been told about yet are emailed to you with the title and a link, and then remembered. The email is separate from GitLab's own notifications, so it still arrives if you have muted those.
Reviewers who split time across projects, and people who have turned GitLab email off to cut noise, will find it most useful.
What you get out of it
Requests reach you even with GitLab muted
A dedicated email is not affected by notification settings you changed for noise reasons, so a real review request still gets through to you. You only need one reliable channel for requests that matter.
Authors stop chasing for reviews
Prompt first responses mean fewer follow-up messages, which saves the author from interrupting you and makes it clear that requests to you are handled. That protects focus time for both of you.
Merge requests merge sooner
Cutting the delay before the first look shortens the whole cycle, which matters when a fix is blocking a release or a customer is waiting on a patch. Small delays add up, and this removes one of the biggest.
Each request is emailed once
Remembering seen merge requests prevents repeated mail every five minutes, so your inbox gets exactly one message per request and no reminder spam. Your inbox stays clean and trustworthy for every other message.
Easy to forward or snooze
Because it lands as ordinary email, you can snooze it until after lunch or forward it to a teammate if you cannot take it, using tools you already know. It fits the way you already manage email.
How it works
What happens, step by step
Every five minutes ClickRuntime checks GitLab for open merge requests where you are a reviewer.
It skips any it has already emailed you about.
For each new review request you get an email with the title, project and a link.
Before it runs live
- Connect GitLab
What you get
Build your own
Need it to work differently?
Your own rules
Conditions, thresholds, filters and exceptions, written the way you'd explain them to a colleague.
Any number of apps
One automation can read from one app and update several others. Over 248 apps are ready, and anything with an API works too.
AI where it helps
Summaries, classification, extraction and drafts use ClickRuntime's built-in AI, with no extra key.
On a schedule or on each event
Runs as often as every 5 minutes, or the moment an app sends an event, and keeps track of what it already handled.
Changes you can ask for
- Act only on the items that match your own rules, and skip the rest
- Add an AI step, for example to summarize, sort or draft a reply
- Add another app, for example also send it to Slack
- Combine it with other GitLab steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_trigger, credentials, http, notify, state, report_fetched
GITLAB = "https://gitlab.com/api/v4"
def gl_headers():
return {"PRIVATE-TOKEN": credentials.secret("GITLAB_TOKEN")}
ME = "your-gitlab-username"
@on_trigger
def run(event):
mrs = http.get(f"{GITLAB}/merge_requests", headers=gl_headers(),
params={"scope": "all", "state": "opened", "reviewer_username": ME, "per_page": 100}).json()
seen = set(state.get("seen") or [])
new = [m for m in mrs if m["id"] not in seen]
report_fetched(len(new))
if not new:
return {"new": 0}
for m in new:
notify.email_me(f"Review requested: {m['title']}", f"{m['references']['full']} by {m['author']['name']}\n{m['web_url']}")
state.set("seen", list(seen | {m["id"] for m in mrs}))
return {"new": len(new)}FAQ
Common questions
Does it work for group or team reviewers?
What is in the email?
Will I get an email for merge requests I already reviewed?
What permissions does it need?
Does it need AI?
How many runs does it use?
Can I change how it works?
Related
You might also like
Block merge requests that break a rule
When a merge request changes, it is checked against your rule and gets a failing commit status if it breaks it.
See how it worksAnnounce opened and merged MRs in Slack
Your channel hears when a merge request in your project is opened or merged.
See how it worksKnow right away when main fails
A failed pipeline on main reaches you with the jobs that broke and a link to it.
See how it worksKeep exploring
Set up “Get an email for each review request” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.