golangci-lint (golangci/golangci-lint)
Searching Database…
19.4K ·GitHub
Что это такое?
Быстрый запускатель линтеров для Go: один инструмент, который за один проход прогоняет по вашей кодовой базе больше сотни Go-линтеров.
Это один линтер или набор из многих?
Это раннер, который объединяет больше сотни уже существующих Go-линтеров: одна установка и один конфиг заменяют целую кучу отдельных инструментов.
Как установить его на свой компьютер и добавить в CI?
В документации по установке есть два пути: инструкция для своего компьютера и отдельная — для CI/CD-систем; полная документация размещена на собственном сайте проекта.
Нужно ли что-то ещё, кроме моего Go-проекта?
Ничего, кроме вашей кодовой базы на Go — ни API-ключей, ни аккаунтов, ни дополнительных сервисов; он анализирует проект напрямую.
Есть ли подводные камни, прежде чем я его возьму?
Он по задумке работает только с Go — другие языки он не проверяет, а в README нет особых требований к железу или операционной системе.
Можно ли пользоваться бесплатно, в том числе на работе?
Да — это бесплатный проект с открытым кодом под лицензией GPL-3.0 (согласно метаданным репозитория), его развивают волонтёры, принимающие пожертвования; GPL распространяется на сам инструмент, а не на код, который он проверяет.
Как выбрать, какие линтеры запускать?
Всё настраивается в одном YAML-файле — там вы включаете и настраиваете отдельные линтеры, вместо того чтобы подключать каждый инструмент по отдельности.
Не замедлит ли сборку запуск сотни линтеров?
Нет — линтеры работают параллельно, а результаты кэшируются, поэтому полный проход остаётся достаточно быстрым и для локальных запусков, и для CI.
Будут ли замечания видны прямо в редакторе?
Да — он интегрируется со всеми популярными IDE, так что вы видите проблемы прямо во время написания кода, а не только в логах CI.
Проект активно поддерживается?
Да — начат в 2018 году, около 19 400 звёзд на GitHub, а в репозитории настроены автоматические проверки CI и релизные процессы.
What are similar projects?
shellcheck, knip, perch, hadolint, rust-clippy, mypy, kani, static-analysis
Which topics is it in?
code-analysis, linter, code-quality, static-analysis, ci, golang, devops, gplv3, performance, go, free, tool