Visitar URL original
.github/profile at main · commit-check/.github · GitHub
Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

README.md

Commit Check

Commit policy as code for teams and AI agents.

Catch bad commits before they merge — one config file, from your commit hook to every pull request.

PyPI Downloads Marketplace License: MIT Website


What it looks like

CC001 message check failed ==> updated the parser
The commit message should follow Conventional Commits. See https://www.conventionalcommits.org
Suggest: Use <type>(<scope>): <description>, where <type> is one of: feat, fix, docs, ...
Docs: https://commit-check.com/rules/#cc001

Every failure names a stable rule ID, the value that failed, what to do about it, and where it is documented — as text, JSON, a job summary, a PR comment, or an MCP tool call.

One policy, four places

                      cchk.toml
                          │
        ┌─────────────────┼─────────────────┬─────────────────┐
        ▼                 ▼                 ▼                 ▼
  your machine       pre-commit         GitHub CI         AI agents
 (commit-check)         hook             Action             (MCP)
        │                 │                 │                 │
        └─────────────────┴────────┬────────┴─────────────────┘
                                   ▼
                       same rules, same verdict

Write the rules once. Every surface reads that same file, so a commit that passes on a laptop passes in CI — and an agent asking "would this message be accepted?" gets the answer your maintainers actually configured.

Quick start

Nothing to configure to begin with: the defaults enforce Conventional Commits, Conventional Branch, and sane subject lengths.

# .pre-commit-config.yaml — feedback while the message is still being written
repos:
  - repo: https://github.com/commit-check/commit-check
    rev: v2.13.4
    hooks:
      - id: check-message
      - id: check-branch
# .github/workflows/commit-check.yml — where it becomes a policy, not a suggestion
- uses: commit-check/commit-check-action@v2
  with:
    message: true
    branch: true
    pr-title: true
    pr-comments: true  # needs permissions: pull-requests: write

Every rule and option is at commit-check.com.

The Commit Check family

Project What it is Use it for
commit-check Python CLI & pre-commit hook Local checks, CI pipelines, scripting
commit-check-action GitHub Action PR & push validation, job summaries, PR comments
commit-check-mcp Model Context Protocol server Letting AI agents validate against your rules
Commit Check App GitHub App Org-wide checks with no workflow file, on every push and pull request

What it does not do

  • It reads commit metadata, not your code. It is not a linter.
  • A pre-commit hook can be skipped with --no-verify, so only the CI check is really a policy — the hook is there to save you the round trip.
  • Imperative-mood checking reads a word's form, so a subject led by a noun that looks like a gerund (fix: spelling in the docs) gets reported.

Where Commit Check fits

Commit metadata rules are usually behind a paid tier: GitHub's metadata restrictions need Enterprise, and Bitbucket's equivalent is Yet Another Commit Checker, a paid Marketplace app. Commit Check is the open alternative — and because the policy is a file in your repository rather than a settings page, it can be reviewed, diffed, and rolled back like anything else you version.

  • 🔒 SLSA Level 3 build provenance — verify any release yourself with gh attestation verify <wheel> --repo commit-check/commit-check
  • 🏢 Runs in repositories across Apache, Texas Instruments, Mila, and many more
  • 📖 MIT licensed, actively maintained, and itself following Conventional Commits and Conventional Branch

Get involved

Issues for bugs and feature requests · Discussions for questions and ideas · Docs for everything else.