duyet/LLM Release Action
Generate AI release notes (GitHub Copilot → GitHub Models → AnyRouter fallback) with deterministic recap stats, a Docker-pull/Dockerfile block, a compare link, and an optional paste-able migration prompt — then publish them to the GitHub Release. Shared release logic for duyet's repos.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jun 18, 2026
- License
- MIT
Pinned Snippet
uses: duyet/llm-release-action@c093cf84e48929399c06a047c566558177334261 # no releases — HEAD as of 2026-07-11tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| release-tag | Release tag to build notes for, e.g. v0.3.0. | yes | — |
| previous-tag | Previous tag for the compare link. Auto-detected from git when empty. | no | "" |
| project-name | Human project name used in the default notes prompt and attribution. Defaults to the repo name. | no | "" |
| notes-prompt-file | Path to a repo-local release-notes prompt template. Falls back to the bundled generic template. | no | "" |
| system-prompt-file | Path to a repo-local system prompt. Falls back to the bundled generic system prompt. | no | "" |
| migration-prompt-file | Path to a repo-local migration prompt appended on breaking/non-patch releases. | no | "" |
| migration | Whether to append the migration prompt: auto | true | false. | no | auto |
| copilot-model | Model id for the GitHub Copilot tier. | no | openai/gpt-4o |
| models-model | Model id for the GitHub Models tier. | no | openai/gpt-4o |
| anyrouter-api-key | AnyRouter API key. The AnyRouter tier only runs when this is set. | no | "" |
| anyrouter-endpoint | AnyRouter OpenAI-compatible endpoint. | no | https://anyrouter.dev/api/v1 |
| anyrouter-model | Model id for the AnyRouter fallback tier. | no | openai/gpt-4o-mini |
| anyrouter-source | AnyRouter app-attribution source slug (X-AnyRouter-Source). Defaults to project-name. | no | "" |
| anyrouter-title | AnyRouter app-attribution title (X-AnyRouter-Title). Defaults to project-name. | no | "" |
| anyrouter-categories | AnyRouter app-attribution category (X-AnyRouter-Categories). | no | programming-app |
| docker-image | Primary published image, e.g. ghcr.io/duyet/<repo>. Enables the Docker section when set. | no | "" |
| docker-extra-image | Optional second image name for the Docker section. | no | "" |
| docker-version | Image tag for the Docker section. Defaults to the release tag without the leading v. | no | "" |
| publish | When true, create/update the GitHub Release body with the generated notes. | no | true |
| github-token | Token for gh CLI (recap API + release publish). | no | ${{ github.token }} |
Outputs
| name | description |
|---|---|
| notes-file | Path to the generated release-notes.md. |
| ai-provider | Which LLM tier produced the summary (copilot | github-models | anyrouter | empty). |
| migration | Whether a migration section was appended (true/false). |
| previous-tag | The resolved previous tag. |
| range | The resolved commit range. |