DevOps Engineer
GitHub Release Automation β Version Bump to Published Release in One Command
Key Takeaway
One command triggers our agent to bump the version, generate categorized release notes from merged PRs, publish to GitHub, and cross-post announcements to Discord and Telegram β the entire release process in under 2 minutes.
The Problem
Releases are tedious. Not hard β tedious. And tedious is where mistakes live.
Here's what a release used to look like at PyratzLabs: open the repo, scan merged PRs since last tag, write a changelog by hand, decide if it's a patch or minor bump, tag the commit, draft the GitHub release, paste in the notes, hit publish. Then copy the announcement to Discord. Then Telegram. Miss a PR? Wrong version number? Forgot the migration note for that breaking change? Start over.
For Mr.Chief β a project with 31 agents pushing code β we were releasing weekly. That's 52 chances per year to mess up a changelog. I got tired of it after release three.
The Solution
A single natural language command to our DevOps agent: release mrchief v2026.3.8. The agent handles everything β version bump, release note generation, categorization, migration guide detection, contributor credits, GitHub publication, and cross-platform announcements.
Built on the gh CLI, GitLab API, and Mr.Chief's agent orchestration layer.
The Process
The command kicks off a pipeline. Here's what the agent actually does:
Step 1: Version Bump
bashShow code
# Agent updates version across all relevant files
sed -i 's/"version": ".*"/"version": "2026.3.8"/' package.json
sed -i "s/__version__ = '.*'/__version__ = '2026.3.8'/" mrchief/__init__.py
# Commit the bump
git add -A
git commit -m "chore: bump version to v2026.3.8"
git tag -a v2026.3.8 -m "Release v2026.3.8"
git push origin main --tags
Step 2: Generate Release Notes
The agent pulls all merged PRs since the last tag and categorizes them:
bashShow code
# Fetch PRs merged since last release
gh pr list --state merged --search "merged:>2026-03-01" \
--json number,title,labels,author --limit 100
It parses labels to categorize:
markdownShow code
## π Features
- Agent-to-agent message routing (#412) @thom-agent
- Webhook retry with exponential backoff (#408) @backend-sub
## π Bug Fixes
- Fix race condition in sandbox cleanup (#415) @devops-sub
- Correct timezone handling in cron scheduler (#411) @thom-agent
## π Documentation
- Update SKILL.md template with new fields (#409) @alfrawd
Step 3: Breaking Change Detection
The agent scans PR descriptions and commit messages for breaking change indicators:
pythonShow code
BREAKING_PATTERNS = [
r'BREAKING CHANGE:', r'β οΈ', r'migration required',
r'removed.*endpoint', r'changed.*schema', r'renamed.*field'
]
If detected, it auto-generates a migration guide section:
markdownShow code
## β οΈ Breaking Changes & Migration Guide
### Webhook payload schema changed (#413)
- `event_type` field renamed to `event`
- Migration: update all webhook handlers to use `payload.event`
Step 4: Publish and Announce
bashShow code
# Create GitHub release with generated notes
gh release create v2026.3.8 \
--title "Mr.Chief v2026.3.8" \
--notes-file /tmp/release-notes.md \
--latest
# Cross-post to Discord and Telegram
curl -X POST "$DISCORD_WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d '{"content": "π **Mr.Chief v2026.3.8** released!\n\n3 features, 2 fixes\n\nhttps://github.com/pyratzlabs/mrchief/releases/tag/v2026.3.8"}'
The Results
| Metric | Before (Manual) | After (Agent) |
|---|---|---|
| Time per release | 45-60 min | 1 min 47 sec |
| Missed PRs in changelog | 2-3 per release | 0 |
| Wrong version numbers | ~1 per quarter | 0 |
| Announcement delay | "I'll post it later" | Instant |
| Breaking change docs | Sometimes forgotten | Auto-detected |
Try It Yourself
You need: gh CLI authenticated, a tagging convention, and PR labels. The agent logic is straightforward β the value isn't in complexity, it's in never forgetting a step. Set up your release template, define your label-to-category mapping, and let the agent run the checklist you'd otherwise skip at 6pm on a Friday.
Releases should be boring. That's the point.
Related case studies
DevOps Engineer
Release Automation β From Tag to Changelog to GitLab Release in 60 Seconds
PyratzLabs automated the entire release process with an AI agent. One Telegram command creates a tag, generates a categorized changelog, and publishes a GitLab release in 60 seconds flat.
CTO
The Engineering Pipeline β From Idea to Production in 24 Hours
From approved idea to production deployment in one day. See how 31 AI agents coordinate across GitLab, Docker, Vercel, and Render to ship with confidence.
DevOps Engineer
CI/CD Pipeline Monitoring β The Agent That Never Sleeps
How an AI agent monitors CI/CD pipelines 24/7 across 5+ GitLab repos, auto-retries flaky jobs, and delivers failure alerts to Telegram β so developers never context-switch to check builds again.
Want results like these?
Start free with your own AI team. No credit card required.