New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

agny/commit-convention

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

agny/commit-convention

Packagist
Version
dev-main
Version published
Maintainers
1
Created
Source

Конвенция именования коммитов

Единый стандарт именования коммитов делает историю изменений понятной и удобной для работы. Он помогает:

✅ Быстро понимать суть изменений по заголовку коммита
✅ Автоматически генерировать 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

FAQs

Package last updated on 19 Apr 2025

Related posts