nosovj/LLM Release Action
Analyze commits, suggest semantic version bumps, and generate multi-audience changelogs using LLM via LiteLLM.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jun 2, 2026
- License
- MIT
Pinned Snippet
uses: nosovj/llm-release-action@b476a0e5d15715559c92234bf8c3df0b7a72340f # v1.4.0tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| model | Default LiteLLM model string (e.g., anthropic/claude-3-haiku-20240307) | yes | — |
| model_analysis | Optional model for Phase 1 semantic analysis. Falls back to model if not set. | no | "" |
| model_changelog | Optional model for Phase 2 changelog generation. Falls back to model if not set. | no | "" |
| current_version | Current version to compare from. Auto-detects from latest semver tag if not provided. | no | — |
| head_ref | Head ref to compare to | no | HEAD |
| include_diffs | File patterns to include in diff analysis (comma-separated) | no | **/openapi*.yaml,**/migrations/**,**/*.proto |
| max_commits | Maximum recent commits to include in full | no | 50 |
| temperature | LLM temperature (0.0-2.0) | no | 0.2 |
| max_tokens | Maximum tokens in LLM response | no | 4000 |
| timeout | Request timeout in seconds | no | 120 |
| debug | Enable verbose debug logging | no | false |
| dry_run | Perform analysis without suggesting version | no | false |
| content_override | Markdown content for multi-repo analysis (bypasses git). Format: ## Repo\n### Features\n- item. See README. | no | "" |
| changelog_config | YAML config for audiences. Format: {audience: {preset, languages, tone, ...}}. Presets: developer, customer, executive, marketing, security, ops. See README. | no | "" |
| validate_injections | Prompt injection validation mode. "pattern" = regex only (default), "both" = pattern + LLM, "llm" = LLM only, "none" = disabled | no | pattern |
| validation_model | Optional model for injection validation LLM checks. Falls back to model if not set. | no | "" |
| context_files | Comma-separated file patterns for project context (gitignore-style, supports negation). Examples: "README.md", "README.md,docs/API.md", "**/README.md,!**/node_modules/**" | no | "" |
| context_max_tokens | Maximum tokens for context content (increase for large-context models like Claude or GPT-4) | no | 800 |
| analyze_diffs | Enable diff analysis step to extract structured changes from file diffs | no | false |
| diff_exclude_patterns | Comma-separated gitignore-style patterns for files to exclude from diff analysis | no | **/*.lock,**/package-lock.json,**/yarn.lock,**/Cargo.lock,**/poetry.lock,**/vendor/**,**/node_modules/**,**/*.generated.*,**/generated/**,**/*.min.js,**/*.min.css |
| diff_max_files | Maximum number of files to include in diff analysis | no | 50 |
| diff_max_total_lines | Maximum total lines of diff content to analyze | no | 5000 |
Outputs
| name | description |
|---|---|
| bump | Bump type (major, minor, patch) |
| current_version | The version compared from |
| next_version | Calculated next semantic version |
| changelogs | JSON object with changelogs: {audience: {language: markdown}}. Default: {default: {en: "..."}}. See README for schema. |
| metadata | JSON object with release metadata per audience and language: {audience: {language: {title, summary, highlights}}} |
| changes | JSON array of structured changes from Phase 1 analysis |
| stats | JSON object with change statistics: {features, fixes, breaking, contributors, ...} |
| breaking_changes | JSON array of detected breaking changes |
| reasoning | LLM reasoning for the version suggestion |
| usage | JSON object with LLM usage statistics: {total_calls, total_tokens, total_latency_ms, phase1_tokens, phase2_tokens, ...} |
| warnings | JSON array of warning messages (staleness, truncation, etc.) |