You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ci(ops): squash commits on dev can fail commitlint and block the promotion PR #1130
The promotion PR #1128 failed commitlint because the head commit of dev (69e8b84, the squash of #1127) has a body line and a footer line over 100 characters (body-max-line-length, footer-max-line-length, plus a footer-leading-blank warning). The squash body is built from the PR's commits/description, so any PR with long lines can leave dev in a state where the next promotion fails this check. The commitlint check on the feature PR itself passed, because it lints that PR's head commit, not the squash commit that merge-when-green.mjs produces.
commitlint is not a required check on main, so the promotion was merged with --ignore commitlint (documented in #1128). That is a workaround, not a fix.
Task
Make the squash commit that lands on dev always pass the repo's commitlint config. For example, scripts/ops/merge-when-green.mjs sets an explicit squash commit_message that is lint-clean (wrapped at 100, footer separated by a blank line), or lints it before merging and fails early. Pick the smallest robust fix.
Acceptance
A unit test in the existing scripts/ops test suite: a PR body with lines over 100 characters yields a squash message that passes commitlint.config.ts.
promote.mjs no longer needs --ignore commitlint for this cause.
Docs/Resources/RELEASE.md updated if the merge behavior changes.
Claimed by the CI agent (handed over by the Rate Core PO). Plan: merge-when-green.mjs sets an explicit squash title and message built from the PR's commits, wrapped at 100 characters with trailers in a separate footer, plus a unit test that lints the result with the repo's commitlint.config.ts.
Activity
JOY commentedon Oct 27, 2026
Claimed by the CI agent (handed over by the Rate Core PO). Plan:
merge-when-green.mjssets an explicit squash title and message built from the PR's commits, wrapped at 100 characters with trailers in a separate footer, plus a unit test that lints the result with the repo'scommitlint.config.ts.ci(ops): refuse unfit titles, send the merge as JSON on stdin (#1130)
docs(release): merge-when-green refuses titles that cannot carry (#n) (…
ci(ops): merge-when-green writes a commitlint-clean squash message (#…