A GitHub Action to generate user-friendly release notes for app stores in multiple languages using OpenAI.
This action automatically transforms technical GitHub release notes into consumer-friendly descriptions suitable for app stores. It uses OpenAI's GPT models to:
- Extract key features, improvements, and bug fixes from your technical release notes
- Rewrite them in a user-friendly, concise format
- Translate them into multiple languages (configurable)
- Ensure they stay within character limits required by app stores
Add this to your GitHub workflow file:
name: Generate App Store Release Notes
on:
release:
types: [published]
jobs:
generate-release-notes:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v3
- name: Generate App Store Release Notes
id: release_notes
uses: Accord-Software/release-notes-generator@v2
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
openai_api_key: ${{ secrets.OPENAI_API_KEY }}
- name: Display Generated Release Notes
run: |
echo "English Release Notes:"
echo "${{ steps.release_notes.outputs.en_release_notes }}"| Input | Description | Required | Default |
|---|---|---|---|
github_token |
GitHub token for accessing release information | Yes | N/A |
openai_api_key |
OpenAI API key | Yes | N/A |
release_tag |
The tag of the release to generate notes for | No | latest |
max_length |
Maximum character length for release notes | No | 500 |
| Output | Description |
|---|---|
en_release_notes |
Release notes in English |
sv_release_notes |
Release notes in Swedish |
fr_release_notes |
Release notes in French |
For complete workflow examples, check the workflow file in this repository: .github/workflows/release-notes.yml
This workflow includes:
- Automatic generation of release notes when a release is published
- Manual triggering with a specific release tag
- Saving the generated notes as release assets
You can use this workflow as a template for your own projects.
- The action fetches release information from GitHub using the specified release tag
- It extracts the release notes from the release body
- The notes are sent to OpenAI's API to generate user-friendly versions
- The AI rewrites the technical notes in a friendly, concise format suitable for end users
- The notes are also translated into Swedish and French
- The results are provided as outputs that can be used in your workflow
You can also use the release notes generator directly from the command line:
# Set your OpenAI API key as an environment variable
export OPENAI_API_KEY=your-api-key-here
# Run the CLI
node cli.jsThen follow the prompts to enter your release notes and specify the maximum length.
- An OpenAI API key is required. You can obtain one from OpenAI's platform.
- Store your OpenAI API key as a secret in your GitHub repository.
MIT
Contributions are welcome! Please feel free to submit a Pull Request.