Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ below and to the page that documents the feature properly.

| Version | What changed | Documented in |
|---|---|---|
| [2.19.5](#v2195) | GitHub merge queue branches accepted by default; aider's default co-author trailer recognised; exit 2 when git cannot read the repository | [CC201](rules.md#cc201) · [CC013](rules.md#cc013) · [Exit codes](troubleshoot.md#exit-codes) |
| [2.19.4](#v2194) | `agents/` branches accepted by default; Cursor's `Made-with: Cursor` trailer recognised | [CC201](rules.md#cc201) · [CC013](rules.md#cc013) |
| [2.19.3](#v2193) | A quoted `"false"` for a true/false setting refused instead of read as true | [Every option](configuration.md#every-option) |
| [2.19.2](#v2192) | Copilot coding agent commits recognised; config values of the wrong type refused; commit text printed inert | [CC013](rules.md#cc013) · [Every option](configuration.md#every-option) · [Color and links](example.md#color-and-links) |
Expand All @@ -35,6 +36,36 @@ below and to the page that documents the feature properly.
| [2.5.0](#v250) | Organization-wide config with `inherit_from` | [Across an organization](guides/organization.md) |
| [2.0.0](#v200) | Configuration moved from YAML to TOML — breaking | [Migrating from v1](migration.md) |

## v2.19.5 (2026-11-04) { #v2195 }

### Fixed

* **GitHub merge queue branches are accepted by default** — the merge queue
runs its `merge_group` checks on a branch it creates,
`gh-readonly-queue/<base>/pr-<N>-<sha>`, and [CC201](rules.md#cc201)
rejected it. A repository with a merge queue and Commit Check as a required
check failed every queue entry. The name is now accepted next to `main`,
`master`, `develop`, `HEAD` and `PR-*`, whatever `allow_branch_types` or
`allow_branch_names` say.
See PR [#653](https://github.com/commit-check/commit-check/pull/653).

* **[CC013](rules.md#cc013)–[CC016](rules.md#cc016) recognise aider's default
co-author trailer** — since v0.85 aider adds
`Co-authored-by: aider (<model>) <aider@aider.chat>` to every commit, and the
model in parentheses kept it from matching, so `forbid` and `disclose` let
it through. It is now matched by its address, whatever model it names, and
under `disclose` the correction is `Assisted-by: aider (<model>)`.
See PR [#652](https://github.com/commit-check/commit-check/pull/652).

* **A directory git cannot read stops the run with exit 2** — outside a
repository, or in one git refuses for "dubious ownership" (common in
containers and on self-hosted agents), every check was skipped and the run
exited 0, so CI went green without checking anything. Now git's own reason
is printed, including its `safe.directory` hint, and the run exits 2. A
piped or file message, and a repository with no commits yet, work as before.
See PR [#654](https://github.com/commit-check/commit-check/pull/654) and
[Exit codes](troubleshoot.md#exit-codes).

## v2.19.4 (2026-10-29) { #v2194 }

### Changed
Expand Down
2 changes: 1 addition & 1 deletion docs/compare/tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Replace the hook:
```yaml title=".pre-commit-config.yaml"
repos:
- repo: https://github.com/commit-check/commit-check
rev: v2.19.4
rev: v2.19.5
hooks:
- id: check-message
```
Expand Down
4 changes: 2 additions & 2 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -274,7 +274,7 @@ Used from a hook definition, with no config file anywhere in the repository:
```yaml title=".pre-commit-config.yaml"
repos:
- repo: https://github.com/commit-check/commit-check
rev: v2.19.4
rev: v2.19.5
hooks:
- id: check-message
args:
Expand Down Expand Up @@ -406,7 +406,7 @@ the same thing twice, so read the description rather than the cell:
| branch | conventional_branch | bool | true | Enforce Conventional Branch specification. |
| branch | allow_branch_types | list[str] | ["feature", "bugfix", "hotfix", "release", "chore", "feat", "fix", "build", "ci", "docs", "perf", "refactor", "style", "test", "ai", "claude", "codex", "copilot", "cursor", "agents", "dependabot", "renovate"] | Allowed branch types when `conventional_branch` is true. The default is a superset of the [Conventional Branch spec](https://conventionalbranch.org/): the spec's types (`feature`, `bugfix`, `hotfix`, `release`, `chore`, their aliases `feat` and `fix`, and the AI agent prefixes `ai`, `claude`, `codex`, `copilot`, `cursor`) plus the other Conventional Commit types (`build`, `ci`, `docs`, `perf`, `refactor`, `style`, `test`), `agents` (the prefix VS Code's Agents window uses) and bot prefixes (`dependabot`, `renovate`). For strict spec-only validation, set this option explicitly to the spec's types; [CC201](rules.md#cc201) has the full config. |
| branch | require_description_grammar | bool | false | Also hold the description after `<type>/` to the Conventional Branch grammar: lowercase letters and digits, words joined by single hyphens, dots only inside a word. Off by default, because bot branches such as `dependabot/npm_and_yarn/lodash-4.17.21` do not follow it. See [CC201](rules.md#cc201). |
| branch | allow_branch_names | list[str] | [] (empty list) | Additional standalone branch names allowed when conventional_branch is true (e.g., ["staging", "production"]). By default, main, master, develop, HEAD, and PR-* are always allowed. |
| branch | allow_branch_names | list[str] | [] (empty list) | Additional standalone branch names allowed when conventional_branch is true (e.g., ["staging", "production"]). By default, main, master, develop, HEAD, PR-* and gh-readonly-queue/* (GitHub merge queue branches) are always allowed. |
| branch | require_rebase_target | str | "" (no requirement) | Target branch for rebase requirement. If not set, no rebase validation is performed. |
| push | allow_force_push | bool | true | Allow force pushes. Set to `false` to block force pushes when used as a pre-push hook or with `--no-force-push`. |
| branch | ignore_authors | list[str] | [] (none ignored) | List of authors to ignore (i.e., always allow). |
Expand Down
6 changes: 3 additions & 3 deletions docs/example.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,8 +112,8 @@ $ commit-check --branch
```

Runs [CC201](rules.md#cc201), and [CC202](rules.md#cc202) if
`require_rebase_target` is set. `main`, `master`, `develop`, `HEAD` and `PR-*` are
always accepted; everything else needs a `<type>/<description>` shape:
`require_rebase_target` is set. `main`, `master`, `develop`, `HEAD`, `PR-*` and
`gh-readonly-queue/*` (GitHub merge queue branches) are always accepted; everything else needs a `<type>/<description>` shape:

```text
fix/empty-config-crash
Expand Down Expand Up @@ -162,7 +162,7 @@ pushed:
```yaml title=".pre-commit-config.yaml"
repos:
- repo: https://github.com/commit-check/commit-check
rev: v2.19.4
rev: v2.19.5
hooks:
- id: check-no-force-push
stages: [pre-push]
Expand Down
6 changes: 3 additions & 3 deletions docs/guides/pre-commit.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Add Commit Check to `.pre-commit-config.yaml`:
```yaml title=".pre-commit-config.yaml"
repos:
- repo: https://github.com/commit-check/commit-check
rev: v2.19.4
rev: v2.19.5
hooks:
- id: check-message
- id: check-branch
Expand Down Expand Up @@ -68,7 +68,7 @@ Options can be passed as hook arguments, which keeps everything in one file:
```yaml title=".pre-commit-config.yaml"
repos:
- repo: https://github.com/commit-check/commit-check
rev: v2.19.4
rev: v2.19.5
hooks:
- id: check-message
args:
Expand All @@ -90,7 +90,7 @@ colon, and lets the commit through:
```yaml title=".pre-commit-config.yaml"
repos:
- repo: https://github.com/commit-check/commit-check
rev: v2.19.4
rev: v2.19.5
hooks:
- id: check-message
args: [--fix]
Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -428,7 +428,7 @@ conventional_branch = <span class="cc-t-pass">true</span></div>
<li><b>160+</b><span>repositories run the Action</span></li>
<li><b>Apache</b><span>allowlists the Action for its projects' CI</span></li>
</ul>
<p class="cc-users"><span>In the CI of</span><a href="https://github.com/apache">Apache</a><a href="https://github.com/TexasInstruments">Texas Instruments</a><a href="https://github.com/mila-iqia">Mila</a><a href="https://github.com/istio-ecosystem">Istio Ecosystem</a><a href="https://github.com/OpenDriveLab">OpenDriveLab</a><a href="https://github.com/commit-check/commit-check-action/network/dependents">and more →</a></p>
<p class="cc-users"><span>In the CI of</span><a href="https://github.com/apache">Apache</a><a href="https://github.com/freebsd">FreeBSD</a><a href="https://github.com/TexasInstruments">Texas Instruments</a><a href="https://github.com/mila-iqia">Mila</a><a href="https://github.com/istio-ecosystem">Istio Ecosystem</a><a href="https://github.com/OpenDriveLab">OpenDriveLab</a><a href="https://github.com/commit-check/commit-check-action/network/dependents">and more →</a></p>
</div>
</section>

Expand Down
3 changes: 2 additions & 1 deletion docs/rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -802,7 +802,8 @@ Checks that the current branch name follows the
[Conventional Branch](https://conventionalbranch.org/) specification:
`<type>/<description>`.

`main`, `master`, `develop`, `HEAD`, and `PR-*` are always accepted.
`main`, `master`, `develop`, `HEAD`, `PR-*`, and the `gh-readonly-queue/*`
branches GitHub's merge queue creates are always accepted.

By default only the type is checked, and any description after the `/` is
accepted. With `require_description_grammar` the description has to follow
Expand Down
2 changes: 1 addition & 1 deletion docs/troubleshoot.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ broken policy from a bad commit. Commit Check keeps them apart:
|---|---|
| `0` | Every enforced check passed, or every check was skipped. |
| `1` | A check failed. This is a verdict on the commit. |
| `2` | The run could not start, so nothing was validated: bad usage, a `--rev` that does not resolve, a setting whose regex does not compile or whose value has the wrong type, or a config file that is missing, is not valid TOML, or names an unknown rule. |
| `2` | The run could not start, so nothing was validated: bad usage, a `--rev` that does not resolve, a directory git cannot read as a repository (not a repository, or refused for dubious ownership), a setting whose regex does not compile or whose value has the wrong type, or a config file that is missing, is not valid TOML, or names an unknown rule. |

A configuration error names the file it came from:

Expand Down