59
Some checks failed
Deploy Production / Deploy to Staging (push) Has been skipped
Go Linter / Run golangci-lint (api_gateway) (push) Failing after 6m41s
Go Linter / Build golang services (api_gateway) (push) Has been skipped
Go Linter / Push Docker Images (api_gateway) (push) Has been skipped

This commit is contained in:
Alex Shevchuk
2025-08-21 00:29:42 +03:00
parent e7264f560b
commit 6b7055e48d

View File

@@ -1,46 +1,246 @@
.DS_Store # Options for analysis running.
run:
# The default concurrency value is the number of available CPU.
concurrency: 2
# Timeout for analysis, e.g. 30s, 5m.
# Default: 1m
timeout: 5m
# Exit code when at least one issue was found.
# Default: 1
issues-exit-code: 1
# Include test files or not.
# Default: true
tests: false
# List of build tags, all linters use it.
# Default: [].
build-tags: [ ]
# Which files to skip: they will be analyzed, but issues from them won't be reported.
# Default value is empty list,
# but there is no need to include all autogenerated files,
# we confidently recognize autogenerated files.
# If it's not please let us know.
# "/" will be replaced by current OS file path separator to properly work on Windows.
skip-files: [ ] # сгенерированные файлы пропускаются автоматически
# If set we pass it to "go list -mod={option}". From "go help modules":
# If invoked with -mod=readonly, the go command is disallowed from the implicit
# automatic updating of go.mod described above. Instead, it fails when any changes
# to go.mod are needed. This setting is most useful to check that go.mod does
# not need updates, such as in a continuous integration and testing system.
# If invoked with -mod=vendor, the go command assumes that the vendor
# directory holds the correct copies of dependencies and ignores
# the dependency descriptions in go.mod.
#
# Allowed values: readonly|vendor|mod
# By default, it isn't set.
modules-download-mode: readonly
# Allow multiple parallel golangci-lint instances running.
# If false (default) - golangci-lint acquires file lock on start.
allow-parallel-runners: true
Thumbs.db # Минимально поддерживаемая версия go.
desktop.ini # Mainly related to generics support in go1.18.
# Default: use Go version from the go.mod file, fallback on the env var `GOVERSION`, fallback on 1.17
go: '1.22'
.vscode/ # output configuration options
.idea/ output:
*.sublime-workspace # Format: colored-line-number|line-number|json|tab|checkstyle|code-climate|junit-xml|github-actions
*.sublime-project #
go.sum # Multiple can be specified by separating them by comma, output can be provided
*.log # for each of them by separating format name and path by colon symbol.
*.tmp # Output path can be either `stdout`, `stderr` or path to the file to write to.
*.swp # Example: "checkstyle:report.json,colored-line-number"
#
# Default: colored-line-number
formats: "colored-line-number:stdout,code-climate:code-quality-report.json"
# Print lines of code with issue.
# Default: true
print-issued-lines: false
# Print linter name in the end of issue text.
# Default: true
print-linter-name: true
# Make issues output unique by line.
# Default: true
uniq-by-line: true
# Add a prefix to the output file references.
# Default is no prefix.
path-prefix: ""
# Sort results by: filepath, line and column.
sort-results: true
/bin/ linters-settings:
/pkg/
/coverage.out
*.test
*.exe
*.dll
*.so
*.dylib
vendor/
*.o #complexity:
*.obj funlen:
*.a # Проверяет длину функций
*.lib
*.out
*.class
*.pch
docker-compose.yaml lines: 100 # Максимальное кол-во строк функции
.env statements: 60 # Максимальное кол-во утверждений
dist/
tmp/
.vscod/
code-quality-repot.json gocognit:
# Проверяет цикломатическую сложность
# Конфигурация https://golangci-lint.run/usage/linters/#gocyclo
# Репозиторий https://github.com/uudashr/gocognit
molva min-complexity: 20 # Максимально допустимая сложность
bin/
code-quality-report.json #bug
.build/config/local.yaml # nilerr - нет конфигурации
gosec:
# Проверяет отсутствие проблем безопасности
# Конфигурация https://golangci-lint.run/usage/linters/#gosec
# Репозиторий https://github.com/securego/gosec
exclude-generated: false
#code_style:
# goconst:
# # ищет переменные, которые можно вынести в константы.
# # Конфигурация https://golangci-lint.run/usage/linters/#goconst
# # Репозиторий https://github.com/jgautheron/goconst
#
# min-len: 2
# min-occurrences: 2
# ignore-tests: true
# match-constant: true
tagliatelle:
# Проверяет теги на использование нужного стиля
# Конфигурация https://golangci-lint.run/usage/linters/#tagliatelle
# Репозитория https://github.com/ldez/tagliatelle
case:
rules:
json: snake # требует snake_case для тегов json
varnamelen:
# Проверяет отсутствие слишком коротких имен переменных.
# Конфигурация https://golangci-lint.run/usage/linters/#varnamelen
# Репозиторий https://github.com/blizzy78/varnamelen
max-distance: 8 # минимальное кол-во строк скоупа при которой происходит проверка
min-name-length: 3 # минимальная длина названия переменной
check-receiver: false # не проверяет method receiver
check-return: true # проверяет название возвращаемого из фукнции значения
check-type-param: true # проверяет параметры типа
ignore-type-assert-ok: true # Пропускает _,ok переменную при val.(type)
ignore-map-index-ok: true # Пропускает _,ok переменную при map[intex]
ignore-chan-recv-ok: true # Пропускает _,ok переменную при <- channel
ignore-names: # Пропускает следующие имена
- c # для передачи (c *Core) в параметрах
- ch
- q
- id
- ip
- ok
- mq
- tx
- dn
- app
- cnt
- err
- job
- key
- log
- now
- raw
- row
- tcp
- trs
- ws
- db
- fs
- v # для работы с viper
- h
- r # для работы с роутером
- ms
- md # для работы с metadata
- wg # стандартное имя переменной waitGroup
ignore-decls: # игнорирует следующие определения
- t testing.T
- T any
- w http.ResponseWriter
- r *http.Request
- i int
- v interface{}
- wg sync.WaitGroup
- ctx context.Context
- cmd *cobra.Command
- img image.Image
- mux *runtime.ServeMux
# wastedassign - нет конфигурации
wsl:
# Проверяет наличие/отсутствие пустых строк между блоками.
# Подробная конфигурация https://github.com/bombsimon/wsl/blob/master/doc/configuration.md
strict-append: true # требует чтобы блоки с append были разделены по группам
allow-assign-and-call: true # разрешает не разделять присваивание и вызов метода
allow-assign-and-anything: false # требует чтобы после присваивания был пробел (исключение вызов метода)
allow-multiline-assign: true # разрешает не разделять группы присваиваний
allow-separated-leading-comment: true # позволяет иметь отдельные комментарии в начале блока
force-case-trailing-whitespace: 2 # требует чтобы после блока case, если в нем >= 2 строк, был пробел
allow-cuddle-declarations: false # требует чтобы блоки определения были сгруппированы скобками
allow-trailing-comment: true # разрешает комментарии в конце блока
force-err-cuddling: true # разрешает отделять проверку ошибок от вызова функции/метода
#other:
nolintlint:
# Проверяет использование директивы //nolint.
# Конфигурация https://golangci-lint.run/usage/linters/#nolintlint
# Репозиторий https://github.com/golangci/golangci-lint/tree/master/pkg/golinters/nolintlint
allow-unused: false # запрещает иметь неиспользуемые директивы
allow-leading-space: false # запрещает ставить пробел перед директивой (требование go code style)
require-specific: false # требует чтобы был указан линтер который выключается
require-explanation: true # требует объяснений использования диррективы
allow-no-explanation: [ ] # список исключений
# unused - нет конфигурации
#issues:
# new: false # проверяет только новые изменения
new-from-rev: HEAD # проверяет только код после этого комита - не работает
## fix: true # выключен т.к. отсутствуют линтеры с автофиксом
linters:
enable:
#complexity:
- gocognit # проверяет когнитивную сложность кода.
- funlen # проверяет длину функций
#bug:
- nilerr # проверяет возвращаемые ошибки https://github.com/gostaticanalysis/nilerr
- gosec # проверяет отсутствие проблем безопасности
#code_style:
# - goconst # ищет переменные, которые можно вынести в константы.
- tagliatelle # проверяет теги на использование нужного стиля
- varnamelen # проверяет отсутствие слишком коротких имен переменных
- wastedassign # проверяет отсутствие неиспользуемых присваиваний https://github.com/sanposhiho/wastedassign
- wsl # проверяет наличие/отсутствие пустых строк между блоками.
#other:
- nolintlint # проверяет использование директивы //nolint
- unused #проверяет неиспользуемые объекты https://github.com/dominikh/go-tools/tree/master/unused
# temp disabled
#- prealloc
fast: false
issues:
exclude-rules:
- path: 'internal\/manager\/infrastructure\/database\/(.+)\.go'
linters:
- funlen