Цель этого задания - внедрить линтер golangci-lint
для контроля
качества кода, и исправить найденные проблемы. Кроме того, необходимо подключить
утилиту pre-commit
для автоматизации проверок перед каждым коммитом.
В результате выполнения этой задачи golangci-lint
должен проходить без ошибок
на всем коде проекта (включая тесты).
Отсутствуют.
-
Установить
golangci-lint
и сделать первый конфиг с опцией, включающей все доступные линтеры. Затем последовательно отключить устаревшие/ненужные линтеры, исправить найденные проблемы/добавить исключения. Пример рабочего конфига можно найти в файле golangci.yaml из этого курса. -
Установить
pre-commit
, написать конфиг для проекта, настроить запуск . -
Добавить прогон
golangci-lint
вgithub CI
в случаеpull request
и пуша вmain
. -
Добавить запуск юнит-тестов в
github CI
в случаеpull request
и пуша вmain
. -
Добавить анализ уровня покрытия:
github CI
должен падать с ошибкой, если текущее значение покрытия меньше 80%. Для решения этой задачи можно воспользоваться скриптом check-coverage из этого курса или написать свой на его основе. -
В документации проекта необходимо описать новые команды (как поставить, как подключить).
-
Линтеры в Go: как их готовить - обзорный доклад о линтерах в
Go
. -
golangci-lint - описывает как поставить утилиту, настроить и какие линтеры поддерживаются.
-
pre-commit - описывает как поставить и настроить утилиту.
-
pre-commit-hooks - список доступных
pre-commit
хуков от разработчиковpre-commit
.