The moment it happens
Post new GitHub stars to a Slack channel
When someone stars your GitHub repo, a Slack message shows who it was, their company and follower count and the new star total.
- Runs
- The moment it happens
- Apps
- GitHub, Slack
- AI
- Not needed
- Access
- Metadata: read; chat:write
Send this to your assistant
Create a ClickRuntime automation: when someone stars acme/app, post their username, name, company, follower count and the repo's new star total to #community.
First time? Adding ClickRuntime to your assistant takes about two minutes.
Why use it
Why teams use this automation
A new star is a small signal, but for a young project each one matters, and the people behind them are often worth knowing. GitHub only shows a notification count, and its stargazer page has no names or companies.
With this automation GitHub calls a webhook whenever someone stars your repository. The automation looks up the person's public profile and posts their name, company and follower count to Slack, along with the new total.
Founders of developer tools watch the channel for companies trying their product, and community managers use it to spot well-known developers worth thanking.
What you get out of it
Who starred, not just how many
Each message names the person and their company, which a star count on its own never tells you.
Running total in every post
The current star count is included, so the channel doubles as a milestone tracker.
Noise control
A follower threshold keeps busy repositories from filling the channel.
Profile link included
One click opens the person's GitHub profile to see what else they work on.
Instant
The webhook fires as soon as the star is given, so a launch day plays out live in Slack.
How it works
What happens, step by step
GitHub sends a "star" webhook to the automation when someone stars the repository.
The automation looks up the person's public GitHub profile.
It posts their name, company, follower count and the repository's new star total to Slack.
Unstars are ignored, so the channel only shows new stars.
Before it runs live
- Connect GitHub
- Connect Slack, then invite the app to the channel (type /invite @ClickRuntime there)
- 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 GitHub and Slack steps into one automation
Under the hood
The code that runs this automation
from clickruntime import on_event, credentials, http, verify, notify
CHANNEL = "#community"
MIN_FOLLOWERS = 0
def gh(method, path, **kw):
resp = http.request(method, f"https://api.github.com{path}", headers={
"Authorization": f"Bearer {credentials.connection('github', 'work')}",
"Accept": "application/vnd.github+json"}, **kw)
resp.raise_for_status()
return resp.json() if resp.content else None
@on_event
def handle(event):
if not verify.github(event.body, event.header("X-Hub-Signature-256"), credentials.secret("GITHUB_WEBHOOK_SECRET")):
return {"ignored": "bad signature"}
body = event.json
if event.header("X-GitHub-Event") != "star" or body.get("action") != "created":
return {"ignored": True}
login, repo = body["sender"]["login"], body["repository"]
p = gh("GET", f"/users/{login}")
if p.get("followers", 0) < MIN_FOLLOWERS:
return {"ignored": "below follower threshold"}
who = f"{p.get('name') or login} ({login})"
extra = " · ".join(x for x in [p.get("company"), f"{p.get('followers', 0):,} followers"] if x)
notify.slack(f"⭐ {repo['full_name']} now has {repo['stargazers_count']:,} stars\n{who} · {extra}\n{p['html_url']}", channel=CHANNEL)
return {"login": login}FAQ
Common questions
Our repo gets hundreds of stars a day. Will the channel flood?
Can it post forks too?
Where do I add the webhook?
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
Post merged GitHub pull requests to Slack
Each merged pull request is posted to a Slack channel with title, author, lines changed and link.
See how it worksTurn new errors into GitHub issues with a Slack alert
Each new kind of error opens a GitHub issue with a likely cause, and the team is told in Slack. Repeats of a known error are not filed again.
See how it worksGet an AI first review on every pull request
Each new pull request gets a review comment pointing out likely bugs and risks, and Slack shows a one-line verdict with the link.
See how it worksKeep exploring
Set up “Post new GitHub stars to a Slack channel” from your assistant
Copy the prompt above, or connect your assistant first. Free plan, no credit card.