![](https://habrastorage.org/storage2/e0d/ccc/276/e0dccc276d50ab3cf7fb020dc75b3518.png)
lint(likely to be bugs) программы предназначены для нахождения подозрительных и непереносимых участков кода. Современные lint — программы, зачастую исследуют в том числе на соответствие стандарту кодирования. Конечно каждый разработчик обязан установить на свой компьютер утилиту для проверки кода и создавать pull запросы только если код чист. Однако, проблемы интеграции, неправильной настройки, не внимательность или просто халатность приводят к тому, что стандарты кодирования нарушаются. В сети существует достаточное число утилит выполняющих проверку кода, все они разношерстны в плане настроек и выходных форматов. В мультиязыковой компании это приводит к тому, что настройка рабочего места становится не тривиальной задачей.
Предлагаю вашему вниманию сервис для автоматической проверки кода известными lint-утилитами. На данный момент поддерживаются:
- C++ / cpplint.py
- Java / checkstyle
- Scala / scalastyle
- JavaScript / jslint
- Coffeescript / coffeelint
- Perl / Perl::Critic
- CSS / CSS LINT
- PHP / PHPLint
- Python / pep8
Существует несколько способов использования этого сервиса. Вы можете просто попробовать и проверить любой pull запрос, для этого нужно вставить ссылку в соответствующее поле и нажать кнопку Advice.
![](https://habrastorage.org/storage2/20f/a47/667/20fa47667bd989ccf5a536c644e2b7ed.png)
После продолжительных раздумий, вы получите сформированный отчет по всем файлам из pull запроса.
![](https://habrastorage.org/storage2/cd9/95b/b27/cd995bb27a44c377ae7fff9aaa48e23b.png)
Владельцы приватных репозиториев так же могут проверить свои pull запросы. Для этого нужно создать token доступа и вписать его в дополнительное поле формы. Если вас беспокоит здоровая форма паранои, то есть ещё возможность развернуть этот сервис у себя локально, кто заинтересовался прошу писать в личку.
Другой вариант использования сервиса, воспользоватся плагинами к браузерам Сhrome или Firefox. После их установки в браузере появится кнопка, при нажатии на которую будет выполняться проверка открытого на текущей странице pull запроса.
Но, самый лучший способ использования, настроить Post-Receive Hook для вашего репозитория. В этом случае после каждого обновления pull запроса, он будет проверяться, и на самой страничке запроса будет небольшое описание о качестве кода.
Например, хороший код:
![](https://habrastorage.org/storage2/97f/a33/30c/97fa3330caf875502025de67ae9fc2d9.png)
А этот не очень:
![](https://habrastorage.org/storage2/20c/19d/0f0/20c19d0f000b2515847911ce6534836b.png)
Что бы настроить сервис на работу с вашим репозиторием, нужно создать WebHook URL
unlint.org/github/hook:token
. Параметр :token
нужен только для приватных репозиториев, что бы обеспечить доступ проверяющего сервиса. Кто не очень знаком с github api может воспользоваться формой для генерации curl запроса на создания WebHook URL. ВАЖНО. Нельзя использовать форму в настройках вашего репозитория для создания WebHook URL потому, что она создает наблюдателя за вашими коммитами а не pull запросами, нужно использовать github api для создания WebHook URL наблюдающего за pull запросами.
Применение этого сервиса позволяет облегчить работу проверяющим, и стандартизировать код в компании.
unlint.github.com
Страничка проекта github
Почему сервис такой медленный
Одновременно выполняется проверка не более чем 3х файлов, это связано с низкой производительностью сервера. Вы можете развернуть unlint локально что бы решить эти проблемы.
Я нашел ошибку/Нужно добавить проверку
Нужно написать мне, либо на github.
Мне нужны другие стандарты
Вы можете развернуть unlint локально и настроить любые проверки.
Безопасно ли использовать token для доступа к приватному репозиторию?
Нет, это не безопасно, т.к. данные передаются по незашифрованному каналу.
Как развернуть локально
Все исходники доступны в репозитории проекта, поэтому сервис можно установить локально. Подробной документации пока нет, обращайтесь в личку помогу.