The moment it happens
Get a message when a pull request opens
Reviewers see each new pull request with its title, author and link as soon as it's created.
- Runs
- The moment it happens
- Apps
- Azure DevOps
- AI
- Not needed
- Access
- Code Read (service hook set up in project settings)
Send this to your assistant
Create a ClickRuntime automation: whenever a pull request is created in our Azure DevOps repo web-app, post the title, author and link to #code-review in Slack.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
On a team of eight developers, a pull request that nobody notices is a pull request that waits. The author opens it in Azure Repos at 10 am, assumes someone will pick it up, and goes back to coding. Reviewers are busy in their own work, email notifications from Azure DevOps are filtered or ignored, and by the next afternoon the PR is stale, conflicts with main, and the author has already started the next feature on top of unreviewed code.
When a pull request is created in your repository, an Azure DevOps service hook sends the event to ClickRuntime. ClickRuntime picks out the title, the author and the link and posts them to Slack, so the whole team sees the new PR right when it is opened and a reviewer can claim it.
Teams that want shorter review times without introducing a formal on-call reviewer rota will find it useful.
What you get out of it
Reviews start within the hour
A visible message in the team channel prompts someone to say they will take it. Waiting a full day for a first comment becomes the exception instead of the normal pace.
Authors keep their momentum
A developer whose PR is picked up quickly does not have to context-switch back to old work days later. Feedback arrives while the change is still fresh in mind, so fixes are faster and more accurate.
Merge conflicts stay small
The longer a PR waits, the more main moves underneath it. Fast reviews mean branches are merged before they diverge, which spares everyone a tedious rebase. Developers avoid the tedious rebase that follows a long wait.
Review load is spread more evenly
When every PR appears in a shared channel, different people pick them up. Without it, the same one or two senior developers tend to get asked, and they become bottlenecks.
Cross-team changes are noticed
A PR touching a shared library might need eyes from another team. Because the title and author are visible to everyone in the channel, relevant people can step in before merging.
How it works
What happens, step by step
Each time a pull request is created in Azure DevOps, Azure DevOps tells ClickRuntime straight away.
It picks out the repository, title and author.
A message goes to #code-review with those details and a link to the pull request.
Before it runs live
- Connect Azure DevOps
- 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 Azure DevOps steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, notify
REPO = "web-app"
@on_event
def handle(event):
body = event.json or {}
if body.get("eventType") != "git.pullrequest.created":
return {"skipped": body.get("eventType")}
pr = body["resource"]
if pr["repository"]["name"] != REPO:
return {"skipped": pr["repository"]["name"]}
link = f"{pr['repository']['webUrl']}/pullrequest/{pr['pullRequestId']}"
notify.slack(f"New PR in {REPO}: *{pr['title']}* by {pr['createdBy']['displayName']}\n{link}",
channel="#code-review")
return {"pr": pr["pullRequestId"]}FAQ
Common questions
Does it post draft pull requests?
Can I send alerts for only some repositories?
Is the description included in the message?
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
Get alerted when a pipeline run fails
A failed build on your main pipeline is posted right away, so nobody merges on top of it.
See how it worksGet your open work items by email each morning
You start the day with a list of every work item assigned to you that isn't closed.
See how it worksPost new orders and sign-ups to Slack
When something happens in your shop, app or form, the details land in the right channel straight away.
See how it worksKeep exploring
Set up “Get a message when a pull request opens” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.