New to Kestra?
Use blueprints to kickstart your first workflows.
Listen for GitHub star webhook events and post conditional, color-coded Slack notifications with Kestra when a repository is starred or unstarred.
Turn every GitHub star and unstar into an instant, color-coded Slack notification. This event-driven blueprint listens for GitHub star webhook events, inspects whether the action was a new star or a removed star, and posts a tailored message to your Slack channel with the sender's login, a link to their GitHub profile, and the repository's current star count. It solves the problem of teams missing community signals because no one is polling the GitHub API or refreshing the repo page, giving open-source maintainers and DevOps teams real-time visibility into project traction.
io.kestra.plugin.core.trigger.Webhook trigger exposes a URL secured by a key and fires the flow whenever GitHub posts a star event payload.check_action task, a io.kestra.plugin.core.flow.If, evaluates the condition {{ trigger.body.action == 'created' }} to branch on the event type.notify_star_added task (io.kestra.plugin.slack.notifications.SlackIncomingWebhook) posts a green attachment (#88FF00) announcing the new stargazer and the updated stargazers_count.notify_star_removed task posts a red attachment (#FF0000) noting who removed the star and the new total.GitHub webhooks can fire an HTTP call, but they cannot branch on the payload, format a rich Slack attachment, retry on failure, or give you execution history. Kestra fills that gap: the event trigger reacts the instant GitHub posts, the If task routes conditionally, built-in retries handle transient Slack outages, and every run is logged with full lineage and replayable inputs. You define it all as declarative YAML, version controlled and portable across environments.
SLACK_WEBHOOK_URL: the Slack incoming webhook used to post both notifications.GITHUB_WEBHOOK_KEY: the secret key that secures the Kestra webhook trigger URL.SLACK_WEBHOOK_URL and GITHUB_WEBHOOK_KEY secrets to your Kestra instance.github_webhook trigger.channel in each payload to route alerts to a dedicated channel.