The heredoc Python sat at column 0 inside the run: block, so every consumer failed with "yaml: line 93: could not find expected ':'". scripts/generate_notes.py ships with the action and covers it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
89 lines
2.7 KiB
YAML
89 lines
2.7 KiB
YAML
name: 'LLM Release Notes Generator'
|
|
description: 'Generate concise Markdown release notes from git commits using OmniRoute or OpenAI-compatible endpoints'
|
|
author: 'Ricardo Mancinas'
|
|
|
|
inputs:
|
|
api_key:
|
|
description: 'API key for OmniRoute or OpenAI-compatible endpoint'
|
|
required: false
|
|
default: ''
|
|
base_url:
|
|
description: 'API Base URL'
|
|
required: false
|
|
default: 'https://omni.freakma.com/v1'
|
|
model:
|
|
description: 'Model ID to query'
|
|
required: false
|
|
default: 'auto/fast'
|
|
version:
|
|
description: 'Target release version (e.g. 1.8.0)'
|
|
required: false
|
|
default: ''
|
|
from_ref:
|
|
description: 'Starting ref/tag for commit range (defaults to auto-detected previous tag)'
|
|
required: false
|
|
default: ''
|
|
to_ref:
|
|
description: 'Ending ref for commit range'
|
|
required: false
|
|
default: 'HEAD'
|
|
tag_pattern:
|
|
description: 'Tag pattern to match for previous release (e.g. v*)'
|
|
required: false
|
|
default: 'v*'
|
|
max_commits:
|
|
description: 'Maximum commits to inspect if no tag range found'
|
|
required: false
|
|
default: '50'
|
|
fallback_notes:
|
|
description: 'Fallback release notes if LLM call fails or API key is absent'
|
|
required: false
|
|
default: 'Maintenance updates and performance improvements.'
|
|
timeout:
|
|
description: 'API request timeout in seconds'
|
|
required: false
|
|
default: '25'
|
|
temperature:
|
|
description: 'Sampling temperature for generation'
|
|
required: false
|
|
default: '0.2'
|
|
system_prompt:
|
|
description: 'Custom system prompt override'
|
|
required: false
|
|
default: ''
|
|
save_to_file:
|
|
description: 'Optional file path to write release notes to'
|
|
required: false
|
|
default: ''
|
|
|
|
outputs:
|
|
notes:
|
|
description: 'Generated markdown release notes'
|
|
value: ${{ steps.generate.outputs.notes }}
|
|
notes_file:
|
|
description: 'Path to saved release notes file'
|
|
value: ${{ steps.generate.outputs.notes_file }}
|
|
|
|
runs:
|
|
using: 'composite'
|
|
steps:
|
|
- name: Generate Release Notes
|
|
id: generate
|
|
shell: bash
|
|
env:
|
|
INPUT_API_KEY: ${{ inputs.api_key }}
|
|
INPUT_BASE_URL: ${{ inputs.base_url }}
|
|
INPUT_MODEL: ${{ inputs.model }}
|
|
INPUT_VERSION: ${{ inputs.version }}
|
|
INPUT_FROM_REF: ${{ inputs.from_ref }}
|
|
INPUT_TO_REF: ${{ inputs.to_ref }}
|
|
INPUT_TAG_PATTERN: ${{ inputs.tag_pattern }}
|
|
INPUT_MAX_COMMITS: ${{ inputs.max_commits }}
|
|
INPUT_FALLBACK_NOTES: ${{ inputs.fallback_notes }}
|
|
INPUT_TIMEOUT: ${{ inputs.timeout }}
|
|
INPUT_TEMPERATURE: ${{ inputs.temperature }}
|
|
INPUT_SYSTEM_PROMPT: ${{ inputs.system_prompt }}
|
|
INPUT_SAVE_TO_FILE: ${{ inputs.save_to_file }}
|
|
run: |
|
|
python3 "${{ github.action_path }}/scripts/generate_notes.py"
|