Эпизод #3 - Hound

В этом эпизоде рассмотрим HoundCI, инструмент для автоматического анализа кода в Pull Request’ах, который работает в связке с GitHub. Hound может проанализировать несколько типов кода. Для каждого типа он использует свою технологию:

  1. Ruby - Rubocop
  2. CoffeeScript - CoffeeLint
  3. JavaScript - JSHint
  4. SCSS - SCSS-Lint
  5. SASS - SASS-Lint
  6. Haml - Haml-Lint
  7. Go - Golint
  8. Swift - SwiftLint
  9. ESLint - ESLint
  10. Python - Flake8
  11. TypeScript - TSLint
  12. Elixir - Credo

Подробнее можно посмотреть в оф.документации

Как это работает

  1. Вы пишите код
  2. Делает Pull Request
  3. Hound проверяет ваш код и комментирует все проблемные места от имени пользователя houndci
  4. Вы исправляете замечания
  5. Делаете merge с master

Подключаем Hound к проекту

Первое, что необходимо сделать, это выполнить Вход используя свой GitHub аккаунт. После этого вы увидите список всех Ваших репозиториев. Для того, чтобы активировать Hound, нужно в строке с нужным репозиторием нажать на кнопку Activate.

Hound Activate

После этого Hound будет делать Code Review для каждого Pull Request’а в вашем проекте.

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

Мы можем подключить или отключить любой из линтеров. Разместите в корне Вашего проекта файл .hound.yml и, к примеру мы хотим отключить SCSS, напишем следующее:

scss:
  enabled: false

Это строка отключит слежку за файлами *.scss.

Мы также можем подключить свой файл конфигурации для каждого линтера. Для Ruby это может выглядеть так:

ruby:
  config_file: .rubocop.yml

Также можно исключить некоторые файлы из проверки:

scss:
  exclude:
    - "app/assets/stylesheets/plugins/**"

Hound очень удобен и прост в использовании. Он поможет Вам сохранить массу времени для поддержания чистого кода.

Ссылки