Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

PR Title Check

Lints the pull request title against commitlint, using the config in .github/commitlint/. It runs on a pull request opened, reopened, synchronized, edited or milestoned, and on the merge queue.

It lints the title, not the individual commits: release-please squash-merges, so the pull request title becomes the final commit message and is the thing that has to parse as a conventional commit. wagoid/commitlint-github-action lints commit messages instead, which is why it is not a drop-in replacement for the step here.

milestoned is in the trigger list as a workaround for release-please not triggering pull request workflows – adding its pull request to a milestone is what gets the check to run.

Under merge_group there is no pull request to read, so every step is skipped and the job reports success. That is deliberate: title_check is a required status check, so the merge queue has to see a result on the merge_group ref too, and the title was already linted on the pull request that got queued.

Dependabot gets .commitlintrc.dependabot.yaml, the same config with header-max-length turned off. It cannot shorten a module path, and ten of the modules in go.mod overflow a 100-character title. Skipping the job for Dependabot instead would leave title_check without a result, and that is a required check on main. See choice-dependabot-title-length.