Add tools command for direct binary downloads from GitHub releases

Introduces a new 'tools' command that installs development tools (golangci-lint, gotestsum)
by downloading pre-built binaries directly from GitHub releases instead of using 'go get -tool'.
This prevents modifications to plugin go.mod files and improves build reliability.

Features:
- Cross-platform support (Windows, macOS, Linux) with automatic architecture detection
- Version-specific binary naming with symlinks for easy access
- Configurable installation directory via --bin-dir flag
- Tar.gz archive extraction with binary validation
- Updated Makefile integration to use downloaded binaries

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Felipe M 2025-08-04 13:41:54 +02:00
parent f8e3266029
commit c1399f5107
No known key found for this signature in database
GPG key ID: 52E5D65FCF99808A
9 changed files with 596 additions and 102 deletions

View file

@ -1,48 +1,88 @@
run:
timeout: 5m
modules-download-mode: readonly
linters-settings:
gofmt:
simplify: true
goimports:
local-prefixes: {{.GoModule.Name}}
govet:
check-shadowing: true
enable-all: true
disable:
- fieldalignment
misspell:
locale: US
version: "2"
linters:
disable-all: true
enable:
- bodyclose
- errcheck
- gocritic
- gofmt
- goimports
- gosec
- gosimple
- govet
- ineffassign
- misspell
- nakedret
- revive
- staticcheck
- stylecheck
- staticcheck # Now includes gosimple and stylecheck
- typecheck
- unconvert
- unused
- whitespace
- govet # Ensure this is included
settings:
errcheck:
# Add any errcheck settings here
exclude-functions:
- io.Copy(*bytes.Buffer)
gocritic:
enabled-tags:
- diagnostic
- experimental
- opinionated
- performance
- style
gosec:
# Add gosec settings
excludes:
- G104 # Errors unhandled
staticcheck:
# Configure staticcheck (includes gosimple/stylecheck checks)
checks: ["all"]
revive:
# Add revive rules
rules:
- name: exported
disabled: false
exclusions:
presets:
- comments
- std-error-handling
- common-false-positives
rules:
- path: '_test\.go'
linters:
- errcheck
- gosec
formatters:
enable:
- gofmt
- goimports
settings:
gofmt:
simplify: true
goimports:
local-prefixes:
- {{.GoModule.Name}}
output:
formats:
text:
path: stdout
colors: true
print-linter-name: true
run:
timeout: 5m
tests: true
issues:
exclude-rules:
- path: server/configuration.go
linters:
- unused
- path: _test\.go
linters:
- bodyclose
- scopelint # https://github.com/kyoh86/scopelint/issues/4
max-issues-per-linter: 0
max-same-issues: 0
fix: false