The moment it happens
Announce opened and merged MRs in Slack
Your channel hears when a merge request in your project is opened or merged.
- Runs
- The moment it happens
- Apps
- GitLab
- AI
- Not needed
- Access
- read_api (polling); Maintainer role to add a webhook
Send this to your assistant
Create a ClickRuntime automation: post to #dev in Slack whenever a merge request in my GitLab project web-app is opened or merged, with the author and link.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
On a GitLab project, two moments matter to people outside the author's immediate circle: when a merge request is opened, because someone must review it, and when it is merged, because QA, support or a release manager needs to know the change is now in. Learning about either through GitLab emails or by asking in chat is slow and unreliable, so reviews wait and releases are assembled from guesses.
When GitLab reports a merge request event, only the opened and merged actions are kept and a message is sent to Slack with the title, author, target branch and link. If your GitLab plan or setup makes webhooks awkward, the same result can come from checking merge requests updated after the last run.
Teams with a shared engineering channel, release managers and QA leads who follow merges.
What you get out of it
Reviewers hear about new work at once
A merge request announced in the team channel gets claimed quickly, which reduces the hours it waits for a first look and keeps authors from stalling on blocked work. A faster first look means shorter cycle times.
Merges are visible to QA and support
When a fix is merged, the people who promised it to a customer see it in the channel and can plan testing or a reply, instead of finding out from a release note a week later.
Release managers track what landed
A running list of merges to main is a rough changelog in real time, which makes assembling release notes and spotting unexpected changes far easier. Surprises on main become rare and easy to trace to a single change.
Only meaningful events are posted
Filtering to opened and merged avoids the noise of every comment and push, so people read the channel because each message marks a real milestone. A quiet, accurate channel keeps people reading rather than muting it.
Works with a webhook or polling
Event delivery gives near instant messages, while the polling variant helps when you cannot add a webhook to the project, so teams are not blocked by admin permissions. Teams with limited admin rights can still get the same alerts.
How it works
What happens, step by step
When a merge request in your GitLab project changes, ClickRuntime hears about it straight away.
It ignores everything except merge requests being opened or merged.
Your Slack channel gets who opened or merged it, its title and a link.
Before it runs live
- Connect GitLab
- Paste your automation's link into the other app's webhook settings
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_event, notify
@on_event
def handle(event):
body = event.json
mr = body.get("object_attributes", {})
if body.get("object_kind") != "merge_request" or mr.get("action") not in ("open", "merge"):
return {"skipped": True}
verb = "opened" if mr["action"] == "open" else "merged"
notify.slack(f"MR !{mr['iid']} {verb} by {body['user']['name']}: {mr['title']}\n{mr['url']}", channel="#dev")
return {"posted": mr["iid"]}FAQ
Common questions
Does it announce closed merge requests?
Can it cover several GitLab projects?
Can it mention the reviewer in Slack?
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 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 worksGet an email for each review request
Whenever you are added as reviewer on a merge request, you get its title and link by email.
See how it worksKeep exploring
Set up “Announce opened and merged MRs in Slack” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.