The moment it happens
Post GitHub pushes, pull requests and issues to Slack and Telegram
Activity from all your GitHub repositories appears in one Slack channel and on your Telegram, as it happens.
- Runs
- The moment it happens
- Apps
- Slack, Telegram
- AI
- Not needed
- Access
- Slack chat:write; Telegram bot token
Send this to your assistant
Create a ClickRuntime automation: when any of my GitHub repos gets a push, pull request or issue, send a message to #dev in Slack and to my Telegram.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A freelance developer maintains a handful of client repositories and a couple of open-source projects. Pull requests from collaborators and issues from users arrive as GitHub emails, which get buried under everything else. A client's contractor waited three days for a review because the notification was never seen, and an urgent bug report sat unanswered over a weekend.
Sending repository activity to a Slack channel the team watches, and to Telegram on the developer's phone, means reviews and bug reports are seen the same day, across every repository at once.
What you get out of it
Reviews do not wait for days
A new pull request shows up straight away where people are already looking. Collaborators get feedback faster and work keeps moving.
Every repository in one place
Pushes, pull requests and issues from all your repositories land in one channel. There is no need to watch each one separately.
Reachable away from your desk
The Telegram message reaches your phone even when you are not in Slack. An urgent issue on a weekend is seen, not discovered on Monday.
Out of your email inbox
GitHub activity no longer competes with client email. Your inbox gets quieter and nothing important is lost in it.
Short messages with links
Each message names the repository, the author and what happened, with a link to open it. You can triage from a notification.
How it works
What happens, step by step
When something happens in one of your GitHub repositories, GitHub sends the details to your trigger link straight away.
ClickRuntime checks the message really came from GitHub and works out whether it is a push, a pull request or an issue.
It writes a one-line summary with the repository, author and a link.
The summary is posted to #dev in Slack and sent to you on Telegram.
Before it runs live
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
- Connect Telegram
- 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 Google Sheets
- Combine it with other Slack and Telegram steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, credentials, http, notify, verify
TELEGRAM_CHAT_ID = "your-telegram-chat-id"
@on_event
def handle(event):
if not verify.github(event.body, event.header("X-Hub-Signature-256") or "", credentials.secret("GITHUB_WEBHOOK_SECRET")):
return {"skipped": "bad signature"}
kind, e = event.header("X-GitHub-Event"), event.json or {}
repo = e.get("repository", {}).get("full_name", "")
if kind == "push":
text = f"⬆️ {e['pusher']['name']} pushed {len(e['commits'])} commit(s) to {repo}:{e['ref'].split('/')[-1]} {e['compare']}"
elif kind == "pull_request":
pr = e["pull_request"]
text = f"🔀 PR {e['action']} in {repo}: {pr['title']} by {pr['user']['login']} {pr['html_url']}"
elif kind == "issues":
text = f"🐛 Issue {e['action']} in {repo}: {e['issue']['title']} {e['issue']['html_url']}"
else:
return {"skipped": kind}
notify.slack(text, channel="#dev")
http.post(f"https://api.telegram.org/bot{credentials.secret('TELEGRAM_BOT_TOKEN')}/sendMessage", json={"chat_id": TELEGRAM_CHAT_ID, "text": text})
return {"event": kind}FAQ
Common questions
How do I connect my repositories?
Is the webhook checked to make sure it came from GitHub?
Will every push flood the channel?
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
Send error and status alerts to Slack and Telegram
Any failure or status change sent to your trigger link reaches both Slack and Telegram, with repeats filtered out.
See how it worksAnnounce subscriptions, cancellations and failed payments in Slack and Telegram
Every new subscription, cancellation and failed payment is posted to your revenue channel in Slack and sent to you on Telegram.
See how it worksAnswer Telegram bot messages and escalate urgent ones to Slack
Every message to your Telegram bot gets an instant reply, and complaints or urgent requests are posted to your Slack support channel.
See how it worksKeep exploring
Set up “Post GitHub pushes, pull requests and issues to Slack and Telegram” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.