chore: pin changelog-action to the version that parses commit subjects only
[skip changelog]
Why
The release for #204 failed at "Finalize release version" with The first changelog entry does not match the release source, so v2.960.7 was never tagged: https://github.com/speakeasy-api/openapi-generation/actions/runs/42701453993/job/129447302255
The "Update CHANGELOG" step runs speakeasy-api/changelog-action, pinned to 40b363f. That version passes the full commit message to @conventional-commits/parser@0.4.1. The parser reads a body line made of a single word followed by an opening parenthesis, with the closing parenthesis on a later line, as a type(scope) token, and throws. The squash commit of #204 carries a multi-line Python call in its body, so the action logged it as [INVALID] and skipped it. The other commits in the range were docs: and ci:, which are excluded types, so no changelog entry was written and the finalize script rejected the changelog.
The "Conventional Commits" step uses a different parser, accepted the same commit, and computed v2.960.7. The two steps disagreed.
What changed
- Pin
speakeasy-api/changelog-actionto dc59e58 (speakeasy-api/changelog-action#1). It parses only the subject line for type, scope and subject, and detectsBREAKING CHANGEfooters with a regex over the full message. The action never used the parsed body for anything else, so changelog output is unchanged for commits that already parsed.
Testing
- Ran
@conventional-commits/parser@0.4.1on the three commits in the failed release range. Full message: the #204 commit throws. Subject only, as in dc59e58: it parses asfix(python), and the other two parse asdocsandci. - The workflow itself was not run. Merging this PR re-runs the release on
main; its range still contains the #204 commit, so the run should publish v2.960.7 with that entry.
Public-safety check
- This change contains no credentials, customer documents, private repository URLs, private filesystem paths, or unredacted private logs.
- Title, body, comments, and commit messages name no customers or customer-derived identifiers, private paths or trackers, or workflow provenance, and are understandable without private context (
.claude/skills/public-repo-communication/SKILL.md). - Generated fixtures and review SDK changes are public-safe.
- I reviewed
git diff --check.
Summary by cubic
Pins speakeasy-api/changelog-action to a version that parses only commit subjects, fixing the release that failed to tag v2.960.7. The old version passed the full commit message to the parser, which threw on a multi-line commit body, skipped that commit as [INVALID], and left the changelog empty so the finalize step rejected it. The new version detects BREAKING CHANGE footers with a regex and produces unchanged output for commits that already parsed.