diff --git a/.golangci.yml b/.golangci.yml index 65d89890..c5e4f3ba 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -5,21 +5,25 @@ run: tests: true linters: - enable: + disable: - dupl + - errcheck - goconst - # - gocyclo # Disabled: high complexity acceptable for large functions (see LINTING.md) - gosec - - misspell - revive + enable: + # - gocyclo # Disabled: high complexity acceptable for large functions (see LINTING.md) + - misspell - unconvert - unparam settings: dupl: threshold: 100 errcheck: - check-type-assertions: true + check-type-assertions: false check-blank: false + exclude-files: + - ".*_test\\.go$" exclude-functions: - (*database/sql.DB).Close - (*database/sql.Rows).Close @@ -35,50 +39,21 @@ linters: rules: - name: var-naming - name: exported - exclusions: - rules: - - path: _test\.go - linters: - - dupl - - errcheck - - goconst - - gocyclo - - gosec # Test files use insecure permissions and dummy files - - path: (.+)\.go$ - text: Error return value.*\.Close.*is not checked - - path: (.+)\.go$ - text: Error return value.*\.Rollback.*is not checked - - path: (.+)\.go$ - text: Error return value.*\.RemoveAll.*is not checked - - path: (.+)\.go$ - text: 'G104.*rows.Close' # Database rows.Close errors are non-critical - - path: (.+)\.go$ - text: 'G104.*conn.Close' # Connection close errors in error paths are non-critical - - path: (.+)\.go$ - text: 'G104.*tempFile.Close' # Temp file close errors are non-critical - - path: (.+)\.go$ - text: 'unused-parameter: parameter ''cmd'' seems to be unused' - - path: (.+)\.go$ - text: 'unused-parameter: parameter ''args'' seems to be unused' - - path: (.+)\.go$ - text: 'var-naming: avoid meaningless package names' - - path: (.+)\.go$ - text: exported.*SQLiteStorage.*stutters - - path: (.+)\.go$ - text: 'G201: SQL string formatting' - - path: (.+)\.go$ - text: G304.*file inclusion via variable - - path: (.+)\.go$ - text: 'G301: Expect directory permissions' - - path: (.+)\.go$ - text: 'G204: Subprocess launched' - - path: (.+)\.go$ - text: 'G115: integer overflow conversion' - - path: (export|sync|init)\.go$ - text: 'G302|G306.*0644' # JSONL and .gitignore should be world-readable - - path: server\.go$ - text: 'G302' # Socket directory permissions - - path: sqlite\.go$ - text: 'G104.*rows\.Close' # Database cleanup in error paths - - path: init\.go$ - text: 'G306' # .gitignore should be world-readable + +issues: + exclude-rules: + - path: _test\.go + linters: + - gosec + - revive + - text: "var-naming: avoid meaningless package names" + - text: "exported.*SQLiteStorage.*stutters" + - text: "G201: SQL string formatting" + - text: "G301: Expect directory permissions" + - text: "G204: Subprocess launched" + - text: "G115: integer overflow conversion" + - text: "G304.*file inclusion via variable" + - path: (export|sync|init)\.go + text: "G302|G306.*0644" + - path: server\.go + text: "G302"