chore(go): use vociferate for unreleased parsing

This commit is contained in:
Micheal Wilkinson
2026-03-21 14:25:27 +00:00
parent b7d1760beb
commit e625d475a5
3 changed files with 36 additions and 17 deletions

View File

@@ -147,9 +147,15 @@ runs:
-H "Content-Type: application/json" \
"$comments_url" >/dev/null
- name: Setup Go for vociferate
uses: actions/setup-go@v5
with:
go-version-file: ${{ github.action_path }}/../go.mod
- name: Extract changelog unreleased entries
id: extract-changelog
shell: bash
working-directory: ${{ github.action_path }}/..
env:
CHANGELOG: ${{ inputs.changelog }}
run: |
@@ -160,24 +166,10 @@ runs:
exit 0
fi
# Extract everything between [Unreleased] header and the next [X.Y.Z] header
unreleased="$(awk '
/^## \[Unreleased\]/ { in_unreleased=1; next }
/^## \[[0-9]+\.[0-9]+\.[0-9]+\]/ { if (in_unreleased) exit }
in_unreleased && NF { print }
' "$CHANGELOG")"
# Use a temporary file to handle multiline content
tmp_file=$(mktemp)
printf '%s' "$unreleased" > "$tmp_file"
# Read it back and set as output
delimiter="EOF_CHANGELOG"
printf '%s<<%s\n' "unreleased_entries<<$delimiter" "$delimiter" >> "$GITHUB_OUTPUT"
cat "$tmp_file" >> "$GITHUB_OUTPUT"
printf 'unreleased_entries<<%s\n' "$delimiter" >> "$GITHUB_OUTPUT"
go run ./cmd/vociferate --print-unreleased --root "$GITHUB_WORKSPACE" --changelog "$CHANGELOG" >> "$GITHUB_OUTPUT"
printf '%s\n' "$delimiter" >> "$GITHUB_OUTPUT"
rm -f "$tmp_file"
- name: Validate changelog gate
id: changelog-gate