agny / commit-convention
Requires
- php: >=5.3
This package is not auto-updated.
Last update: 2025-12-27 12:24:09 UTC
README
Единый стандарт именования коммитов делает историю изменений понятной и удобной для работы. Он помогает:
✅ Быстро понимать суть изменений по заголовку коммита
✅ Автоматически генерировать changelog на основе структурированных сообщений
✅ Упрощать поиск по истории (например, исправлений багов или новых фич)
✅ Поддерживать порядок в командной разработке
Этот репозиторий содержит:
- Конвенцию именования коммитов — правила оформления сообщений.
- Git-хук на PHP — автоматическую проверку соответствия коммитов заданному формату.
Хук можно установить:
- Глобально — для всех репозиториев на вашей системе.
- Локально — только для текущего проекта (через Composer).
Подробнее о правилах: см. CONVENTION.md.
Установка
Глобальная (для всех репозиториев)
- Склонируйте репозиторий:
git clone https://github.com/agny/commit-convention.git cd commit-convention - Установите хук:
make installЕсли глобальная директория хуков не установлена в Git, она будет создана автоматически (
~/.git-hooks).
Локальная (для одного проекта)
- Добавьте пакет как dev-зависимость:
composer require --dev agny/commit-convention - Активируйте хук:
vendor/bin/commit-convention-hook install
Конфигурация
Настройки проверки коммитов задаются в файле commit-convention.json в корне проекта.
Пример полной конфигурации со значениями по умолчанию:
{
"descriptionRequired": false,
"messageRequireTrailingDot": true,
"mainTags": "initial|new|fix|update|refactor|opt|optimization|tweak",
"additionalTags": "#145|README.md|custom-tag|module_name|feature|ui|api...",
"messageMaxLength": 100,
"messageWarningLength": 80,
"formatHint": "[основной_тег][уточняющий_тег] Сообщение коммита.\n\nОписание..."
}
Параметры конфигурации
| Параметр | Описание |
|---|---|
descriptionRequired | Требовать обязательное описание коммита после пустой строки |
messageRequireTrailingDot | Обязательная точка в конце сообщения коммита |
mainTags | Основные теги (разделены \|). |
additionalTags | Дополнительные теги/модификаторы (разделены \|). |
messageMaxLength | Максимальная длина сообщения коммита (в символах) |
messageWarningLength | Длина сообщения, при которой выводится предупреждение |
formatHint | Подсказка формата, которая показывается при ошибке |
Приоритет настроек
- Параметры из
commit-convention.jsonв корне проекта - Встроенные значения по умолчанию из
CommitConventionConfig
Дополнительные рекомендации:
- Для отключения проверки точки в конце сообщения:
{"messageRequireTrailingDot": false} - Чтобы разрешить любые теги:
{"mainTags": ".+"} - Для многострочных подсказок используйте
\n:{ "formatHint": "Формат:\n[тип][модуль] Заголовок\n\nОписание (не обязательно)" }
📜 Лицензия
Проект распространяется на условиях «ОТКРЫТОЙ ЛИЦЕНЗИИ РФ» версии 1.0
SPDX-Identifier: LicenseRef-OpenRF-1.0
Полный текст: LICENSE.md