Skip to content

splitMessages does not strip bullet prefix from GitHub squash merge COMMIT_MESSAGES format #2698

@tyrantkhan

Description

@tyrantkhan

Describe the bug

When using GitHub's squash merge with squash_merge_commit_message: COMMIT_MESSAGES, GitHub formats each commit in the squash body with a * (markdown bullet) prefix. splitMessages does not strip this prefix, so only the squash commit title is parsed as a conventional commit — the body entries are silently ignored.

This means multi-commit PRs with different conventional commit types (e.g. feat + fix) only produce one changelog entry (from the PR title), even though release-please documents support for multiple conventional commits in a single commit.

Expected behavior

Given a squash merge commit with this body:

feat: #37 test release-please without bullet prefix

* fix: #37 add inline comment to repo URL

* feat: #37 add comment to update check

Release-please should parse all three conventional commits and produce both a Features and Bug Fixes section in the changelog.

Actual behavior

Only the commit title (feat: ...) is parsed. The * fix: ... and * feat: ... entries in the body are ignored because the * prefix prevents the splitMessages regex from matching:

/\r?\n\r?\n(?=(?:feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert)(?:\(.*?\))?: )/

Reproduction

I verified this with two PRs on the same repo (tyrantkhan/bitbucket-cli):

Test 1 — with * bullets (fails):

  • PR #35 squash merged as commit a0f187a
  • Squash commit body contained * fix: ... and * feat: ... (GitHub's default COMMIT_MESSAGES format)
  • Release-please changelog: only Features (from PR title)

Test 2 — without * bullets (works):

  • PR #38 squash merged as commit 59b2219
  • Squash commit body had * prefixes manually removed and blank line separation added
  • Release-please changelog: both Features and Bug Fixes appeared

Result: Release PR #36 shows both entries from the manually edited commit, but only the title entry from the default GitHub format.

Environment

  • release-please version: 17.3.0 (also tested on 17.1.3 via release-please-action@v4)
  • GitHub repo setting: squash_merge_commit_message: COMMIT_MESSAGES, squash_merge_commit_title: COMMIT_OR_PR_TITLE

Context

Suggested fix

Strip leading * or - from lines before applying the splitMessages regex, or update the regex lookahead to optionally match a bullet prefix:

/\r?\n\r?\n(?=\*?\s*(?:feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert)(?:\(.*?\))?: )/

Metadata

Metadata

Assignees

Labels

priority: p3Desirable enhancement or fix. May not be included in next release.type: feature request‘Nice-to-have’ improvement, new feature or different behavior or design.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions