π€ AI-powered release notes generation using SmoothDev.
- AI-Generated Release Notes: Automatically generate comprehensive release notes between tags
- GitHub Release Integration: Optionally create/update GitHub releases directly
- Multiple Output Formats: Text, JSON, or Keep a Changelog format
- Smart Tag Detection: Auto-detects previous tag if not specified
- Draft & Prerelease Support: Create draft or prerelease GitHub releases
name: Release Notes
on:
push:
tags:
- 'v*'
jobs:
release-notes:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Required for tag history
- uses: smoothdev-io/release-notes-action@v1
with:
api_key: ${{ secrets.SMOOTHDEV_API_KEY }}- uses: smoothdev-io/release-notes-action@v1
with:
api_key: ${{ secrets.SMOOTHDEV_API_KEY }}
push_to_github: true
release_tag: ${{ github.ref_name }}- uses: smoothdev-io/release-notes-action@v1
with:
api_key: ${{ secrets.SMOOTHDEV_API_KEY }}
from_tag: v1.0.0
to_tag: v1.1.0- uses: smoothdev-io/release-notes-action@v1
id: notes
with:
api_key: ${{ secrets.SMOOTHDEV_API_KEY }}
- name: Use release notes
run: |
echo "${{ steps.notes.outputs.release_notes }}"- uses: smoothdev-io/release-notes-action@v1
with:
api_key: ${{ secrets.SMOOTHDEV_API_KEY }}
output_format: changelog| Input | Description | Required | Default |
|---|---|---|---|
api_key |
SmoothDev API key | Yes | - |
from_tag |
Starting tag/ref | No | Auto |
to_tag |
Ending tag/ref | No | HEAD |
output_format |
Output format: text, json, or changelog | No | text |
push_to_github |
Create/update GitHub release | No | false |
release_tag |
Release tag (required if push_to_github=true) | No | - |
release_name |
Release name override | No | - |
draft |
Create as draft release | No | false |
prerelease |
Mark as prerelease | No | false |
use_ai_gateway |
Use AI Gateway instead of REST API | No | false |
cli_version |
Specific smooth-cli version to install | No | Latest |
| Output | Description |
|---|---|
release_notes |
Generated release notes |
Sign up at smoothdev.io and generate an API key from your dashboard.
Add your API key as a repository secret:
- Go to your repository β Settings β Secrets and variables β Actions
- Click "New repository secret"
- Name:
SMOOTHDEV_API_KEY - Value: Your SmoothDev API key
Create .github/workflows/release.yml with the usage example above.
This action requires the following permissions:
permissions:
contents: write # Required if push_to_github is truename: Release
on:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: smoothdev-io/release-notes-action@v1
with:
api_key: ${{ secrets.SMOOTHDEV_API_KEY }}
push_to_github: true
release_tag: ${{ github.ref_name }}
release_name: "Release ${{ github.ref_name }}"- uses: smoothdev-io/release-notes-action@v1
with:
api_key: ${{ secrets.SMOOTHDEV_API_KEY }}
push_to_github: true
release_tag: ${{ github.ref_name }}
draft: true- uses: smoothdev-io/release-notes-action@v1
with:
api_key: ${{ secrets.SMOOTHDEV_API_KEY }}
push_to_github: true
release_tag: ${{ github.ref_name }}
prerelease: ${{ contains(github.ref_name, '-beta') || contains(github.ref_name, '-rc') }}Apache License 2.0 - see LICENSE for details.