TGViewer
drugoi.dev | Никита Баев об AI разработке и менеджменте drugoi.dev | Никита Баев об AI разработке и менеджменте @drugoi_dev · 571 subscribers
Post #15 738
Затем я пришёл к использованию в боевых проектов Conventional Commits (CC).

Это очень удобное соглашение, которое позволяет избавить ваш репозиторий от коммитов вида fix bug и, как отличный бонус, автоматическая генерация Changelog-а с правильной разметкой и релиз-менеджмент.

Но чтобы это всё работало правильно, нам необходимо либо найти разработчиков со 100% понимаем дела, либо включить линтинг коммитов.

Здесь нам на помощь приходит Commitlint, который с помощью простых pre-commit хуков позволяет валидировать содержимое сообщения коммита и либо пропускать его, либо выдавать ошибку. Он легко настраивается и позволяет очень быстро добавить в свой флоу разработки щепотку магии.

Единственная проблема, с которой я столкнулся — это валидация скоупов.

Скоуп в контексте CC — это место применения изменений, которые были сделаны в коммите. Например: feat(lang): add Kazakh language
В данном примере lang — это скоуп. Нет каких-то строгих правил по тому, что может являться скоупом, вы задаёте его в рамках своей бизнес-логики/фреймворка.
Но что, если наш разработчик напишет: feat(leng): add Kazakh language

С точки зрения commitlint — всё правильно, но с точки зрения Changelog-а и в целом управления скоупами — это что-то новое и в будущем вам будет сложнее искать связанные с одним скоупом коммиты.

Для решения этой проблемы в конфигурации commitlint придумали правило scope-enum которое позволяет перечислить список разрешённых скоупов в проекте. Его можно собрать самому, а можно воспользоваться python скриптом, который написал мой знакомый Галымжан @gazgolderkz — gist.

Скрипт нужно положить в папку с проектом и перед выполнением скрипта нужно выполнить сбор данных из git log с помощью команды — git log --pretty=format:%s | grep -E '^(\w+)\((\w+|\*)\)' > commits.log

В итоге будет создан csv файл, в котором отсортировано будут делать использованные вами скоупы. Осталось их почистить и добавить в конфигурацию commitlint.

Готово, вы — восхитительны, а ваш репозиторий чист и вкусно пахнет.
Gist Collect scope from commitlint Collect scope from commitlint. GitHub Gist: instantly share code, notes, and snippets.
  • 👍 3
  • ❤ 1
More from @drugoi_dev
  1. Sep 30, 2026Спасибо всем за участие! random.org разыграл число 5 и это оказался @alkhipce Поздравляю!…
  2. Sep 28, 2026🔠🔠 О новых ролях в эпоху AI В эту среду буду на Podlodka Frontend Crew — участвую в круг…
  3. Sep 25, 2026Post #95
  4. Sep 8, 2026❓ Рабочий стек в 2026 году Мы в Bereke Bank начали проводить внутренние встречи, где разра…
  5. Jun 30, 2026🖥 О новых ролях в эпоху AI разработки Увидел твит Бориса с интересной мыслью, которую мы…
  6. May 29, 2026Cursor Developer Habits Report 2026 Отчётов по реальному использованию AI с большими выбор…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →