Automated GitHub Release Management | AI Changelog Generator | Smart Version Bumping
Quick Start • Features • Configuration • Examples • Documentation
Release Helper is an advanced GitHub Action that revolutionizes release management through AI-powered automation. Eliminate manual changelog writing, automate semantic versioning, and streamline your CI/CD pipeline with intelligent release note generation powered by OpenAI GPT models.
Perfect for developers seeking automated release workflows, AI-generated changelogs, and seamless version control integration.
- ⏱️ Save Hours - Automate changelog writing and version management
- 🤖 AI Intelligence - GPT-powered analysis understands your code changes
- 📈 Better Documentation - Generate comprehensive, human-readable release notes
- 🔄 Zero Config - Works out of the box with sensible defaults
- 🎨 Rich Integrations - Discord notifications, custom formatting, and more
Leverage OpenAI GPT-5 to automatically generate intelligent, context-aware release notes. The AI analyzes commit messages, code diffs, and project context to create comprehensive changelogs that explain what changed and why.
Track detailed metrics for every release:
- Files Changed - Total modified files count
- Code Changes - Line additions and deletions
- Contributors - Active developers in the release
- Timeline - Days since last release
- Commit Analysis - Type breakdown (features, fixes, chores)
Advanced Conventional Commits parser that:
- Extracts multiple commit types from single commits
- Identifies breaking changes automatically
- Groups related changes intelligently
- Handles complex commit message formats
Provides AI with specialized tools:
- get_commit_details - Full commit context with statistics
- get_commit_diff - View actual code changes
- get_changed_files - Directory-grouped file listings
- get_commits_by_type - Filter by conventional commit type
- analyze_commit_impact - Assess change scope and impact
Smart version bumping based on:
- Commit message conventions
- Breaking change detection
- Manual version control via commit tags
- Supports patch, minor, and major releases
- Built with TypeScript 5.6 for type safety
- esbuild compilation (~180ms build time)
- Optimized for GitHub Actions runtime
- Minimal dependencies for fast execution
Send beautiful release notifications with:
- Embedded release information
- Contributor highlights
- Change summaries
- Direct GitHub release links
- Custom colors and formatting
Generate changelogs in any language:
- Support for English, Russian, Spanish, German, and more
- AI translates descriptive text naturally
- Preserves technical details (hashes, usernames, URLs)
- Maintains markdown formatting across languages
- Simply set
LANGUAGEparameter to your preferred locale
- Supports custom OpenAI endpoints
- Optional AI features (works without API key)
- Configurable branch protection
- Draft and pre-release options
Create .github/workflows/release.yml:
name: Automated Release on: push: branches: [main] workflow_dispatch: inputs: version_type: description: 'Version bump type' required: true type: choice options: - patch - minor - major default: 'patch' permissions: contents: write jobs: release: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 # Required for changelog generation - name: Auto Release with AI uses: zxcnoname666/release-helper@main with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} VERSION_TYPE: ${{ github.event.inputs.version_type }}Option A: Via Commit Message (Automatic)
git commit -m "feat: add awesome new feature !release: minor" git pushOption B: Via Manual Workflow (workflow_dispatch)
- Go to your repository on GitHub
- Click "Actions" → "Automated Release"
- Click "Run workflow"
- Select version type (patch/minor/major)
- Click "Run workflow"
The action will automatically:
- ✅ Analyze all commits since last release
- 🤖 Generate AI-powered changelog
- 📦 Create GitHub release with notes
- 🏷️ Tag version in git
- 🔔 Send Discord notification (if configured)
| Parameter | Description |
|---|---|
GITHUB_TOKEN | GitHub token for API access (automatic in Actions) |
| Parameter | Description |
|---|---|
VERSION_TYPE | Manual version bump type: patch, minor, or major (optional, for workflow_dispatch) |
Note: When using
workflow_dispatch, pass the version type viaVERSION_TYPEinput. When using commit-based releases, use!release: major/minor/patchin commit message.
| Parameter | Default | Description |
|---|---|---|
OPENAI_API_KEY | - | OpenAI API key for AI changelogs (optional) |
OPENAI_API_MODEL | gpt-4 | Model: gpt-5, gpt-4, o3, or custom |
OPENAI_API_BASE_URL | https://api.openai.com/v1 | Custom endpoint support |
LANGUAGE | en | Changelog language: en, ru, es, de, etc. |
| Parameter | Default | Description |
|---|---|---|
BUILD_COMMAND | - | Pre-release build command (optional) |
LINT_AND_TESTS_COMMAND | - | Testing command before release (optional) |
ASSET_PATTERNS | - | Glob patterns for release assets |
| Parameter | Default | Description |
|---|---|---|
ALLOWED_BRANCH | main | Branch allowed for releases |
DRAFT_RELEASE | false | Create as draft release |
PRERELEASE | false | Mark as pre-release |
DISCORD_WEBHOOK | - | Discord webhook URL for notifications |
- uses: zxcnoname666/release-helper@main with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}- uses: zxcnoname666/release-helper@main with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} OPENAI_API_MODEL: gpt-5 LANGUAGE: en # Changelog language (en, ru, es, de, etc.) BUILD_COMMAND: "npm run build" LINT_AND_TESTS_COMMAND: "npm test && npm run lint" ASSET_PATTERNS: "dist/**/*.zip dist/**/*.tar.gz" DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}- uses: zxcnoname666/release-helper@main with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # No OPENAI_API_KEY - uses conventional commits only- uses: zxcnoname666/release-helper@main with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} OPENAI_API_BASE_URL: "https://api.your-proxy.com/v1"Perfect for on-demand releases without commit message commands:
name: Manual Release on: workflow_dispatch: inputs: version_type: description: 'Version bump type' required: true type: choice options: - patch - minor - major default: 'patch' permissions: contents: write jobs: release: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Manual Release uses: zxcnoname666/release-helper@main with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} VERSION_TYPE: ${{ github.event.inputs.version_type }}Tip: Combine both triggers (
pushandworkflow_dispatch) in a single workflow to support both automatic and manual releases!
Generate changelogs in different languages:
# Russian changelog - uses: zxcnoname666/release-helper@main with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} LANGUAGE: ru # Spanish changelog - uses: zxcnoname666/release-helper@main with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} LANGUAGE: es # German changelog - uses: zxcnoname666/release-helper@main with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} LANGUAGE: deNote: Technical details (commit hashes, usernames, URLs) remain in their original form regardless of language.
Add release command to commit message:
# Patch release (0.0.x) - Bug fixes git commit -m "fix: resolve memory leak !release: patch" # Minor release (0.x.0) - New features git commit -m "feat: add user authentication !release: minor" # Major release (x.0.0) - Breaking changes git commit -m "feat!: redesign API endpoints !release: major"Follows Conventional Commits specification:
| Type | Description | Changelog Section |
|---|---|---|
feat: | New features | ✨ Features |
fix: | Bug fixes | 🐛 Bug Fixes |
docs: | Documentation | 📝 Documentation |
style: | Code style | 💄 Styles |
refactor: | Code refactoring | ♻️ Refactoring |
perf: | Performance improvements | ⚡ Performance |
test: | Test updates | ✅ Tests |
build: | Build system | 🏗️ Build |
ci: | CI configuration | 👷 CI |
chore: | Maintenance | 🔧 Chores |
Include multiple changes in one commit:
git commit -m "feat: add OAuth2 login fix: resolve session timeout issue docs: update authentication guide !release: minor"Generates:
- ✨ Features: add OAuth2 login
- 🐛 Bug Fixes: resolve session timeout issue
- 📝 Documentation: update authentication guide
The AI has access to specialized tools for comprehensive analysis:
Retrieves comprehensive commit information:
- Full commit message and metadata
- Author and timestamp
- Change statistics (+additions / -deletions)
- Parsed conventional commit types
- Breaking change indicators
Views actual code changes:
- File-by-file diff view
- Automatic truncation for large diffs
- Syntax-aware diff formatting
- Context preservation
Lists modified files:
- Grouped by directory structure
- Change type indicators (added/modified/deleted)
- File count statistics
- Path-based organization
Filters commits by type:
- Group by conventional commit type
- Feature/fix/chore separation
- Breaking change isolation
- Type-specific analysis
Assesses change scope:
- Impact level (minor/moderate/major)
- Affected system areas
- Breaking change detection
- Risk assessment
User triggers release → AI analyzes commits ↓ AI requests: get_commit_details("abc123") ↓ Returns: { message, stats, types, ... } ↓ AI requests: get_commit_diff("abc123") ↓ Returns: { files, additions, deletions } ↓ AI generates: Intelligent changelog with context This enables:
- ✅ Understanding full context of changes
- ✅ Intelligent grouping of related commits
- ✅ Highlighting important changes
- ✅ Explaining breaking changes with migration notes
- ✅ Generating accurate, helpful release notes
## What's Changed This release introduces OAuth2 authentication and resolves critical performance issues with the session management system. Breaking changes require updating client configurations. ### ✨ Features - **auth**: add OAuth2 support with multiple providers [`a1b2c3d`] by @developer - **api**: implement rate limiting middleware [`e4f5g6h`] by @contributor - **ui**: redesign login page with modern UI [`i7j8k9l`] by @designer ### 🐛 Bug Fixes - **core**: fix memory leak in session handler [`m1n2o3p`] by @maintainer - **api**: resolve timeout issues with large payloads [`q4r5s6t`] by @developer ### 💥 Breaking Changes - **auth**: OAuth2 migration requires updating client IDs in configuration - **api**: Rate limiting now requires API keys for all requests ### 📝 Documentation - **readme**: update authentication setup guide [`u7v8w9x`] by @writer --- ###### 📊 Release Statistics Files changed: 24 | Additions: 342 | Deletions: 156 | Days since last release: 7 Contributors: 4 | Commits: 15 **Full changes**: https://github.com/owner/repo/compare/1.0.0...1.1.0Rich embeds with release information:
- uses: zxcnoname666/release-helper@main with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}Sends notifications with:
- 🎉 Release version and type
- 📊 Commit count and contributors
- 📝 Files changed summary
⚠️ Breaking change warnings- 🔗 Direct link to GitHub release
src/ ├── index.ts # Main entry point and orchestration ├── types.ts # TypeScript type definitions ├── version.ts # Version management and SemVer operations ├── git.ts # Git operations (commits, diffs, stats) ├── commits.ts # Commit parsing and conventional commits ├── github.ts # GitHub API integration ├── ai.ts # AI integration and changelog generation ├── ai-tools.ts # Tool definitions for AI context ├── prompts.ts # AI system and user prompts └── utils.ts # Utility functions - Runtime: Node.js 20+ (ES Modules)
- Language: TypeScript 5.6 (strict mode)
- Build: esbuild (ultra-fast ~180ms)
- Commits: Conventional Commits parser
- AI: OpenAI API (GPT-5 support), Gemini, Claude
- CI/CD: GitHub Actions native
- Node.js 20+ (LTS recommended)
- pnpm package manager
- Git version control
# Clone repository git clone https://github.com/zxcnoname666/release-helper.git cd release-helper # Install dependencies pnpm install # Build project pnpm run build # Type checking pnpm run type-check # Watch mode (development) pnpm run devdist/ └── index.js # Bundled action (~180ms build time)| Project | Description |
|---|---|
| AI Code Review | AI-powered code review automation |
This project is licensed under the MIT License - see LICENSE file for details.
Contributions are welcome! Please feel free to submit issues or pull requests.
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing) - Commit changes (
git commit -m 'feat: add amazing feature') - Push to branch (
git push origin feature/amazing) - Open Pull Request
- 📫 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions
- ⭐ Star this repo if it helps you!
github-actions github-action release-automation ai-changelog changelog-generator semantic-versioning semver openai gpt-5 conventional-commits ci-cd devops automation typescript version-management release-notes ai-powered commit-parser discord-integration developer-tools
Made with ❤️ by zxcnoname666
⭐ Star this repo to support the project!
Report Bug • Request Feature • Documentation