mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 10:03:42 +08:00 
			
		
		
		
	full diff: https://github.com/creack/pty/compare/v1.1.18...v1.1.21 Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
		
			
				
	
	
		
			325 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			325 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
---
 | 
						|
# Reference: https://golangci-lint.run/usage/configuration/
 | 
						|
run:
 | 
						|
  timeout: 5m
 | 
						|
  # modules-download-mode: vendor
 | 
						|
 | 
						|
  # Include test files.
 | 
						|
  tests: true
 | 
						|
 | 
						|
  skip-dirs: []
 | 
						|
 | 
						|
  skip-files: []
 | 
						|
 | 
						|
output:
 | 
						|
  # colored-line-number|line-number|json|tab|checkstyle|code-climate, default is "colored-line-number".
 | 
						|
  format: colored-line-number
 | 
						|
  print-issued-lines: true
 | 
						|
  print-linter-name: true
 | 
						|
 | 
						|
# Linter specific settings. See below in the `linter.enable` section for details on what each linter is doing.
 | 
						|
linters-settings:
 | 
						|
  dogsled:
 | 
						|
    # Checks assignments with too many blank identifiers. Default is 2.
 | 
						|
    max-blank-identifiers: 2
 | 
						|
 | 
						|
  dupl:
 | 
						|
    # Tokens count to trigger issue.
 | 
						|
    threshold: 150
 | 
						|
 | 
						|
  errcheck:
 | 
						|
    # Report about not checking of errors in type assertions: `a := b.(MyStruct)`.
 | 
						|
    # Enabled as this is often overlooked by developers.
 | 
						|
    check-type-assertions: true
 | 
						|
    # Report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`.
 | 
						|
    # Disabled as we consider that if the developer did type `_`, it was on purpose.
 | 
						|
    # Note that while this isn't enforced by the linter, each and every case of ignored error should
 | 
						|
    # be accompanied with a comment explaining why that error is being discarded.
 | 
						|
    check-blank: false
 | 
						|
 | 
						|
  exhaustive:
 | 
						|
    # Indicates that switch statements are to be considered exhaustive if a
 | 
						|
    # 'default' case is present, even if all enum members aren't listed in the
 | 
						|
    # switch.
 | 
						|
    default-signifies-exhaustive: false
 | 
						|
 | 
						|
  funlen:
 | 
						|
    # funlen checks the number of lines/statements in a function.
 | 
						|
    # While is is always best to keep functions short for readability, maintainability and testing,
 | 
						|
    # the default are a bit too strict (60 lines / 40 statements), increase it to be more flexible.
 | 
						|
    lines: 160
 | 
						|
    statements: 70
 | 
						|
 | 
						|
  # NOTE: We don't set `gci` for import order as it supports only one prefix. Use `goimports.local-prefixes` instead.
 | 
						|
 | 
						|
  gocognit:
 | 
						|
    # Minimal code complexity to report, defaults to 30 in gocognit, defaults 10 in golangci.
 | 
						|
    # Use 15 as it allows for some flexibility while preventing too much complexity.
 | 
						|
    # NOTE: Similar to gocyclo.
 | 
						|
    min-complexity: 35
 | 
						|
 | 
						|
  nestif:
 | 
						|
    # Minimal complexity of if statements to report.
 | 
						|
    min-complexity: 8
 | 
						|
 | 
						|
  goconst:
 | 
						|
    # Minimal length of string constant.
 | 
						|
    min-len: 4
 | 
						|
    # Minimal occurrences count to trigger.
 | 
						|
    # Increase the default from 3 to 5 as small number of const usage can reduce readability instead of improving it.
 | 
						|
    min-occurrences: 5
 | 
						|
 | 
						|
  gocritic:
 | 
						|
    # Which checks should be disabled; can't be combined with 'enabled-checks'.
 | 
						|
    # See https://go-critic.github.io/overview#checks-overview
 | 
						|
    # To check which checks are enabled run `GL_DEBUG=gocritic golangci-lint run`
 | 
						|
    disabled-checks:
 | 
						|
      - hugeParam  # Very strict check on the size of variables being copied. Too strict for most developer.
 | 
						|
    # Enable multiple checks by tags, run `GL_DEBUG=gocritic golangci-lint run` to see all tags and checks.
 | 
						|
    # Empty list by default. See https://github.com/go-critic/go-critic#usage -> section "Tags".
 | 
						|
    enabled-tags:
 | 
						|
      - diagnostic
 | 
						|
      - style
 | 
						|
      - opinionated
 | 
						|
      - performance
 | 
						|
    settings:
 | 
						|
      rangeValCopy:
 | 
						|
        sizeThreshold: 1024  # Increase the allowed copied bytes in range.
 | 
						|
 | 
						|
  cyclop:
 | 
						|
    max-complexity: 35
 | 
						|
 | 
						|
  gocyclo:
 | 
						|
    # Similar check as gocognit.
 | 
						|
    # NOTE: We might be able to remove this linter as it is redundant with gocyclo. It is in golangci-lint, so we keep it for now.
 | 
						|
    min-complexity: 35
 | 
						|
 | 
						|
  godot:
 | 
						|
    # Check all top-level comments, not only declarations.
 | 
						|
    check-all: true
 | 
						|
 | 
						|
  gofmt:
 | 
						|
    # simplify code: gofmt with `-s` option.
 | 
						|
    simplify: true
 | 
						|
 | 
						|
  # NOTE: the goheader settings are set per-project.
 | 
						|
 | 
						|
  goimports:
 | 
						|
    # Put imports beginning with prefix after 3rd-party packages.
 | 
						|
    # It's a comma-separated list of prefixes.
 | 
						|
    local-prefixes: "github.com/creack/pty"
 | 
						|
 | 
						|
  golint:
 | 
						|
    # Minimal confidence for issues, default is 0.8.
 | 
						|
    min-confidence: 0.8
 | 
						|
 | 
						|
  gosimple:
 | 
						|
    # Select the Go version to target. The default is '1.13'.
 | 
						|
    go: "1.18"
 | 
						|
    # https://staticcheck.io/docs/options#checks
 | 
						|
    checks: ["all"]
 | 
						|
 | 
						|
  gosec:
 | 
						|
 | 
						|
  govet:
 | 
						|
    # Enable all available checks from go vet.
 | 
						|
    enable-all: false
 | 
						|
    # Report about shadowed variables.
 | 
						|
    check-shadowing: true
 | 
						|
 | 
						|
  # NOTE: depguard is disabled as it is very slow and made redundant by gomodguard.
 | 
						|
 | 
						|
  lll:
 | 
						|
    # Make sure everyone is on the same level, fix the tab width to go's default.
 | 
						|
    tab-width: 8
 | 
						|
    # Increase the default max line length to give more flexibility. Forcing newlines can reduce readability instead of improving it.
 | 
						|
    line-length: 180
 | 
						|
 | 
						|
  misspell:
 | 
						|
    locale: US
 | 
						|
    ignore-words:
 | 
						|
 | 
						|
  nakedret:
 | 
						|
    # Make an issue if func has more lines of code than this setting and it has naked returns; default is 30.
 | 
						|
    # NOTE: Consider setting this to 1 to prevent naked returns.
 | 
						|
    max-func-lines: 30
 | 
						|
 | 
						|
  nolintlint:
 | 
						|
    # Prevent ununsed directive to avoid stale comments.
 | 
						|
    allow-unused: false
 | 
						|
    # Require an explanation of nonzero length after each nolint directive.
 | 
						|
    require-explanation: true
 | 
						|
    # Exclude following linters from requiring an explanation.
 | 
						|
    # NOTE: It is strongly discouraged to put anything in there.
 | 
						|
    allow-no-explanation: []
 | 
						|
    # Enable to require nolint directives to mention the specific linter being suppressed. This ensurce the developer understand the reason being the error.
 | 
						|
    require-specific: true
 | 
						|
 | 
						|
  prealloc:
 | 
						|
    # NOTE: For most programs usage of prealloc will be a premature optimization.
 | 
						|
    #       Keep thing simple, pre-alloc what is obvious and profile the program for more complex scenarios.
 | 
						|
    #
 | 
						|
    simple: true       # Checkonly on simple loops that have no returns/breaks/continues/gotos in them.
 | 
						|
    range-loops: true  # Check range loops, true by default
 | 
						|
    for-loops: false   # Check suggestions on for loops, false by default
 | 
						|
 | 
						|
  rowserrcheck:
 | 
						|
    packages: []
 | 
						|
 | 
						|
  staticcheck:
 | 
						|
    # Select the Go version to target. The default is '1.13'.
 | 
						|
    go: "1.18"
 | 
						|
    # https://staticcheck.io/docs/options#checks
 | 
						|
    checks: ["all"]
 | 
						|
 | 
						|
  stylecheck:
 | 
						|
    # Select the Go version to target. The default is '1.13'.
 | 
						|
    go: "1.18"
 | 
						|
    # https://staticcheck.io/docs/options#checks
 | 
						|
    checks: ["all"]  # "-ST1000", "-ST1003", "-ST1016", "-ST1020", "-ST1021", "-ST1022"]
 | 
						|
 | 
						|
  tagliatelle:
 | 
						|
    # Check the struck tag name case.
 | 
						|
    case:
 | 
						|
      # Use the struct field name to check the name of the struct tag.
 | 
						|
      use-field-name: false
 | 
						|
      rules:
 | 
						|
        # Any struct tag type can be used.
 | 
						|
        # support string case: `camel`, `pascal`, `kebab`, `snake`, `goCamel`, `goPascal`, `goKebab`, `goSnake`, `upper`, `lower`
 | 
						|
        json: snake
 | 
						|
        firestore: camel
 | 
						|
        yaml: camel
 | 
						|
        xml: camel
 | 
						|
        bson: camel
 | 
						|
        avro: snake
 | 
						|
        mapstructure: kebab
 | 
						|
        envconfig: upper
 | 
						|
 | 
						|
  unparam:
 | 
						|
    # Don't create an error if an exported code have static params being used. It is often expected in libraries.
 | 
						|
    # NOTE: It would be nice if this linter would differentiate between a main package and a lib.
 | 
						|
    check-exported: true
 | 
						|
 | 
						|
  unused: {}
 | 
						|
 | 
						|
  whitespace:
 | 
						|
    multi-if: false    # Enforces newlines (or comments) after every multi-line if statement
 | 
						|
    multi-func: false  # Enforces newlines (or comments) after every multi-line function signature
 | 
						|
 | 
						|
# Run `golangci-lint help linters` to get the full list of linter with their description.
 | 
						|
linters:
 | 
						|
  disable-all: true
 | 
						|
  # NOTE: enable-all is deprecated because too  many people don't pin versions...
 | 
						|
  # We still require explicit documentation on why some linters are disabled.
 | 
						|
  # disable:
 | 
						|
  #   - depguard          # Go linter that checks if package imports are in a list of acceptable packages [fast: true, auto-fix: false]
 | 
						|
  #   - exhaustivestruct  # Checks if all struct's fields are initialized [fast: true, auto-fix: false]
 | 
						|
  #   - forbidigo         # Forbids identifiers [fast: true, auto-fix: false]
 | 
						|
  #   - gci               # Gci control golang package import order and make it always deterministic. [fast: true, auto-fix: true]
 | 
						|
  #   - godox             # Tool for detection of FIXME, TODO and other comment keywords [fast: true, auto-fix: false]
 | 
						|
  #   - goerr113          # Golang linter to check the errors handling expressions [fast: true, auto-fix: false]
 | 
						|
  #   - golint            # Golint differs from gofmt. Gofmt reformats Go source code, whereas golint prints out style mistakes [fast: false, auto-fix: false]
 | 
						|
  #   - gomnd             # An analyzer to detect magic numbers. [fast: true, auto-fix: false]
 | 
						|
  #   - gomoddirectives   # Manage the use of 'replace', 'retract', and 'excludes' directives in go.mod. [fast: true, auto-fix: false]
 | 
						|
  #   - interfacer        # Linter that suggests narrower interface types [fast: false, auto-fix: false]
 | 
						|
  #   - maligned          # Tool to detect Go structs that would take less memory if their fields were sorted [fast: false, auto-fix: false]
 | 
						|
  #   - nlreturn          # nlreturn checks for a new line before return and branch statements to increase code clarity [fast: true, auto-fix: false]
 | 
						|
  #   - scopelint         # Scopelint checks for unpinned variables in go programs [fast: true, auto-fix: false]
 | 
						|
  #   - wrapcheck         # Checks that errors returned from external packages are wrapped [fast: false, auto-fix: false]
 | 
						|
  #   - wsl               # Whitespace Linter - Forces you to use empty lines! [fast: true, auto-fix: false]
 | 
						|
 | 
						|
  # disable-reasons:
 | 
						|
  #   - depguard          # Checks whitelisted/blacklisted import path, but runs way too slow. Not that useful.
 | 
						|
  #   - exhaustivestruct  # Good concept, but not mature enough (errors on not assignable fields like locks) and too noisy when using AWS SDK as most fields are unused.
 | 
						|
  #   - forbidigo         # Great idea, but too strict out of the box. Probably will re-enable soon.
 | 
						|
  #   - gci               # Conflicts with goimports/gofumpt.
 | 
						|
  #   - godox             # Don't fail when finding TODO, FIXME, etc.
 | 
						|
  #   - goerr113          # Too many false positives.
 | 
						|
  #   - golint            # Deprecated (since v1.41.0) due to: The repository of the linter has been archived by the owner.  Replaced by revive.
 | 
						|
  #   - gomnd             # Checks for magic numbers. Disabled due to too many false positives not configurable (03/01/2020 v1.23.7).
 | 
						|
  #   - gomoddirectives   # Doesn't support //nolint to whitelist.
 | 
						|
  #   - interfacer        # Deprecated (since v1.38.0) due to: The repository of the linter has been archived by the owner.
 | 
						|
  #   - maligned          # Deprecated (since v1.38.0) due to: The repository of the linter has been archived by the owner.  Replaced by govet 'fieldalignment'.
 | 
						|
  #   - nlreturn          # Actually reduces readability in most cases.
 | 
						|
  #   - scopelint         # Deprecated (since v1.39.0) due to: The repository of the linter has been deprecated by the owner.  Replaced by exportloopref.
 | 
						|
  #   - wrapcheck         # Good concept, but always warns for http coded errors. Need to re-enable and whitelist our error package.
 | 
						|
  #   - wsl               # Forces to add newlines around blocks. Lots of false positives, not that useful.
 | 
						|
 | 
						|
  enable:
 | 
						|
    - asciicheck        # Simple linter to check that your code does not contain non-ASCII identifiers [fast: true, auto-fix: false]
 | 
						|
    - bodyclose         # checks whether HTTP response body is closed successfully [fast: false, auto-fix: false]
 | 
						|
    - cyclop            # checks function and package cyclomatic complexity [fast: false, auto-fix: false]
 | 
						|
    - dogsled           # Checks assignments with too many blank identifiers (e.g. x, _, _, _, := f()) [fast: true, auto-fix: false]
 | 
						|
    - dupl              # Tool for code clone detection [fast: true, auto-fix: false]
 | 
						|
    - durationcheck     # check for two durations multiplied together [fast: false, auto-fix: false]
 | 
						|
    - errcheck          # Errcheck is a program for checking for unchecked errors in go programs. These unchecked errors can be critical bugs in some cases [fast: false, auto-fix: false]
 | 
						|
    - errname           # Checks that sentinel errors are prefixed with the `Err` and error types are suffixed with the `Error`. [fast: false, auto-fix: false]
 | 
						|
    - errorlint         # go-errorlint is a source code linter for Go software that can be used to find code that will cause problems with the error wrapping scheme introduced in Go 1.13. [fast: false, auto-fix: false]
 | 
						|
    - exhaustive        # check exhaustiveness of enum switch statements [fast: false, auto-fix: false]
 | 
						|
    - exportloopref     # checks for pointers to enclosing loop variables [fast: false, auto-fix: false]
 | 
						|
    - forcetypeassert   # finds forced type assertions [fast: true, auto-fix: false]
 | 
						|
    - funlen            # Tool for detection of long functions [fast: true, auto-fix: false]
 | 
						|
    - gochecknoglobals  # check that no global variables exist [fast: true, auto-fix: false]
 | 
						|
    - gochecknoinits    # Checks that no init functions are present in Go code [fast: true, auto-fix: false]
 | 
						|
    - gocognit          # Computes and checks the cognitive complexity of functions [fast: true, auto-fix: false]
 | 
						|
    - goconst           # Finds repeated strings that could be replaced by a constant [fast: true, auto-fix: false]
 | 
						|
    - gocritic          # Provides many diagnostics that check for bugs, performance and style issues. [fast: false, auto-fix: false]
 | 
						|
    - gocyclo           # Computes and checks the cyclomatic complexity of functions [fast: true, auto-fix: false]
 | 
						|
    - godot             # Check if comments end in a period [fast: true, auto-fix: true]
 | 
						|
    - gofmt             # Gofmt checks whether code was gofmt-ed. By default this tool runs with -s option to check for code simplification [fast: true, auto-fix: true]
 | 
						|
    - gofumpt           # Gofumpt checks whether code was gofumpt-ed. [fast: true, auto-fix: true]
 | 
						|
    - goheader          # Checks is file header matches to pattern [fast: true, auto-fix: false]
 | 
						|
    - goimports         # Goimports does everything that gofmt does. Additionally it checks unused imports [fast: true, auto-fix: true]
 | 
						|
    - gomodguard        # Allow and block list linter for direct Go module dependencies. This is different from depguard where there are different block types for example version constraints and module recommendations. [fast: true, auto-fix: false]
 | 
						|
    - goprintffuncname  # Checks that printf-like functions are named with `f` at the end [fast: true, auto-fix: false]
 | 
						|
    - gosec             # (gas): Inspects source code for security problems [fast: false, auto-fix: false]
 | 
						|
    - gosimple          # (megacheck): Linter for Go source code that specializes in simplifying a code [fast: false, auto-fix: false]
 | 
						|
    - govet             # (vet, vetshadow): Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string [fast: false, auto-fix: false]
 | 
						|
    - importas          # Enforces consistent import aliases [fast: false, auto-fix: false]
 | 
						|
    - ineffassign       # Detects when assignments to existing variables are not used [fast: true, auto-fix: false]
 | 
						|
    - lll               # Reports long lines [fast: true, auto-fix: false]
 | 
						|
    - makezero          # Finds slice declarations with non-zero initial length [fast: false, auto-fix: false]
 | 
						|
    - misspell          # Finds commonly misspelled English words in comments [fast: true, auto-fix: true]
 | 
						|
    - nakedret          # Finds naked returns in functions greater than a specified function length [fast: true, auto-fix: false]
 | 
						|
    - nestif            # Reports deeply nested if statements [fast: true, auto-fix: false]
 | 
						|
    - nilerr            # Finds the code that returns nil even if it checks that the error is not nil. [fast: false, auto-fix: false]
 | 
						|
    - noctx             # noctx finds sending http request without context.Context [fast: false, auto-fix: false]
 | 
						|
    - nolintlint        # Reports ill-formed or insufficient nolint directives [fast: true, auto-fix: false]
 | 
						|
    - paralleltest      # paralleltest detects missing usage of t.Parallel() method in your Go test [fast: true, auto-fix: false]
 | 
						|
    - prealloc          # Finds slice declarations that could potentially be preallocated [fast: true, auto-fix: false]
 | 
						|
    - predeclared       # find code that shadows one of Go's predeclared identifiers [fast: true, auto-fix: false]
 | 
						|
    - promlinter        # Check Prometheus metrics naming via promlint [fast: true, auto-fix: false]
 | 
						|
    - revive            # Fast, configurable, extensible, flexible, and beautiful linter for Go. Drop-in replacement of golint. [fast: false, auto-fix: false]
 | 
						|
    # Disabled due to generic. Work in progress upstream.
 | 
						|
    # - rowserrcheck      # checks whether Err of rows is checked successfully [fast: false, auto-fix: false]
 | 
						|
    # Disabled due to generic. Work in progress upstream.
 | 
						|
    # - sqlclosecheck     # Checks that sql.Rows and sql.Stmt are closed. [fast: false, auto-fix: false]
 | 
						|
    - staticcheck       # (megacheck): Staticcheck is a go vet on steroids, applying a ton of static analysis checks [fast: false, auto-fix: false]
 | 
						|
    - stylecheck        # Stylecheck is a replacement for golint [fast: false, auto-fix: false]
 | 
						|
    # Disabled due to generic. Work in progress upstream.
 | 
						|
    # - tagliatelle       # Checks the struct tags. [fast: true, auto-fix: false]
 | 
						|
    # - testpackage       # linter that makes you use a separate _test package [fast: true, auto-fix: false]
 | 
						|
    - thelper           # thelper detects golang test helpers without t.Helper() call and checks the consistency of test helpers [fast: false, auto-fix: false]
 | 
						|
    - tparallel         # tparallel detects inappropriate usage of t.Parallel() method in your Go test codes [fast: false, auto-fix: false]
 | 
						|
    - typecheck         # Like the front-end of a Go compiler, parses and type-checks Go code [fast: false, auto-fix: false]
 | 
						|
    - unconvert         # Remove unnecessary type conversions [fast: false, auto-fix: false]
 | 
						|
    - unparam           # Reports unused function parameters [fast: false, auto-fix: false]
 | 
						|
    # Disabled due to way too many false positive in go1.20.
 | 
						|
    # - unused            # (megacheck): Checks Go code for unused constants, variables, functions and types [fast: false, auto-fix: false]
 | 
						|
    # Disabled due to generic. Work in progress upstream.
 | 
						|
    # - wastedassign      # wastedassign finds wasted assignment statements. [fast: false, auto-fix: false]
 | 
						|
    - whitespace        # Tool for detection of leading and trailing whitespace [fast: true, auto-fix: true]
 | 
						|
 | 
						|
issues:
 | 
						|
  exclude:
 | 
						|
    # Allow shadowing of 'err'.
 | 
						|
    - 'shadow: declaration of "err" shadows declaration'
 | 
						|
    # Allow shadowing of `ctx`.
 | 
						|
    - 'shadow: declaration of "ctx" shadows declaration'
 | 
						|
  # Maximum issues count per one linter. Set to 0 to disable. Default is 50.
 | 
						|
  max-per-linter: 10
 | 
						|
  # Disable default excludes. Always be explicit on what we exclude.
 | 
						|
  exclude-use-default: false
 | 
						|
  # Exclude some linters from running on tests files.
 | 
						|
  exclude-rules: []
 |