Log every GitHub release to Supabase and announce it in Slack
When you publish a new GitHub release, save it as a row in your Supabase changelog table and post a clean announcement to your Slack release channel.
When a new release is published in my GitHub repository, I want to capture it as a row in my Supabase changelog table and announce it in my team's Slack channel. Pure deterministic pipeline, no reasoning or judgement involved.
Trigger: a GitHub webhook on the release.published event from my product repository. Only fire on full published releases. Skip drafts and pre-releases.
Step 1. In GitHub, call Get a Release using the release ID from the webhook payload so I have the full release metadata: tag name, release name, body, author login, published_at timestamp, and the HTML URL back to the release page.
Step 2. In Supabase, call Create Row to insert into my `releases` table. Map these columns from the GitHub release object: tag (text, from tag_name), name (text, from name), body (text, from body), author (text, from author.login), published_at (timestamp, from published_at), and html_url (text, from html_url). Assume the table already exists with those columns.
Step 3. In Slack, call Send a Message as the bot to channel #releases. Format the message in Slack mrkdwn with the tag as a bold heading, the release name on the next line, the release body underneath, and a link back to the GitHub release page at the bottom. Keep the formatting clean so it reads well in the channel.
Make the Slack channel name, the Supabase table name, and the watched GitHub repository configurable inputs so I can reuse the same workflow for other repos or other channels later.
Additional information
What does this prompt do?
- The moment you publish a release on GitHub, we save the tag, title, notes, author, and date as a new row in your Supabase changelog table.
- We post a clean announcement to your Slack release channel with the version, title, and the release notes so the whole team sees it at the same time.
- Your database and your Slack channel stay in sync, giving you one source of truth for everything you have ever shipped.
- Drafts and pre-releases are skipped, so only finished releases get logged and announced.
What do I need to use this?
- A GitHub account with access to the repository you want to track releases for
- A Supabase project with a table ready to store release records
- A Slack workspace and the announcement channel you want the bot to post in
How can I customize it?
- Choose which Slack channel the announcement gets posted in
- Decide which fields from each release get saved to your changelog table
- Add a filter so only specific repositories, or tags with a certain prefix, get tracked
Frequently asked questions
Will this fire for draft releases or pre-releases?
What happens if I edit a release after publishing it?
Can I track releases from more than one repository?
Do I need to create the Supabase table first?
Will the release notes look good in Slack?
Stop copy-pasting release notes into Slack.
Connect GitHub, Supabase, and Slack once. Every new release lands in your changelog database and your team's Slack channel automatically.