From a633ad617f9b17baf73400c005f8538b22261189 Mon Sep 17 00:00:00 2001 From: shenxianpeng Date: Sat, 16 May 2026 02:41:22 +0300 Subject: [PATCH 1/2] docs: improve Why Commit Check comparison table MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix commitlint signed-off-by: change from ✅ to Partial (requires community plugin) - Add YACC (Yet Another Commit Checker) column for complete competitive landscape - Add 3 new comparison rows: Open source & free, Client-side enforcement, AI-native - Fix YACC author validation, co-author ignore, org-level config based on official docs - Add footnotes for commitlint signed-off-by, YACC context, and YACC ignore semantics --- README.rst | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 55 insertions(+), 4 deletions(-) diff --git a/README.rst b/README.rst index 61f69039..735728c3 100644 --- a/README.rst +++ b/README.rst @@ -441,37 +441,45 @@ reflects a DIY approach rather than built-in product features. .. list-table:: :header-rows: 1 - :widths: 36 18 18 28 + :widths: 26 16 16 16 26 * - Feature - Commit Check ✅ - commitlint + - YACC [#f2]_ - Custom hooks * - Conventional Commits enforcement - ✅ - ✅ + - Partial - DIY * - Branch naming validation - ✅ - ❌ + - ✅ - DIY * - Force push blocking - ✅ - ❌ + - ❌ - DIY * - Author name / email validation - ✅ - ❌ + - ✅ - DIY * - Signed-off-by trailer enforcement - ✅ - - ✅ + - Partial [#f1]_ + - ❌ - DIY * - Co-author ignore list - ✅ - ❌ + - Partial [#f3]_ - DIY * - Organization-level shared config + - ✅ - ✅ - ✅ - DIY @@ -479,28 +487,71 @@ reflects a DIY approach rather than built-in product features. - ✅ - ❌ - ❌ + - ❌ * - Works without Node.js - ✅ - ❌ + - ✅ - Depends * - Native TOML configuration - ✅ - ❌ + - ❌ - Depends * - Git hook / pre-commit integration - ✅ - Partial + - ❌ - ✅ * - CI/CD-friendly configuration - ✅ - Partial + - ❌ - DIY + * - Open source & free + - ✅ + - ✅ + - ❌ + - ✅ + * - Client-side (pre-commit) enforcement + - ✅ + - ✅ + - ❌ + - ✅ + * - AI-native (JSON API + Python SDK) + - ✅ + - ❌ + - ❌ + - ❌ + +*For* ``commitlint``, organization-level shared config is typically delivered via +shareable config packages or local files. + +*For* ``YACC`` (Yet Another Commit Checker), conventional commit enforcement +is regex-based rather than Conventional Commits-aware; author validation +verifies committer name/email against Bitbucket user accounts or custom regex; +the plugin supports global → project → repository config inheritance; +it is a server-side pre-receive hook and merge check (no client-side +pre-commit), is paid (per-user licensing), and runs on Java (no Node.js needed). -For ``commitlint``, organization-level shared config is typically delivered via -shareable config packages or local files. ``DIY`` means you can implement a +``DIY`` means you can implement a capability with custom Git hooks or ``pre-commit`` scripts, but it is not provided as a turnkey policy layer. +.. [#f1] ``commitlint`` provides a community ``signed-off-by`` rule + (``@commitlint/rule-signed-off-by``) that must be installed and configured + separately; it is not part of the default + ``@commitlint/config-conventional`` preset. + +.. [#f2] `Yet Another Commit Checker + `_ + is a paid Bitbucket Server / Data Center plugin (server-side pre-receive hook + and merge check). + +.. [#f3] YACC can exclude commits from specific Bitbucket users, user groups, + or service users (bots), but does not parse ``Co-authored-by:`` trailers + in commit messages. + Versioning ---------- From 60f84e0f9a82c51800d905779929bd3155c97a8d Mon Sep 17 00:00:00 2001 From: Xianpeng Shen Date: Sat, 16 May 2026 02:53:13 +0300 Subject: [PATCH 2/2] chore: Apply suggestion from @shenxianpeng --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 735728c3..c94ac62d 100644 --- a/README.rst +++ b/README.rst @@ -444,7 +444,7 @@ reflects a DIY approach rather than built-in product features. :widths: 26 16 16 16 26 * - Feature - - Commit Check ✅ + - Commit Check - commitlint - YACC [#f2]_ - Custom hooks