КонтрибьютNode.js, Inquirer

CLI для описания conventional commits

Добавил в существующую CLI-утилиту поддержку breaking changes и scope/context к типу коммита.

Задача

Гуляя по Github, я наткнулся на случайный репозиторий… и подумал, что у меня давно не было вклада в опенсорс.

Оказалось, что это CLI-утилита conventional-commit-cli Паритоша Пундира @Paari — интерактивный терминальный мастер для составления коммитов по спецификации Conventional Commits, с выбором типа, гитмодзи и превью сообщения перед коммитом.

В проекте не хватало двух вещей из самой спецификации conventional commits: пометки breaking change (! перед двоеточием) и scope/context (feat(auth): ...).

Что добавил

Реализовал два новых шага мастера:

  • вопрос о breaking change — при положительном ответе к префиксу коммита добавляется !;
  • ввод контекста в скобках, который подставляется как type(context): message.
? Are you introducing a breaking change? (y/N)
? Enter the context of this commit (optional):

Оба шага опциональны — если что-то из этого не нужно, мастер идёт дальше без них, не ломая старый сценарий использования.

Запуск

npm i c-commit-cli -g

Дальше в любой директории со staged-изменениями:

commit