name: 'Generate Changelog' description: 'Generate a changelog from git history between two tags, grouped by conventional commit types' inputs: tag: description: 'The current release tag' required: true default: ${{ github.ref_name }} previous-tag: description: 'Override for previous tag (auto-detected if omitted)' required: false default: '' categories: description: 'JSON mapping of commit prefixes to section headers' required: false default: '{"feat": "✨ Features", "fix": "🐛 Bug Fixes", "refactor": "♻️ Refactoring", "chore": "🔧 Chores"}' outputs: changelog: description: 'The generated changelog markdown' value: ${{ steps.changelog.outputs.changelog }} runs: using: composite steps: - name: Generate changelog id: changelog shell: bash env: INPUT_TAG: ${{ inputs.tag }} INPUT_PREVIOUS_TAG: ${{ inputs.previous-tag }} INPUT_CATEGORIES: ${{ inputs.categories }} run: ${{ github.action_path }}/generate-changelog.sh