A val that automatically fetches GitHub commits (title and description) and posts formatted changelog updates to Discord. It 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 a more user-friendly message.
You can modify the GPT prompt in the generateUserFocusedSummary()
function in process-commits.tsx
. You can paste in examples of past changelogs to help the LLM understand your desired tone.