commitlint README

The project's README from github.com/conventional-changelog/commitlint. As one markdown file: README.md.

Get Started | Website

Lint commit messages

Demo generated with svg-term-cli

cat docs/assets/commitlint.json | svg-term --out docs/public/assets/commitlint.svg --frame --profile=Seti --height=20 --width=80

npm latest node compatibility Github Actions

Contents


What is commitlint

commitlint checks if your commit messages meet the conventional commit format.

In general the pattern mostly looks like this:

type(scope?): subject  #scope is optional; multiple scopes are supported (current delimiter options: "/", "\" and ",")

Real world examples can look like this:

chore: run tests on travis ci
fix(server): send cors headers
feat(blog): add comment section

Common types according to commitlint-config-conventional (based on the Angular convention) can be:

These can be modified by your own configuration.

Benefits of using commitlint

Getting started

CLI

Config

Shared configuration

A number of shared configurations are available to install and use with commitlint:

⚠️ If you want to publish your own shareable config then make sure it has a name aligning with the pattern commitlint-config-emoji-log or commitlint-config-your-config-name — then in extend all you have to write is emoji-log or your-config-name.

Documentation

Check the main website.

API

Tools

Roadmap

commitlint is considered stable and is used in various projects as a development tool.

Ideas: conventional-changelog/commitlint#94

Version Support and Releases

Releases

We're not a sponsored OSS project. Therefore we can't promise that we will release patch versions for older releases in a timely manner.
If you are stuck on an older version and need a security patch we're happy if you can provide a PR.

License

Copyright by @marionebl. All commitlint packages are released under the MIT license.

Development

commitlint is developed in a mono repository.

Install and run

git clone [email protected]:conventional-changelog/commitlint.git
cd commitlint
pnpm install
pnpm build # run build tasks
pnpm start # rebuild on change (tsc -b --watch)
node @commitlint/cli/cli.js # run CLI

For more information on how to contribute please take a look at our contribution guide.

commitlint (conventional-changelog/commitlint)

Searching Database…

Что это такое?commitlint проверяет, соответствуют ли ваши сообщения коммитов формату conventional commits, прогоняя их через настраиваемый набор правил.
Это утилита командной строки или библиотека, которую я вызываю из кода?В первую очередь это CLI — @commitlint/cli, который запускается для сообщений коммитов. Есть также программный JavaScript API с методами lint, load, read и format, чтобы встроить его в другие инструменты.
Как добавить его в свой проект?Установите @commitlint/cli как dev-зависимость, добавьте файл commitlint.config.js или .commitlintrc со своими правилами, а затем проверяйте коммиты при каждом коммите через husky или на этапе сборки в CI.
Что должно быть на моей машине, чтобы он работал?Node.js LTS >= 22.12.0 и git >= 2.13.2 — то есть требуется довольно свежая версия Node.
Могу ли я просто остаться на старой версии, когда всё уже настроено?Надёжно — нет: у проекта нет спонсоров, и нельзя обещать своевременные патчи для старых версий, так что для исправления уязвимости, возможно, придётся отправить PR самостоятельно.
Это нишевый эксперимент или проверенный временем инструмент?Проверенный временем: в README сказано, что commitlint стабилен и используется в различных проектах как инструмент разработки, а на GitHub у него около 18,7 тыс. звёзд.
Какие типы коммитов распознаёт стандартный конфиг?commitlint-config-conventional, основанный на конвенции Angular, включает build, chore, ci, docs, feat, fix, perf, refactor, revert, style и test — и их можно изменить в своей конфигурации.
А зачем мне вообще сообщения коммитов в формате conventional commits?В README перечислены три плюса: быть хорошим commitizen, делиться конфигурацией через npm и использовать conventional-changelog, который генерирует changelog из истории conventional-коммитов.
Есть ли готовые наборы правил, чтобы не писать свой конфиг?Да — среди общих конфигов есть @commitlint/config-angular, config-conventional, а также пресеты для проверки scope в Lerna, Nx, workspaces и Patternplate; комьюнити-конфиги следуют шаблону имён commitlint-config-.
Он хорошо работает вместе с commitizen?Да, есть адаптер для commitizen и пакет интерактивных подсказок @commitlint/prompt-cli — сам репозиторий commitlint использует его как собственный скрипт для коммитов.
Size
22.5 MB
Stars
18.8K
Age
10y
Commits · 90 Days