vensas/Auto Changelog

AI-powered changelog generator using the GitHub Models API. Analyzes PR diffs and updates CHANGELOG.md files with Keep a Changelog-formatted entries.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
ai-api-keyGitHub Models API key (a PAT with models:read permission, or a GitHub Copilot token)yes
github-tokenGitHub token used to fetch linked issue details and post a PR comment. If omitted, no PR comment is posted.no
pr-numberPull request numberyes
pr-titlePull request titleyes
pr-bodyPull request body/description (used to extract closing-keyword issue references)no""
base-refBase branch name (e.g. main)yes
packagesJSON array of package configurations. Each entry must include: - name: Short identifier for the package (e.g. "frontend") - path: Relative path to the package root (e.g. "src/frontend") - changelogFile: Changelog filename inside that path (usually "CHANGELOG.md") - description: One-line description used as context for the AI - patterns: Array of regex patterns matching files that belong to this package Example: '[{"name":"api","path":"src/api","changelogFile":"CHANGELOG.md","description":"Node.js REST API","patterns":["^src/api/"]}]' yes
project-contextShort description of your project, included in the AI prompt for more accurate entriesno""
modelGitHub Models model identifier to use for generationnogpt-4.1
github-models-apiGitHub Models API endpoint URLnohttps://models.github.ai/inference/chat/completions
max-diff-charsMaximum number of characters from the per-package diff to send to the AIno8000
dry-runWhen "true", generates entries and prints them to the workflow summary without modifying any CHANGELOG.md filesnofalse
branch-refBranch name to commit and push changelog changes back to (e.g. github.event.pull_request.head.ref). If empty, files are updated but no commit is made.no""
commit-messageCommit message used when pushing generated changelog entriesnochore: update changelogs with AI-generated entries
namedescription
has-changes"true" if any CHANGELOG.md files were updated, "false" otherwise
updatesComma-separated list of packages updated with their version bump type (e.g. "frontend: minor, api: patch")
error-messageError message if changelog generation failed
generated-entryRaw markdown text of the generated changelog entries (set even in dry-run mode)
skipped"true" if the action was skipped due to bot-loop detection
committed"true" if a changelog commit was pushed to the branch
cleared"true" if the [Unreleased] sections were cleared because no source-file changes were detected