A val that automatically fetches GitHub commits and posts formatted changelog updates to Discord. The bot categorizes commits based on conventional commit messages ie. feat:
, fix:
etc., and uses AI to generate user-friendly summaries.
Example:
Before you can run the cron or try out the playground, you must add the following Environment Variables (via left sidebar of this val):
GITHUB_REPO_OWNER
: ie.steel-dev
GITHUB_REPO_NAME
: ie.steel-browser
GITHUB_TOKEN
:- For public repos, or personal repos: Go to GitHub Personal Access Tokens → Generate new token (classic) → Select
repo
scope - For org-owned repos: Go to GitHub Personal Access Tokens → Resource Owner → Select the org the repo belongs to → read access to
Contents
. You will need approval from the org admin.
- For public repos, or personal repos: Go to GitHub Personal Access Tokens → Generate new token (classic) → Select
DISCORD_WEBHOOK_URL
: In your Discord server → Server Settings → Integrations → Webhooks → New Webhook → Copy Webhook URL
-
gh-to-discord.tsx
is a cron that runs automatically based on your configured schedule, fetching commits since the last run -
playground.tsx
You can also manually test this val using theplayground.tsx
HTTP endpoint.
Here's an Example Playground with the steel
repo.
The bot automatically categorizes commits into the following sections (feel free to add more!):
- ✨ New Features (
feat:
) - 🐛 Bug Fixes (
fix:
) - ⚙️ Chores & Maintenance (
chore:
) - 📋 Other Updates (uncategorized commits)
Each commit message is processed by GPT to generate user-focused summaries that emphasize the impact on end users rather than technical implementation details.
Want to customize the summaries? You can modify the GPT prompt in the generateUserFocusedSummary
function in process-commits.tsx
to better match your project's style, audience, or specific terminology. You can paste in examples of past changelogs to help the LLM understand your style.