1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/vcs-all-in-one-commitlint

Клонировать/Скачать
README.md 12 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 30.06.2025 17:53 4eb1e0e

Начало работы | Давайте поговорим slack | Сайт

Проверка сообщений коммитов

Демонстрация сгенерирована с помощью svg-term-cli

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

npm latest CircleCI

  • 🚓 Будьте хорошим commitizen
  • 📦 Обменивайтесь конфигурацией через npm
  • 🤖 Используйте conventional-changelog

Содержание


Что такое commitlint

commitlint проверяет, соответствуют ли ваши сообщения коммитов стандартному формату коммитов.

В общем, шаблон выглядит примерно так:

type(scope?): subject  #scope необязательно

Примеры из реальной жизни могут выглядеть так:

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

Общие типы согласно commitlint-config-conventional (основано на конвенции Angular) могут быть:

  • build
  • ci
  • chore
  • docs
  • feat
  • fix
  • perf
  • refactor
  • revert
  • style
  • test

Эти типы можно модифицировать с помощью собственной конфигурации.

Преимущества использования commitlint

Начало работы

# Установите CLI commitlint и конфигурацию по умолчанию
npm install --save-dev @commitlint/{config-conventional,cli}
# Для Windows:
npm install --save-dev @commitlint/config-conventional @commitlint/cli

# Настройте commitlint для использования конфигурации по умолчанию
echo "module.exports = {extends: ['@commitlint/config-conventional']}" > commitlint.config.js

Чтобы проверять коммиты перед их созданием, вы можете использовать хук 'commit-msg' из Husky.

Установите в вашем проекте npm install husky --save-dev или yarn add -D husky.

После этого вы можете создать файл .huskyrc или добавить в ваш package.json следующий код:

{
  "husky": {
    "hooks": {
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }
  }
}

Подробные инструкции по настройке

CLI

  • Основной способ взаимодействия с commitlint.
  • npm install --save-dev @commitlint/cli
  • Пакеты: cli

Конфигурация

  • Конфигурация подхватывается из файла commitlint.config.js, .commitlintrc.js, .commitlintrc.json, или .commitlintrc.yml или поля commitlint в package.json
  • Пакеты: cli, core
  • См. Правила для полного списка возможных правил
  • Пример конфигурации можно найти в @commitlint/config-conventional

Общая конфигурация

Доступно несколько общих конфигураций для установки и использования с commitlint:

⚠️ Если вы хотите опубликовать свою собственную общую конфигурацию, убедитесь, что её имя соответствует шаблону commitlint-config-emoji-log или commitlint-config-your-config-name — тогда в поле extend вам нужно будет указать только emoji-log или your-config-name.

API

  • Альтернативный, программный способ взаимодействия с commitlint
  • Пакеты:
    • format - Форматирование отчетов commitlint
    • lint - Проверка строки по правилам commitlint
    • load - Загрузка общей конфигурации commitlint
    • read - Чтение сообщений коммитов из указанного диапазона или последнего изменения
  • См. API для полного списка методов и примеров

Инструменты

План развития

Идеи: conventional-changelog/commitlint#94

commitlint считается стабильным и используется в различных проектах как инструмент разработки.

Мы считаем, что легкость внедрения и опыт разработчика — это области, где есть место и потребность для улучшений. Элементы плана развития должны улучшить commitlint в этих аспектах.

  • Внедрение: Предоставление переиспользуемой интеграции с Travis CI: @commitlint/travis-cli (https://github.com/conventional-changelog/commitlint/releases/tag/v5.1.0)
  • Опыт разработчика: Поддержка сценария объединения PR через ahmed-taj/commitlint-bot и @commitlint/travis-cli
  • Внедрение: Сделать ahmed-taj/commitlint-bot настраиваемым через конфигурацию commitlint
  • Внедрение: Создать commitlint init
  • Опыт разработчика: Расширить схему конфигурации для добавления дополнительных полей (описания, примеры, исправления) на уровне правила и значения
  • Опыт разработчика: Включить расширенную версию lennym/commit-template, выводящую шаблон из конфигурации commitlint
  • Опыт разработчика: Переписать @commitlint/prompt для лучшей удобоваримости (может потребовать много работы)

Поддерживаемые версии

  • Node.js LTS >= 8
  • git >= 2.13.2

Связанные проекты

  • conventional-changelog – Генерация changelog из истории коммитов, соответствующих стандартам
  • commitizen – Простые конвенции коммитов для граждан интернета
  • create-semantic-module – CLI для быстрой интеграции commitizen и commitlint в новые или существующие проекты

Лицензия

Авторство @marionebl. Все пакеты commitlint распространяются под лицензией MIT.

Разработка

commitlint разрабатывается в монорепозитории.

Установка и запуск

git clone git@github.com:conventional-changelog/commitlint.git
cd commitlint
yarn
yarn run build # выполнение задач сборки
yarn start # запуск тестов, снова при изменении

Для получения более подробной информации о том, как внести свой вклад, ознакомьтесь с нашим руководством по вкладу.

Публикация релиза

yarn clean
yarn install
yarn run build
yarn test
yarn run publish

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/vcs-all-in-one-commitlint.git
git@api.gitlife.ru:oschina-mirror/vcs-all-in-one-commitlint.git
oschina-mirror
vcs-all-in-one-commitlint
vcs-all-in-one-commitlint
master