Daily
Get a daily digest of new releases for the tools you use
Each morning, new GitHub releases for the repositories you follow are summarised and sent to Slack and Telegram.
- Runs
- Daily
- Apps
- Slack, Telegram
- AI
- Yes, uses the built-in AI allowance
- Access
- Telegram bot token; Slack chat:write
Send this to your assistant
Create a ClickRuntime automation: every morning, check these GitHub repos for new releases, summarise the changelogs and send the digest to #eng 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 small engineering team depends on a dozen open-source libraries and tools. Breaking changes and security fixes are announced in release notes that nobody has time to watch, so they find out about a deprecated option when the build fails.
One morning digest with a plain summary of each new release lets the team spot what matters for them in a couple of minutes, in the chat apps they already read.
What you get out of it
Security fixes are not missed
A release that patches a vulnerability shows up in the next morning's digest. The team can upgrade before it becomes a problem.
Breaking changes are flagged early
The summary calls out removed options and changed behaviour. Upgrades can be planned instead of discovered during an outage.
Short summaries instead of long changelogs
Each release is reduced to the few lines that matter. Reading the digest takes minutes, not an hour of clicking through release pages.
Quiet days stay quiet
Releases already reported are remembered, and nothing is sent when there is nothing new. The digest only appears when it has something to say.
How it works
What happens, step by step
Every morning, ClickRuntime checks each GitHub repository on your list for its latest releases.
Releases it has already reported are skipped, and nothing is sent on days with no new releases.
AI summarises each new release's notes in a few lines, flagging breaking changes and security fixes.
The digest is posted to your Slack channel and sent to your Telegram chat.
Before it runs live
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
- Connect Telegram
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
- Run it at a different time, more or less often, or only on weekdays
- Change what the AI looks for, or how it writes the result
- 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 slack_sdk import WebClient
from clickruntime import on_trigger, credentials, http, state, ai, report_fetched
REPOS = ["psf/requests", "pallets/flask", "tiangolo/fastapi"]
TELEGRAM_CHAT = "your-telegram-chat-id"
@on_trigger
def run(event):
seen = set(state.get("seen") or [])
new = []
for repo in REPOS:
for r in http.get(f"https://api.github.com/repos/{repo}/releases", params={"per_page": 5}).json():
if not r["draft"] and not r["prerelease"] and str(r["id"]) not in seen:
new.append((repo, r))
report_fetched(len(new))
if not new:
return {"summary": "No new releases"}
parts = []
for repo, r in new:
try:
s = ai.generate(f"Summarise in 2-3 lines, flag breaking changes and security fixes:\n{(r['body'] or '')[:4000]}", max_output_tokens=150).text.strip()
except ai.AIError:
s = (r["body"] or "")[:300]
parts.append(f"*{repo} {r['tag_name']}*\n{s}\n{r['html_url']}")
seen.add(str(r["id"]))
digest = "Release digest\n\n" + "\n\n".join(parts)
WebClient(token=credentials.connection("slack", "work")).chat_postMessage(channel="#eng", text=digest)
http.post(f"https://api.telegram.org/bot{credentials.secret('TELEGRAM_BOT_TOKEN')}/sendMessage", json={"chat_id": TELEGRAM_CHAT, "text": digest[:4000]})
state.set("seen", sorted(seen)[-1000:])
return {"summary": f"{len(new)} releases"}FAQ
Common questions
How do I choose which repositories to follow?
Are pre-releases included?
Does it need a GitHub account?
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 a daily news digest in Telegram and Slack
Each morning a short digest of the top news on your topic arrives in your Telegram chat and your Slack channel.
See how it worksGet Slack and Telegram alerts when your websites go down
Your websites are checked every 5 minutes, and you hear in both Slack and Telegram when one goes down or comes back.
See how it worksGet alerts when Bitcoin or Ethereum drops past your threshold
You get one message in Telegram and Slack when Bitcoin or Ethereum falls more than your chosen percentage in 24 hours.
See how it worksKeep exploring
Set up “Get a daily digest of new releases for the tools you use” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.