diff --git a/docs/changelog.md b/docs/changelog.md index 30c2455..85bdf0a 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -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) | @@ -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//pr--`, 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 () ` 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 ()`. + 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 diff --git a/docs/compare/tools.md b/docs/compare/tools.md index c6a76e5..7926ad5 100644 --- a/docs/compare/tools.md +++ b/docs/compare/tools.md @@ -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 ``` diff --git a/docs/configuration.md b/docs/configuration.md index 3791fcb..24f814b 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -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: @@ -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 `/` 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). | diff --git a/docs/example.md b/docs/example.md index 11d20bd..89d2739 100644 --- a/docs/example.md +++ b/docs/example.md @@ -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 `/` 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 `/` shape: ```text fix/empty-config-crash @@ -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] diff --git a/docs/guides/pre-commit.md b/docs/guides/pre-commit.md index 5142c86..58ec09b 100644 --- a/docs/guides/pre-commit.md +++ b/docs/guides/pre-commit.md @@ -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 @@ -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: @@ -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] diff --git a/docs/index.md b/docs/index.md index 4e3eb7d..b391280 100644 --- a/docs/index.md +++ b/docs/index.md @@ -428,7 +428,7 @@ conventional_branch = true
  • 160+repositories run the Action
  • Apacheallowlists the Action for its projects' CI
  • -

    In the CI ofApacheTexas InstrumentsMilaIstio EcosystemOpenDriveLaband more →

    +

    In the CI ofApacheFreeBSDTexas InstrumentsMilaIstio EcosystemOpenDriveLaband more →

    diff --git a/docs/rules.md b/docs/rules.md index c3f78ba..c7ea444 100644 --- a/docs/rules.md +++ b/docs/rules.md @@ -802,7 +802,8 @@ Checks that the current branch name follows the [Conventional Branch](https://conventionalbranch.org/) specification: `/`. -`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 diff --git a/docs/troubleshoot.md b/docs/troubleshoot.md index 3491a3e..1033dfd 100644 --- a/docs/troubleshoot.md +++ b/docs/troubleshoot.md @@ -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: