mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-07-09 16:00:59 +00:00
Clears the sixteen dupl pair groups in internal/api plus the pkg/pulsecli pair: - router.go: privileged settings endpoints share the serveSetupTokenOrSettingsWrite gate; patrol findings convert via one unifiedFindingFromAI; the five infrastructure-summary chart loops share collectGuestChartData / fillChartSeriesFromBatch; the VM/LXC workloads summary loops share appendGuestWorkloadSummaries. - deploy_handlers.go: preflight and job status/SSE handlers share handleDeployJobStatus / handleDeployJobEvents. - recovery_handlers.go: points series/facets share parseRecoveryListPointsOptions. - truenas_handlers.go / vmware_handlers.go / router_routes_registration.go: the connection update flow (locate, decode-with-fallback, normalize, preserve masked secrets, validate, save, redact) moves to the new platform_connection_shared.go (updatePlatformConnection + decodeOptionalInstanceRequest + the admin-gated item-route builder); per-platform wrappers carry nolint'd declarative wiring only. - docker_metadata.go / guest_metadata.go: GET/PUT payload semantics move to metadata_handlers_shared.go; the zero-record-instead-of-404 contract is pinned by TestContract_MetadataGetPayloadsUseZeroRecordsInsteadOf404. - kubernetes_agents.go / docker_agents.go: lifecycle PUTs share per-handler action helpers. - config_node_handlers.go: PBS/PMG probes share testProxmoxPlatformConnection. - cloud_handoff_handlers.go / purchase_return_redemptions.go: secrets sqlite stores open through openHardenedSecretsDB so permission hardening stays single-sourced. - ai_handlers.go / chat_service_adapter.go: the GetMessages adapters are deliberate contract mirrors — suppressed with nolint and enforced by TestOrchestratorAndChatAdaptersMapTheSameMessageFields. - pkg/pulsecli/actions.go: action subcommands seed env defaults via actionAPIDefaults (tested); the audit/events cobra registration pair is nolint'd parallel wiring. - .golangci.yml: exclude gitignored tmp/ from ./... typechecking. - subsystem_lookup_test.py: refresh the pinned api-contracts.md line numbers shifted by the contract additions. golangci-lint run ./... is now fully green. Full internal/api and pkg/pulsecli test suites pass.
38 lines
1,020 B
YAML
38 lines
1,020 B
YAML
run:
|
|
timeout: 5m
|
|
tests: true
|
|
linters:
|
|
disable-all: true
|
|
enable:
|
|
- govet
|
|
- gofmt
|
|
- goimports
|
|
- errcheck
|
|
- dupl
|
|
issues:
|
|
max-same-issues: 0
|
|
max-issues-per-linter: 0
|
|
# tmp/ is gitignored scratch (dev-mode module/toolchain caches live there);
|
|
# ./... must not typecheck it.
|
|
exclude-dirs:
|
|
- tmp
|
|
exclude-rules:
|
|
# Exclude dupl findings in test files and mock generators — test boilerplate
|
|
# is inherently repetitive and mock data generators share patterns by design.
|
|
- linters: [dupl]
|
|
path: "_test\\.go$"
|
|
- linters: [dupl]
|
|
path: "internal/mock/"
|
|
# Platform mock fixture catalogs outside internal/mock/ are the same
|
|
# category: explicit literal fixture records that deliberately share shape.
|
|
- linters: [dupl]
|
|
path: "internal/vmware/fixtures\\.go$"
|
|
linters-settings:
|
|
gofmt:
|
|
simplify: true
|
|
errcheck:
|
|
exclude-functions:
|
|
- (*encoding/json.Encoder).Encode
|
|
- (net/http.ResponseWriter).Write
|
|
dupl:
|
|
threshold: 150
|