agny/commit-convention 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

agny/commit-convention

Composer 安装命令:

composer require agny/commit-convention

包简介

README 文档

README

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

Быстро понимать суть изменений по заголовку коммита
Автоматически генерировать changelog на основе структурированных сообщений
Упрощать поиск по истории (например, исправлений багов или новых фич)
Поддерживать порядок в командной разработке

Этот репозиторий содержит:

  1. Конвенцию именования коммитов — правила оформления сообщений.
  2. Git-хук на PHP — автоматическую проверку соответствия коммитов заданному формату.

Хук можно установить:

  • Глобально — для всех репозиториев на вашей системе.
  • Локально — только для текущего проекта (через Composer).

Подробнее о правилах: см. CONVENTION.md.

Установка

Глобальная (для всех репозиториев)

  1. Склонируйте репозиторий:
    git clone https://github.com/agny/commit-convention.git
    cd commit-convention
    
  2. Установите хук:
    make install
    

    Если глобальная директория хуков не установлена в Git, она будет создана автоматически (~/.git-hooks).

Локальная (для одного проекта)

  1. Добавьте пакет как dev-зависимость:
    composer require --dev agny/commit-convention
    
  2. Активируйте хук:
    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Подсказка формата, которая показывается при ошибке

Приоритет настроек

  1. Параметры из commit-convention.json в корне проекта
  2. Встроенные значения по умолчанию из CommitConventionConfig

Дополнительные рекомендации:

  1. Для отключения проверки точки в конце сообщения:
    {"messageRequireTrailingDot": false}
    
  2. Чтобы разрешить любые теги:
    {"mainTags": ".+"}
    
  3. Для многострочных подсказок используйте \n:
    {
      "formatHint": "Формат:\n[тип][модуль] Заголовок\n\nОписание (не обязательно)"
    }
    

📜 Лицензия

Проект распространяется на условиях «ОТКРЫТОЙ ЛИЦЕНЗИИ РФ» версии 1.0
SPDX-Identifier: LicenseRef-OpenRF-1.0
Полный текст: LICENSE.md

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: LicenseRef-OpenRF-1.0
  • 更新时间: 2025-04-17