Examples¶
Latest release¶
Explicit release tags¶
First release without tags¶
The root commit is included automatically.
Preview Markdown¶
JSON for another tool¶
gptchangelog generate --dry-run --format json > release.json
gh release create "$(jq -r .version release.json)" \
--notes-file <(jq -r .changelog release.json)
Another repository¶
Relative output paths are resolved against the target repository, not the caller's process directory.
Quality profile¶
Balanced generation uses gpt-5.6-terra; quality generation uses gpt-5.6-sol.
French and Spanish¶
gptchangelog generate --language fr --output CHANGELOG.fr.md
gptchangelog generate --language es --output CHANGELOG.es.md
Inspect the output contract¶
GitHub Actions¶
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- run: pip install gptchangelog
- name: Generate changelog
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: |
PREVIOUS_TAG="$(git describe --tags --abbrev=0 HEAD^)"
gptchangelog generate \
--since "$PREVIOUS_TAG" \
--to "$GITHUB_SHA" \
--output RELEASE_NOTES.md \
--ui plain
Diagnose a failure¶
Invalid Git ranges, authentication failures, schema violations, and file-write errors all return nonzero exit codes.