From 973f6289e1f4499f1ac83491e50ac24560de2b58 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Wed, 26 Feb 2025 03:30:25 +0100 Subject: [PATCH 01/30] chore: neutral configuration loader --- pkg/config/base_loader.go | 228 ++++++++++++++++++++++++++++++++++++++ pkg/config/config.go | 9 ++ pkg/config/loader.go | 194 +------------------------------- 3 files changed, 243 insertions(+), 188 deletions(-) create mode 100644 pkg/config/base_loader.go diff --git a/pkg/config/base_loader.go b/pkg/config/base_loader.go new file mode 100644 index 000000000000..2fd4d1cfb5f2 --- /dev/null +++ b/pkg/config/base_loader.go @@ -0,0 +1,228 @@ +package config + +import ( + "errors" + "fmt" + "os" + "path/filepath" + "slices" + + "github.com/go-viper/mapstructure/v2" + "github.com/mitchellh/go-homedir" + "github.com/spf13/viper" + + "github.com/golangci/golangci-lint/pkg/exitcodes" + "github.com/golangci/golangci-lint/pkg/fsutils" + "github.com/golangci/golangci-lint/pkg/logutils" +) + +type CFG interface { + IsInternalTest() bool + SetConfigDir(dir string) +} + +type BaseLoader struct { + opts LoaderOptions + + viper *viper.Viper + + log logutils.Log + + cfg CFG + args []string +} + +func NewBaseLoader(log logutils.Log, v *viper.Viper, opts LoaderOptions, cfg CFG, args []string) *BaseLoader { + return &BaseLoader{ + opts: opts, + viper: v, + log: log, + cfg: cfg, + args: args, + } +} + +func (l *BaseLoader) Load() error { + err := l.setConfigFile() + if err != nil { + return err + } + + err = l.parseConfig() + if err != nil { + return err + } + + return nil +} + +func (l *BaseLoader) setConfigFile() error { + configFile, err := l.evaluateOptions() + if err != nil { + if errors.Is(err, errConfigDisabled) { + return nil + } + + return fmt.Errorf("can't parse --config option: %w", err) + } + + if configFile != "" { + l.viper.SetConfigFile(configFile) + + // Assume YAML if the file has no extension. + if filepath.Ext(configFile) == "" { + l.viper.SetConfigType("yaml") + } + } else { + l.setupConfigFileSearch() + } + + return nil +} + +func (l *BaseLoader) evaluateOptions() (string, error) { + if l.opts.NoConfig && l.opts.Config != "" { + return "", errors.New("can't combine option --config and --no-config") + } + + if l.opts.NoConfig { + return "", errConfigDisabled + } + + configFile, err := homedir.Expand(l.opts.Config) + if err != nil { + return "", errors.New("failed to expand configuration path") + } + + return configFile, nil +} + +func (l *BaseLoader) setupConfigFileSearch() { + l.viper.SetConfigName(".golangci") + + configSearchPaths := l.getConfigSearchPaths() + + l.log.Infof("Config search paths: %s", configSearchPaths) + + for _, p := range configSearchPaths { + l.viper.AddConfigPath(p) + } +} + +func (l *BaseLoader) getConfigSearchPaths() []string { + firstArg := "./..." + if len(l.args) > 0 { + firstArg = l.args[0] + } + + absPath, err := filepath.Abs(firstArg) + if err != nil { + l.log.Warnf("Can't make abs path for %q: %s", firstArg, err) + absPath = filepath.Clean(firstArg) + } + + // start from it + var currentDir string + if fsutils.IsDir(absPath) { + currentDir = absPath + } else { + currentDir = filepath.Dir(absPath) + } + + // find all dirs from it up to the root + searchPaths := []string{"./"} + + for { + searchPaths = append(searchPaths, currentDir) + + parent := filepath.Dir(currentDir) + if currentDir == parent || parent == "" { + break + } + + currentDir = parent + } + + // find home directory for global config + if home, err := homedir.Dir(); err != nil { + l.log.Warnf("Can't get user's home directory: %v", err) + } else if !slices.Contains(searchPaths, home) { + searchPaths = append(searchPaths, home) + } + + return searchPaths +} + +func (l *BaseLoader) parseConfig() error { + if err := l.viper.ReadInConfig(); err != nil { + var configFileNotFoundError viper.ConfigFileNotFoundError + if errors.As(err, &configFileNotFoundError) { + // Load configuration from flags only. + err = l.viper.Unmarshal(l.cfg, customDecoderHook()) + if err != nil { + return fmt.Errorf("can't unmarshal config by viper (flags): %w", err) + } + + return nil + } + + return fmt.Errorf("can't read viper config: %w", err) + } + + err := l.setConfigDir() + if err != nil { + return err + } + + // Load configuration from all sources (flags, file). + if err := l.viper.Unmarshal(l.cfg, customDecoderHook()); err != nil { + return fmt.Errorf("can't unmarshal config by viper (flags, file): %w", err) + } + + if l.cfg.IsInternalTest() { // just for testing purposes: to detect config file usage + _, _ = fmt.Fprintln(logutils.StdOut, "test") + os.Exit(exitcodes.Success) + } + + return nil +} + +func (l *BaseLoader) setConfigDir() error { + usedConfigFile := l.viper.ConfigFileUsed() + if usedConfigFile == "" { + return nil + } + + if usedConfigFile == os.Stdin.Name() { + usedConfigFile = "" + l.log.Infof("Reading config file stdin") + } else { + var err error + usedConfigFile, err = fsutils.ShortestRelPath(usedConfigFile, "") + if err != nil { + l.log.Warnf("Can't pretty print config file path: %v", err) + } + + l.log.Infof("Used config file %s", usedConfigFile) + } + + usedConfigDir, err := filepath.Abs(filepath.Dir(usedConfigFile)) + if err != nil { + return errors.New("can't get config directory") + } + + l.cfg.SetConfigDir(usedConfigDir) + + return nil +} + +func customDecoderHook() viper.DecoderConfigOption { + return viper.DecodeHook(mapstructure.ComposeDecodeHookFunc( + // Default hooks (https://github.com/spf13/viper/blob/518241257478c557633ab36e474dfcaeb9a3c623/viper.go#L135-L138). + mapstructure.StringToTimeDurationHookFunc(), + mapstructure.StringToSliceHookFunc(","), + + // Needed for forbidigo, and output.formats. + mapstructure.TextUnmarshallerHookFunc(), + )) +} diff --git a/pkg/config/config.go b/pkg/config/config.go index 759f9223b4b5..b37b3ed4750a 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -46,10 +46,19 @@ func (c *Config) GetConfigDir() string { return c.cfgDir } +// SetConfigDir sets the path to directory that contains golangci-lint config file. +func (c *Config) SetConfigDir(dir string) { + c.cfgDir = dir +} + func (c *Config) GetBasePath() string { return c.basePath } +func (c *Config) IsInternalTest() bool { + return c.InternalTest +} + func (c *Config) Validate() error { validators := []func() error{ c.Run.Validate, diff --git a/pkg/config/loader.go b/pkg/config/loader.go index da64a3af36a3..be2549802be1 100644 --- a/pkg/config/loader.go +++ b/pkg/config/loader.go @@ -5,15 +5,11 @@ import ( "errors" "fmt" "os" - "path/filepath" "slices" - "github.com/go-viper/mapstructure/v2" - "github.com/mitchellh/go-homedir" "github.com/spf13/pflag" "github.com/spf13/viper" - "github.com/golangci/golangci-lint/pkg/exitcodes" "github.com/golangci/golangci-lint/pkg/fsutils" "github.com/golangci/golangci-lint/pkg/goutil" "github.com/golangci/golangci-lint/pkg/logutils" @@ -32,25 +28,18 @@ type LoadOptions struct { } type Loader struct { - opts LoaderOptions + *BaseLoader - viper *viper.Viper - fs *pflag.FlagSet + fs *pflag.FlagSet - log logutils.Log - - cfg *Config - args []string + cfg *Config } func NewLoader(log logutils.Log, v *viper.Viper, fs *pflag.FlagSet, opts LoaderOptions, cfg *Config, args []string) *Loader { return &Loader{ - opts: opts, - viper: v, - fs: fs, - log: log, - cfg: cfg, - args: args, + BaseLoader: NewBaseLoader(log, v, opts, cfg, args), + fs: fs, + cfg: cfg, } } @@ -109,166 +98,6 @@ func (l *Loader) Load(opts LoadOptions) error { return nil } -func (l *Loader) setConfigFile() error { - configFile, err := l.evaluateOptions() - if err != nil { - if errors.Is(err, errConfigDisabled) { - return nil - } - - return fmt.Errorf("can't parse --config option: %w", err) - } - - if configFile != "" { - l.viper.SetConfigFile(configFile) - - // Assume YAML if the file has no extension. - if filepath.Ext(configFile) == "" { - l.viper.SetConfigType("yaml") - } - } else { - l.setupConfigFileSearch() - } - - return nil -} - -func (l *Loader) evaluateOptions() (string, error) { - if l.opts.NoConfig && l.opts.Config != "" { - return "", errors.New("can't combine option --config and --no-config") - } - - if l.opts.NoConfig { - return "", errConfigDisabled - } - - configFile, err := homedir.Expand(l.opts.Config) - if err != nil { - return "", errors.New("failed to expand configuration path") - } - - return configFile, nil -} - -func (l *Loader) setupConfigFileSearch() { - l.viper.SetConfigName(".golangci") - - configSearchPaths := l.getConfigSearchPaths() - - l.log.Infof("Config search paths: %s", configSearchPaths) - - for _, p := range configSearchPaths { - l.viper.AddConfigPath(p) - } -} - -func (l *Loader) getConfigSearchPaths() []string { - firstArg := "./..." - if len(l.args) > 0 { - firstArg = l.args[0] - } - - absPath, err := filepath.Abs(firstArg) - if err != nil { - l.log.Warnf("Can't make abs path for %q: %s", firstArg, err) - absPath = filepath.Clean(firstArg) - } - - // start from it - var currentDir string - if fsutils.IsDir(absPath) { - currentDir = absPath - } else { - currentDir = filepath.Dir(absPath) - } - - // find all dirs from it up to the root - searchPaths := []string{"./"} - - for { - searchPaths = append(searchPaths, currentDir) - - parent := filepath.Dir(currentDir) - if currentDir == parent || parent == "" { - break - } - - currentDir = parent - } - - // find home directory for global config - if home, err := homedir.Dir(); err != nil { - l.log.Warnf("Can't get user's home directory: %v", err) - } else if !slices.Contains(searchPaths, home) { - searchPaths = append(searchPaths, home) - } - - return searchPaths -} - -func (l *Loader) parseConfig() error { - if err := l.viper.ReadInConfig(); err != nil { - var configFileNotFoundError viper.ConfigFileNotFoundError - if errors.As(err, &configFileNotFoundError) { - // Load configuration from flags only. - err = l.viper.Unmarshal(l.cfg, customDecoderHook()) - if err != nil { - return fmt.Errorf("can't unmarshal config by viper (flags): %w", err) - } - - return nil - } - - return fmt.Errorf("can't read viper config: %w", err) - } - - err := l.setConfigDir() - if err != nil { - return err - } - - // Load configuration from all sources (flags, file). - if err := l.viper.Unmarshal(l.cfg, customDecoderHook()); err != nil { - return fmt.Errorf("can't unmarshal config by viper (flags, file): %w", err) - } - - if l.cfg.InternalTest { // just for testing purposes: to detect config file usage - _, _ = fmt.Fprintln(logutils.StdOut, "test") - os.Exit(exitcodes.Success) - } - - return nil -} - -func (l *Loader) setConfigDir() error { - usedConfigFile := l.viper.ConfigFileUsed() - if usedConfigFile == "" { - return nil - } - - if usedConfigFile == os.Stdin.Name() { - usedConfigFile = "" - l.log.Infof("Reading config file stdin") - } else { - var err error - usedConfigFile, err = fsutils.ShortestRelPath(usedConfigFile, "") - if err != nil { - l.log.Warnf("Can't pretty print config file path: %v", err) - } - - l.log.Infof("Used config file %s", usedConfigFile) - } - - usedConfigDir, err := filepath.Abs(filepath.Dir(usedConfigFile)) - if err != nil { - return errors.New("can't get config directory") - } - - l.cfg.cfgDir = usedConfigDir - - return nil -} - // Hack to append values from StringSlice flags. // Viper always overrides StringSlice values. // https://github.com/spf13/viper/issues/1448 @@ -389,14 +218,3 @@ func (l *Loader) handleFormatterExclusions() { func (*Loader) handleFormatterDeprecations() { // The function is empty but deprecations will happen in the future. } - -func customDecoderHook() viper.DecoderConfigOption { - return viper.DecodeHook(mapstructure.ComposeDecodeHookFunc( - // Default hooks (https://github.com/spf13/viper/blob/518241257478c557633ab36e474dfcaeb9a3c623/viper.go#L135-L138). - mapstructure.StringToTimeDurationHookFunc(), - mapstructure.StringToSliceHookFunc(","), - - // Needed for forbidigo, and output.formats. - mapstructure.TextUnmarshallerHookFunc(), - )) -} From e24f69c78aa46f2329c8f0f024fd7c416016f18b Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Wed, 26 Feb 2025 03:31:01 +0100 Subject: [PATCH 02/30] chore: copy v1 configuration structures The structures are altered to use pointer on builtin types. The field version is added to detect already migrated file. --- .../internal/migrate/one/base_rule.go | 9 + pkg/commands/internal/migrate/one/config.go | 29 + pkg/commands/internal/migrate/one/issues.go | 32 + pkg/commands/internal/migrate/one/linters.go | 11 + .../internal/migrate/one/linters_settings.go | 865 ++++++++++++++++++ pkg/commands/internal/migrate/one/output.go | 39 + pkg/commands/internal/migrate/one/run.go | 25 + pkg/commands/internal/migrate/one/severity.go | 12 + 8 files changed, 1022 insertions(+) create mode 100644 pkg/commands/internal/migrate/one/base_rule.go create mode 100644 pkg/commands/internal/migrate/one/config.go create mode 100644 pkg/commands/internal/migrate/one/issues.go create mode 100644 pkg/commands/internal/migrate/one/linters.go create mode 100644 pkg/commands/internal/migrate/one/linters_settings.go create mode 100644 pkg/commands/internal/migrate/one/output.go create mode 100644 pkg/commands/internal/migrate/one/run.go create mode 100644 pkg/commands/internal/migrate/one/severity.go diff --git a/pkg/commands/internal/migrate/one/base_rule.go b/pkg/commands/internal/migrate/one/base_rule.go new file mode 100644 index 000000000000..5f9f8db6d57d --- /dev/null +++ b/pkg/commands/internal/migrate/one/base_rule.go @@ -0,0 +1,9 @@ +package one + +type BaseRule struct { + Linters []string `mapstructure:"linters"` + Path *string `mapstructure:"path"` + PathExcept *string `mapstructure:"path-except"` + Text *string `mapstructure:"text"` + Source *string `mapstructure:"source"` +} diff --git a/pkg/commands/internal/migrate/one/config.go b/pkg/commands/internal/migrate/one/config.go new file mode 100644 index 000000000000..0b0b08442027 --- /dev/null +++ b/pkg/commands/internal/migrate/one/config.go @@ -0,0 +1,29 @@ +package one + +type Config struct { + cfgDir string // Path to the directory containing golangci-lint config file. + + Version string `mapstructure:"version"` // From v2, to be able to detect already migrated config file. + + Run Run `mapstructure:"run"` + + Output Output `mapstructure:"output"` + + LintersSettings LintersSettings `mapstructure:"linters-settings"` + Linters Linters `mapstructure:"linters"` + Issues Issues `mapstructure:"issues"` + Severity Severity `mapstructure:"severity"` +} + +func NewConfig() *Config { + return &Config{} +} + +// SetConfigDir sets the path to directory that contains golangci-lint config file. +func (c *Config) SetConfigDir(dir string) { + c.cfgDir = dir +} + +func (*Config) IsInternalTest() bool { + return false +} diff --git a/pkg/commands/internal/migrate/one/issues.go b/pkg/commands/internal/migrate/one/issues.go new file mode 100644 index 000000000000..cdfbf3828fb1 --- /dev/null +++ b/pkg/commands/internal/migrate/one/issues.go @@ -0,0 +1,32 @@ +package one + +type Issues struct { + IncludeDefaultExcludes []string `mapstructure:"include"` + ExcludeCaseSensitive *bool `mapstructure:"exclude-case-sensitive"` + ExcludePatterns []string `mapstructure:"exclude"` + ExcludeRules []ExcludeRule `mapstructure:"exclude-rules"` + UseDefaultExcludes *bool `mapstructure:"exclude-use-default"` + + ExcludeGenerated *string `mapstructure:"exclude-generated"` + + ExcludeFiles []string `mapstructure:"exclude-files"` + ExcludeDirs []string `mapstructure:"exclude-dirs"` + + UseDefaultExcludeDirs *bool `mapstructure:"exclude-dirs-use-default"` + + MaxIssuesPerLinter *int `mapstructure:"max-issues-per-linter"` + MaxSameIssues *int `mapstructure:"max-same-issues"` + UniqByLine *bool `mapstructure:"uniq-by-line"` + + DiffFromRevision *string `mapstructure:"new-from-rev"` + DiffFromMergeBase *string `mapstructure:"new-from-merge-base"` + DiffPatchFilePath *string `mapstructure:"new-from-patch"` + WholeFiles *bool `mapstructure:"whole-files"` + Diff *bool `mapstructure:"new"` + + NeedFix *bool `mapstructure:"fix"` +} + +type ExcludeRule struct { + BaseRule `mapstructure:",squash"` +} diff --git a/pkg/commands/internal/migrate/one/linters.go b/pkg/commands/internal/migrate/one/linters.go new file mode 100644 index 000000000000..4cd3165eddc9 --- /dev/null +++ b/pkg/commands/internal/migrate/one/linters.go @@ -0,0 +1,11 @@ +package one + +type Linters struct { + Enable []string `mapstructure:"enable"` + Disable []string `mapstructure:"disable"` + EnableAll *bool `mapstructure:"enable-all"` + DisableAll *bool `mapstructure:"disable-all"` + Fast *bool `mapstructure:"fast"` + + Presets []string `mapstructure:"presets"` +} diff --git a/pkg/commands/internal/migrate/one/linters_settings.go b/pkg/commands/internal/migrate/one/linters_settings.go new file mode 100644 index 000000000000..af9991629c1c --- /dev/null +++ b/pkg/commands/internal/migrate/one/linters_settings.go @@ -0,0 +1,865 @@ +package one + +import ( + "encoding" + + "gopkg.in/yaml.v3" + + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" +) + +type LintersSettings struct { + Asasalint AsasalintSettings `mapstructure:"asasalint"` + BiDiChk BiDiChkSettings `mapstructure:"bidichk"` + CopyLoopVar CopyLoopVarSettings `mapstructure:"copyloopvar"` + Cyclop Cyclop `mapstructure:"cyclop"` + Decorder DecorderSettings `mapstructure:"decorder"` + Depguard DepGuardSettings `mapstructure:"depguard"` + Dogsled DogsledSettings `mapstructure:"dogsled"` + Dupl DuplSettings `mapstructure:"dupl"` + DupWord DupWordSettings `mapstructure:"dupword"` + Errcheck ErrcheckSettings `mapstructure:"errcheck"` + ErrChkJSON ErrChkJSONSettings `mapstructure:"errchkjson"` + ErrorLint ErrorLintSettings `mapstructure:"errorlint"` + Exhaustive ExhaustiveSettings `mapstructure:"exhaustive"` + Exhaustruct ExhaustructSettings `mapstructure:"exhaustruct"` + Fatcontext FatcontextSettings `mapstructure:"fatcontext"` + Forbidigo ForbidigoSettings `mapstructure:"forbidigo"` + Funlen FunlenSettings `mapstructure:"funlen"` + GinkgoLinter GinkgoLinterSettings `mapstructure:"ginkgolinter"` + Gocognit GocognitSettings `mapstructure:"gocognit"` + GoChecksumType GoChecksumTypeSettings `mapstructure:"gochecksumtype"` + Goconst GoConstSettings `mapstructure:"goconst"` + Gocritic GoCriticSettings `mapstructure:"gocritic"` + Gocyclo GoCycloSettings `mapstructure:"gocyclo"` + Godot GodotSettings `mapstructure:"godot"` + Godox GodoxSettings `mapstructure:"godox"` + Goheader GoHeaderSettings `mapstructure:"goheader"` + GoModDirectives GoModDirectivesSettings `mapstructure:"gomoddirectives"` + Gomodguard GoModGuardSettings `mapstructure:"gomodguard"` + Gosec GoSecSettings `mapstructure:"gosec"` + Gosimple StaticCheckSettings `mapstructure:"gosimple"` + Gosmopolitan GosmopolitanSettings `mapstructure:"gosmopolitan"` + Govet GovetSettings `mapstructure:"govet"` + Grouper GrouperSettings `mapstructure:"grouper"` + Iface IfaceSettings `mapstructure:"iface"` + ImportAs ImportAsSettings `mapstructure:"importas"` + Inamedparam INamedParamSettings `mapstructure:"inamedparam"` + InterfaceBloat InterfaceBloatSettings `mapstructure:"interfacebloat"` + Ireturn IreturnSettings `mapstructure:"ireturn"` + Lll LllSettings `mapstructure:"lll"` + LoggerCheck LoggerCheckSettings `mapstructure:"loggercheck"` + MaintIdx MaintIdxSettings `mapstructure:"maintidx"` + Makezero MakezeroSettings `mapstructure:"makezero"` + Misspell MisspellSettings `mapstructure:"misspell"` + Mnd MndSettings `mapstructure:"mnd"` + MustTag MustTagSettings `mapstructure:"musttag"` + Nakedret NakedretSettings `mapstructure:"nakedret"` + Nestif NestifSettings `mapstructure:"nestif"` + NilNil NilNilSettings `mapstructure:"nilnil"` + Nlreturn NlreturnSettings `mapstructure:"nlreturn"` + NoLintLint NoLintLintSettings `mapstructure:"nolintlint"` + NoNamedReturns NoNamedReturnsSettings `mapstructure:"nonamedreturns"` + ParallelTest ParallelTestSettings `mapstructure:"paralleltest"` + PerfSprint PerfSprintSettings `mapstructure:"perfsprint"` + Prealloc PreallocSettings `mapstructure:"prealloc"` + Predeclared PredeclaredSettings `mapstructure:"predeclared"` + Promlinter PromlinterSettings `mapstructure:"promlinter"` + ProtoGetter ProtoGetterSettings `mapstructure:"protogetter"` + Reassign ReassignSettings `mapstructure:"reassign"` + Recvcheck RecvcheckSettings `mapstructure:"recvcheck"` + Revive ReviveSettings `mapstructure:"revive"` + RowsErrCheck RowsErrCheckSettings `mapstructure:"rowserrcheck"` + SlogLint SlogLintSettings `mapstructure:"sloglint"` + Spancheck SpancheckSettings `mapstructure:"spancheck"` + Staticcheck StaticCheckSettings `mapstructure:"staticcheck"` + Stylecheck StaticCheckSettings `mapstructure:"stylecheck"` + TagAlign TagAlignSettings `mapstructure:"tagalign"` + Tagliatelle TagliatelleSettings `mapstructure:"tagliatelle"` + Tenv TenvSettings `mapstructure:"tenv"` + Testifylint TestifylintSettings `mapstructure:"testifylint"` + Testpackage TestpackageSettings `mapstructure:"testpackage"` + Thelper ThelperSettings `mapstructure:"thelper"` + Unconvert UnconvertSettings `mapstructure:"unconvert"` + Unparam UnparamSettings `mapstructure:"unparam"` + Unused UnusedSettings `mapstructure:"unused"` + UseStdlibVars UseStdlibVarsSettings `mapstructure:"usestdlibvars"` + UseTesting UseTestingSettings `mapstructure:"usetesting"` + Varnamelen VarnamelenSettings `mapstructure:"varnamelen"` + Whitespace WhitespaceSettings `mapstructure:"whitespace"` + Wrapcheck WrapcheckSettings `mapstructure:"wrapcheck"` + WSL WSLSettings `mapstructure:"wsl"` + + Custom map[string]CustomLinterSettings `mapstructure:"custom"` + + Gci GciSettings `mapstructure:"gci"` + GoFmt GoFmtSettings `mapstructure:"gofmt"` + GoFumpt GoFumptSettings `mapstructure:"gofumpt"` + GoImports GoImportsSettings `mapstructure:"goimports"` +} + +type AsasalintSettings struct { + Exclude []string `mapstructure:"exclude"` + UseBuiltinExclusions *bool `mapstructure:"use-builtin-exclusions"` + IgnoreTest *bool `mapstructure:"ignore-test"` +} + +type BiDiChkSettings struct { + LeftToRightEmbedding *bool `mapstructure:"left-to-right-embedding"` + RightToLeftEmbedding *bool `mapstructure:"right-to-left-embedding"` + PopDirectionalFormatting *bool `mapstructure:"pop-directional-formatting"` + LeftToRightOverride *bool `mapstructure:"left-to-right-override"` + RightToLeftOverride *bool `mapstructure:"right-to-left-override"` + LeftToRightIsolate *bool `mapstructure:"left-to-right-isolate"` + RightToLeftIsolate *bool `mapstructure:"right-to-left-isolate"` + FirstStrongIsolate *bool `mapstructure:"first-strong-isolate"` + PopDirectionalIsolate *bool `mapstructure:"pop-directional-isolate"` +} + +type CopyLoopVarSettings struct { + CheckAlias *bool `mapstructure:"check-alias"` + + // Deprecated: use CheckAlias + IgnoreAlias *bool `mapstructure:"ignore-alias"` +} + +type Cyclop struct { + MaxComplexity *int `mapstructure:"max-complexity"` + PackageAverage *float64 `mapstructure:"package-average"` + SkipTests *bool `mapstructure:"skip-tests"` +} + +type DepGuardSettings struct { + Rules map[string]*DepGuardList `mapstructure:"rules"` +} + +type DepGuardList struct { + ListMode *string `mapstructure:"list-mode"` + Files []string `mapstructure:"files"` + Allow []string `mapstructure:"allow"` + Deny []DepGuardDeny `mapstructure:"deny"` +} + +type DepGuardDeny struct { + Pkg *string `mapstructure:"pkg"` + Desc *string `mapstructure:"desc"` +} + +type DecorderSettings struct { + DecOrder []string `mapstructure:"dec-order"` + IgnoreUnderscoreVars *bool `mapstructure:"ignore-underscore-vars"` + DisableDecNumCheck *bool `mapstructure:"disable-dec-num-check"` + DisableTypeDecNumCheck *bool `mapstructure:"disable-type-dec-num-check"` + DisableConstDecNumCheck *bool `mapstructure:"disable-const-dec-num-check"` + DisableVarDecNumCheck *bool `mapstructure:"disable-var-dec-num-check"` + DisableDecOrderCheck *bool `mapstructure:"disable-dec-order-check"` + DisableInitFuncFirstCheck *bool `mapstructure:"disable-init-func-first-check"` +} + +type DogsledSettings struct { + MaxBlankIdentifiers *int `mapstructure:"max-blank-identifiers"` +} + +type DuplSettings struct { + Threshold *int `mapstructure:"threshold"` +} + +type DupWordSettings struct { + Keywords []string `mapstructure:"keywords"` + Ignore []string `mapstructure:"ignore"` +} + +type ErrcheckSettings struct { + DisableDefaultExclusions *bool `mapstructure:"disable-default-exclusions"` + CheckTypeAssertions *bool `mapstructure:"check-type-assertions"` + CheckAssignToBlank *bool `mapstructure:"check-blank"` + ExcludeFunctions []string `mapstructure:"exclude-functions"` + + // Deprecated: use ExcludeFunctions instead + Exclude *string `mapstructure:"exclude"` + + // Deprecated: use ExcludeFunctions instead + Ignore *string `mapstructure:"ignore"` +} + +type ErrChkJSONSettings struct { + CheckErrorFreeEncoding *bool `mapstructure:"check-error-free-encoding"` + ReportNoExported *bool `mapstructure:"report-no-exported"` +} + +type ErrorLintSettings struct { + Errorf *bool `mapstructure:"errorf"` + ErrorfMulti *bool `mapstructure:"errorf-multi"` + Asserts *bool `mapstructure:"asserts"` + Comparison *bool `mapstructure:"comparison"` + AllowedErrors []ErrorLintAllowPair `mapstructure:"allowed-errors"` + AllowedErrorsWildcard []ErrorLintAllowPair `mapstructure:"allowed-errors-wildcard"` +} + +type ErrorLintAllowPair struct { + Err *string `mapstructure:"err"` + Fun *string `mapstructure:"fun"` +} + +type ExhaustiveSettings struct { + Check []string `mapstructure:"check"` + CheckGenerated *bool `mapstructure:"check-generated"` + DefaultSignifiesExhaustive *bool `mapstructure:"default-signifies-exhaustive"` + IgnoreEnumMembers *string `mapstructure:"ignore-enum-members"` + IgnoreEnumTypes *string `mapstructure:"ignore-enum-types"` + PackageScopeOnly *bool `mapstructure:"package-scope-only"` + ExplicitExhaustiveMap *bool `mapstructure:"explicit-exhaustive-map"` + ExplicitExhaustiveSwitch *bool `mapstructure:"explicit-exhaustive-switch"` + DefaultCaseRequired *bool `mapstructure:"default-case-required"` +} + +type ExhaustructSettings struct { + Include []string `mapstructure:"include"` + Exclude []string `mapstructure:"exclude"` +} + +type FatcontextSettings struct { + CheckStructPointers *bool `mapstructure:"check-struct-pointers"` +} + +type ForbidigoSettings struct { + Forbid []ForbidigoPattern `mapstructure:"forbid"` + ExcludeGodocExamples *bool `mapstructure:"exclude-godoc-examples"` + AnalyzeTypes *bool `mapstructure:"analyze-types"` +} + +var _ encoding.TextUnmarshaler = &ForbidigoPattern{} + +// ForbidigoPattern corresponds to forbidigo.pattern and adds mapstructure support. +// The YAML field names must match what forbidigo expects. +type ForbidigoPattern struct { + // patternString gets populated when the config contains a *string as entry in ForbidigoSettings.Forbid[] + // because ForbidigoPattern implements encoding.TextUnmarshaler + // and the reader uses the mapstructure.TextUnmarshallerHookFunc as decoder hook. + // + // If the entry is a map, then the other fields are set as usual by mapstructure. + patternString *string + Pattern *string `yaml:"p" mapstructure:"p"` + Package *string `yaml:"pkg,omitempty" mapstructure:"pkg,omitempty"` + Msg *string `yaml:"msg,omitempty" mapstructure:"msg,omitempty"` +} + +func (p *ForbidigoPattern) UnmarshalText(text []byte) error { + // Validation happens when instantiating forbidigo. + p.patternString = ptr.Pointer(string(text)) + return nil +} + +// MarshalString converts the pattern into a *string as needed by forbidigo.NewLinter. +// +// MarshalString is intentionally not called MarshalText, +// although it has the same signature +// because implementing encoding.TextMarshaler led to infinite recursion when yaml.Marshal called MarshalText. +func (p *ForbidigoPattern) MarshalString() ([]byte, error) { + if ptr.Deref(p.patternString) != "" { + return []byte(ptr.Deref(p.patternString)), nil + } + + return yaml.Marshal(p) +} + +type FunlenSettings struct { + Lines *int `mapstructure:"lines"` + Statements *int `mapstructure:"statements"` + IgnoreComments *bool `mapstructure:"ignore-comments"` +} + +type GinkgoLinterSettings struct { + SuppressLenAssertion *bool `mapstructure:"suppress-len-assertion"` + SuppressNilAssertion *bool `mapstructure:"suppress-nil-assertion"` + SuppressErrAssertion *bool `mapstructure:"suppress-err-assertion"` + SuppressCompareAssertion *bool `mapstructure:"suppress-compare-assertion"` + SuppressAsyncAssertion *bool `mapstructure:"suppress-async-assertion"` + SuppressTypeCompareWarning *bool `mapstructure:"suppress-type-compare-assertion"` + ForbidFocusContainer *bool `mapstructure:"forbid-focus-container"` + AllowHaveLenZero *bool `mapstructure:"allow-havelen-zero"` + ForceExpectTo *bool `mapstructure:"force-expect-to"` + ValidateAsyncIntervals *bool `mapstructure:"validate-async-intervals"` + ForbidSpecPollution *bool `mapstructure:"forbid-spec-pollution"` + ForceSucceedForFuncs *bool `mapstructure:"force-succeed"` +} + +type GoChecksumTypeSettings struct { + DefaultSignifiesExhaustive *bool `mapstructure:"default-signifies-exhaustive"` + IncludeSharedInterfaces *bool `mapstructure:"include-shared-interfaces"` +} + +type GocognitSettings struct { + MinComplexity *int `mapstructure:"min-complexity"` +} + +type GoConstSettings struct { + IgnoreStrings *string `mapstructure:"ignore-strings"` + IgnoreTests *bool `mapstructure:"ignore-tests"` + MatchWithConstants *bool `mapstructure:"match-constant"` + MinStringLen *int `mapstructure:"min-len"` + MinOccurrencesCount *int `mapstructure:"min-occurrences"` + ParseNumbers *bool `mapstructure:"numbers"` + NumberMin *int `mapstructure:"min"` + NumberMax *int `mapstructure:"max"` + IgnoreCalls *bool `mapstructure:"ignore-calls"` +} + +type GoCriticSettings struct { + Go *string `mapstructure:"-"` + DisableAll *bool `mapstructure:"disable-all"` + EnabledChecks []string `mapstructure:"enabled-checks"` + EnableAll *bool `mapstructure:"enable-all"` + DisabledChecks []string `mapstructure:"disabled-checks"` + EnabledTags []string `mapstructure:"enabled-tags"` + DisabledTags []string `mapstructure:"disabled-tags"` + SettingsPerCheck map[string]GoCriticCheckSettings `mapstructure:"settings"` +} + +type GoCriticCheckSettings map[string]any + +type GoCycloSettings struct { + MinComplexity *int `mapstructure:"min-complexity"` +} + +type GodotSettings struct { + Scope *string `mapstructure:"scope"` + Exclude []string `mapstructure:"exclude"` + Capital *bool `mapstructure:"capital"` + Period *bool `mapstructure:"period"` + + // Deprecated: use Scope instead + CheckAll *bool `mapstructure:"check-all"` +} + +type GodoxSettings struct { + Keywords []string `mapstructure:"keywords"` +} + +type GoHeaderSettings struct { + Values map[string]map[string]string `mapstructure:"values"` + Template *string `mapstructure:"template"` + TemplatePath *string `mapstructure:"template-path"` +} + +type GoModDirectivesSettings struct { + ReplaceAllowList []string `mapstructure:"replace-allow-list"` + ReplaceLocal *bool `mapstructure:"replace-local"` + ExcludeForbidden *bool `mapstructure:"exclude-forbidden"` + RetractAllowNoExplanation *bool `mapstructure:"retract-allow-no-explanation"` + ToolchainForbidden *bool `mapstructure:"toolchain-forbidden"` + ToolchainPattern *string `mapstructure:"toolchain-pattern"` + ToolForbidden *bool `mapstructure:"tool-forbidden"` + GoDebugForbidden *bool `mapstructure:"go-debug-forbidden"` + GoVersionPattern *string `mapstructure:"go-version-pattern"` +} + +type GoModGuardSettings struct { + Allowed struct { + Modules []string `mapstructure:"modules"` + Domains []string `mapstructure:"domains"` + } `mapstructure:"allowed"` + Blocked struct { + Modules []map[string]struct { + Recommendations []string `mapstructure:"recommendations"` + Reason *string `mapstructure:"reason"` + } `mapstructure:"modules"` + Versions []map[string]struct { + Version *string `mapstructure:"version"` + Reason *string `mapstructure:"reason"` + } `mapstructure:"versions"` + LocalReplaceDirectives *bool `mapstructure:"local_replace_directives"` + } `mapstructure:"blocked"` +} + +type GoSecSettings struct { + Includes []string `mapstructure:"includes"` + Excludes []string `mapstructure:"excludes"` + Severity *string `mapstructure:"severity"` + Confidence *string `mapstructure:"confidence"` + ExcludeGenerated *bool `mapstructure:"exclude-generated"` + Config map[string]any `mapstructure:"config"` + Concurrency *int `mapstructure:"concurrency"` +} + +type GosmopolitanSettings struct { + AllowTimeLocal *bool `mapstructure:"allow-time-local"` + EscapeHatches []string `mapstructure:"escape-hatches"` + IgnoreTests *bool `mapstructure:"ignore-tests"` + WatchForScripts []string `mapstructure:"watch-for-scripts"` +} + +type GovetSettings struct { + Go *string `mapstructure:"-"` + + Enable []string `mapstructure:"enable"` + Disable []string `mapstructure:"disable"` + EnableAll *bool `mapstructure:"enable-all"` + DisableAll *bool `mapstructure:"disable-all"` + + Settings map[string]map[string]any `mapstructure:"settings"` + + // Deprecated: the linter should be enabled inside Enable. + CheckShadowing *bool `mapstructure:"check-shadowing"` +} + +type GrouperSettings struct { + ConstRequireSingleConst *bool `mapstructure:"const-require-single-const"` + ConstRequireGrouping *bool `mapstructure:"const-require-grouping"` + ImportRequireSingleImport *bool `mapstructure:"import-require-single-import"` + ImportRequireGrouping *bool `mapstructure:"import-require-grouping"` + TypeRequireSingleType *bool `mapstructure:"type-require-single-type"` + TypeRequireGrouping *bool `mapstructure:"type-require-grouping"` + VarRequireSingleVar *bool `mapstructure:"var-require-single-var"` + VarRequireGrouping *bool `mapstructure:"var-require-grouping"` +} + +type IfaceSettings struct { + Enable []string `mapstructure:"enable"` + Settings map[string]map[string]any `mapstructure:"settings"` +} + +type ImportAsSettings struct { + Alias []ImportAsAlias `mapstructure:"alias"` + NoUnaliased *bool `mapstructure:"no-unaliased"` + NoExtraAliases *bool `mapstructure:"no-extra-aliases"` +} + +type ImportAsAlias struct { + Pkg *string `mapstructure:"pkg"` + Alias *string `mapstructure:"alias"` +} + +type INamedParamSettings struct { + SkipSingleParam *bool `mapstructure:"skip-single-param"` +} + +type InterfaceBloatSettings struct { + Max *int `mapstructure:"max"` +} + +type IreturnSettings struct { + Allow []string `mapstructure:"allow"` + Reject []string `mapstructure:"reject"` +} + +type LllSettings struct { + LineLength *int `mapstructure:"line-length"` + TabWidth *int `mapstructure:"tab-width"` +} + +type LoggerCheckSettings struct { + Kitlog *bool `mapstructure:"kitlog"` + Klog *bool `mapstructure:"klog"` + Logr *bool `mapstructure:"logr"` + Slog *bool `mapstructure:"slog"` + Zap *bool `mapstructure:"zap"` + RequireStringKey *bool `mapstructure:"require-string-key"` + NoPrintfLike *bool `mapstructure:"no-printf-like"` + Rules []string `mapstructure:"rules"` +} + +type MaintIdxSettings struct { + Under *int `mapstructure:"under"` +} + +type MakezeroSettings struct { + Always *bool `mapstructure:"always"` +} + +type MisspellSettings struct { + Mode *string `mapstructure:"mode"` + Locale *string `mapstructure:"locale"` + ExtraWords []MisspellExtraWords `mapstructure:"extra-words"` + // TODO(ldez): v2 the option must be renamed to `IgnoredRules`. + IgnoreWords []string `mapstructure:"ignore-words"` +} + +type MisspellExtraWords struct { + Typo *string `mapstructure:"typo"` + Correction *string `mapstructure:"correction"` +} + +type MustTagSettings struct { + Functions []struct { + Name *string `mapstructure:"name"` + Tag *string `mapstructure:"tag"` + ArgPos *int `mapstructure:"arg-pos"` + } `mapstructure:"functions"` +} + +type NakedretSettings struct { + MaxFuncLines uint `mapstructure:"max-func-lines"` +} + +type NestifSettings struct { + MinComplexity *int `mapstructure:"min-complexity"` +} + +type NilNilSettings struct { + DetectOpposite *bool `mapstructure:"detect-opposite"` + CheckedTypes []string `mapstructure:"checked-types"` +} + +type NlreturnSettings struct { + BlockSize *int `mapstructure:"block-size"` +} + +type MndSettings struct { + Checks []string `mapstructure:"checks"` + IgnoredNumbers []string `mapstructure:"ignored-numbers"` + IgnoredFiles []string `mapstructure:"ignored-files"` + IgnoredFunctions []string `mapstructure:"ignored-functions"` +} + +type NoLintLintSettings struct { + RequireExplanation *bool `mapstructure:"require-explanation"` + RequireSpecific *bool `mapstructure:"require-specific"` + AllowNoExplanation []string `mapstructure:"allow-no-explanation"` + AllowUnused *bool `mapstructure:"allow-unused"` +} + +type NoNamedReturnsSettings struct { + ReportErrorInDefer *bool `mapstructure:"report-error-in-defer"` +} + +type ParallelTestSettings struct { + Go *string `mapstructure:"-"` + IgnoreMissing *bool `mapstructure:"ignore-missing"` + IgnoreMissingSubtests *bool `mapstructure:"ignore-missing-subtests"` +} + +type PerfSprintSettings struct { + IntegerFormat *bool `mapstructure:"integer-format"` + IntConversion *bool `mapstructure:"int-conversion"` + + ErrorFormat *bool `mapstructure:"error-format"` + ErrError *bool `mapstructure:"err-error"` + ErrorF *bool `mapstructure:"errorf"` + + StringFormat *bool `mapstructure:"string-format"` + SprintF1 *bool `mapstructure:"sprintf1"` + StrConcat *bool `mapstructure:"strconcat"` + + BoolFormat *bool `mapstructure:"bool-format"` + HexFormat *bool `mapstructure:"hex-format"` +} + +type PreallocSettings struct { + Simple *bool `mapstructure:"simple"` + RangeLoops *bool `mapstructure:"range-loops"` + ForLoops *bool `mapstructure:"for-loops"` +} + +type PredeclaredSettings struct { + Ignore *string `mapstructure:"ignore"` + Qualified *bool `mapstructure:"q"` +} + +type PromlinterSettings struct { + Strict *bool `mapstructure:"strict"` + DisabledLinters []string `mapstructure:"disabled-linters"` +} + +type ProtoGetterSettings struct { + SkipGeneratedBy []string `mapstructure:"skip-generated-by"` + SkipFiles []string `mapstructure:"skip-files"` + SkipAnyGenerated *bool `mapstructure:"skip-any-generated"` + ReplaceFirstArgInAppend *bool `mapstructure:"replace-first-arg-in-append"` +} + +type ReassignSettings struct { + Patterns []string `mapstructure:"patterns"` +} + +type RecvcheckSettings struct { + DisableBuiltin *bool `mapstructure:"disable-builtin"` + Exclusions []string `mapstructure:"exclusions"` +} + +type ReviveSettings struct { + Go *string `mapstructure:"-"` + MaxOpenFiles *int `mapstructure:"max-open-files"` + IgnoreGeneratedHeader *bool `mapstructure:"ignore-generated-header"` + Confidence *float64 `mapstructure:"confidence"` + Severity *string `mapstructure:"severity"` + EnableAllRules *bool `mapstructure:"enable-all-rules"` + Rules []struct { + Name *string `mapstructure:"name"` + Arguments []any `mapstructure:"arguments"` + Severity *string `mapstructure:"severity"` + Disabled *bool `mapstructure:"disabled"` + Exclude []string `mapstructure:"exclude"` + } `mapstructure:"rules"` + ErrorCode *int `mapstructure:"error-code"` + WarningCode *int `mapstructure:"warning-code"` + Directives []struct { + Name *string `mapstructure:"name"` + Severity *string `mapstructure:"severity"` + } `mapstructure:"directives"` +} + +type RowsErrCheckSettings struct { + Packages []string `mapstructure:"packages"` +} + +type SlogLintSettings struct { + NoMixedArgs *bool `mapstructure:"no-mixed-args"` + KVOnly *bool `mapstructure:"kv-only"` + AttrOnly *bool `mapstructure:"attr-only"` + NoGlobal *string `mapstructure:"no-global"` + Context *string `mapstructure:"context"` + StaticMsg *bool `mapstructure:"static-msg"` + NoRawKeys *bool `mapstructure:"no-raw-keys"` + KeyNamingCase *string `mapstructure:"key-naming-case"` + ForbiddenKeys []string `mapstructure:"forbidden-keys"` + ArgsOnSepLines *bool `mapstructure:"args-on-sep-lines"` +} + +type SpancheckSettings struct { + Checks []string `mapstructure:"checks"` + IgnoreCheckSignatures []string `mapstructure:"ignore-check-signatures"` + ExtraStartSpanSignatures []string `mapstructure:"extra-start-span-signatures"` +} + +type StaticCheckSettings struct { + Checks []string `mapstructure:"checks"` + Initialisms []string `mapstructure:"initialisms"` // only for stylecheck + DotImportWhitelist []string `mapstructure:"dot-import-whitelist"` // only for stylecheck + HTTPStatusCodeWhitelist []string `mapstructure:"http-status-code-whitelist"` // only for stylecheck +} + +type TagAlignSettings struct { + Align *bool `mapstructure:"align"` + Sort *bool `mapstructure:"sort"` + Order []string `mapstructure:"order"` + Strict *bool `mapstructure:"strict"` +} + +type TagliatelleSettings struct { + Case TagliatelleCase `mapstructure:"case"` +} + +type TagliatelleCase struct { + TagliatelleBase `mapstructure:",squash"` + Overrides []TagliatelleOverrides `mapstructure:"overrides"` +} + +type TagliatelleOverrides struct { + TagliatelleBase `mapstructure:",squash"` + Package *string `mapstructure:"pkg"` + Ignore *bool `mapstructure:"ignore"` +} + +type TagliatelleBase struct { + Rules map[string]string `mapstructure:"rules"` + ExtendedRules map[string]TagliatelleExtendedRule `mapstructure:"extended-rules"` + UseFieldName *bool `mapstructure:"use-field-name"` + IgnoredFields []string `mapstructure:"ignored-fields"` +} + +type TagliatelleExtendedRule struct { + Case *string `mapstructure:"case"` + ExtraInitialisms *bool `mapstructure:"extra-initialisms"` + InitialismOverrides map[string]bool `mapstructure:"initialism-overrides"` +} + +type TestifylintSettings struct { + EnableAll *bool `mapstructure:"enable-all"` + DisableAll *bool `mapstructure:"disable-all"` + EnabledCheckers []string `mapstructure:"enable"` + DisabledCheckers []string `mapstructure:"disable"` + + BoolCompare struct { + IgnoreCustomTypes *bool `mapstructure:"ignore-custom-types"` + } `mapstructure:"bool-compare"` + + ExpectedActual struct { + ExpVarPattern *string `mapstructure:"pattern"` + } `mapstructure:"expected-actual"` + + Formatter struct { + CheckFormatString *bool `mapstructure:"check-format-string"` + RequireFFuncs *bool `mapstructure:"require-f-funcs"` + } `mapstructure:"formatter"` + + GoRequire struct { + IgnoreHTTPHandlers *bool `mapstructure:"ignore-http-handlers"` + } `mapstructure:"go-require"` + + RequireError struct { + FnPattern *string `mapstructure:"fn-pattern"` + } `mapstructure:"require-error"` + + SuiteExtraAssertCall struct { + Mode *string `mapstructure:"mode"` + } `mapstructure:"suite-extra-assert-call"` +} + +type TestpackageSettings struct { + SkipRegexp *string `mapstructure:"skip-regexp"` + AllowPackages []string `mapstructure:"allow-packages"` +} + +type ThelperSettings struct { + Test ThelperOptions `mapstructure:"test"` + Fuzz ThelperOptions `mapstructure:"fuzz"` + Benchmark ThelperOptions `mapstructure:"benchmark"` + TB ThelperOptions `mapstructure:"tb"` +} + +type ThelperOptions struct { + First *bool `mapstructure:"first"` + Name *bool `mapstructure:"name"` + Begin *bool `mapstructure:"begin"` +} + +type TenvSettings struct { + All *bool `mapstructure:"all"` +} + +type UseStdlibVarsSettings struct { + HTTPMethod *bool `mapstructure:"http-method"` + HTTPStatusCode *bool `mapstructure:"http-status-code"` + TimeWeekday *bool `mapstructure:"time-weekday"` + TimeMonth *bool `mapstructure:"time-month"` + TimeLayout *bool `mapstructure:"time-layout"` + CryptoHash *bool `mapstructure:"crypto-hash"` + DefaultRPCPath *bool `mapstructure:"default-rpc-path"` + SQLIsolationLevel *bool `mapstructure:"sql-isolation-level"` + TLSSignatureScheme *bool `mapstructure:"tls-signature-scheme"` + ConstantKind *bool `mapstructure:"constant-kind"` + + // Deprecated + OSDevNull *bool `mapstructure:"os-dev-null"` + // Deprecated + SyslogPriority *bool `mapstructure:"syslog-priority"` +} + +type UseTestingSettings struct { + ContextBackground *bool `mapstructure:"context-background"` + ContextTodo *bool `mapstructure:"context-todo"` + OSChdir *bool `mapstructure:"os-chdir"` + OSMkdirTemp *bool `mapstructure:"os-mkdir-temp"` + OSSetenv *bool `mapstructure:"os-setenv"` + OSTempDir *bool `mapstructure:"os-temp-dir"` + OSCreateTemp *bool `mapstructure:"os-create-temp"` +} + +type UnconvertSettings struct { + FastMath *bool `mapstructure:"fast-math"` + Safe *bool `mapstructure:"safe"` +} + +type UnparamSettings struct { + CheckExported *bool `mapstructure:"check-exported"` + Algo *string `mapstructure:"algo"` +} + +type UnusedSettings struct { + FieldWritesAreUses *bool `mapstructure:"field-writes-are-uses"` + PostStatementsAreReads *bool `mapstructure:"post-statements-are-reads"` + ExportedFieldsAreUsed *bool `mapstructure:"exported-fields-are-used"` + ParametersAreUsed *bool `mapstructure:"parameters-are-used"` + LocalVariablesAreUsed *bool `mapstructure:"local-variables-are-used"` + GeneratedIsUsed *bool `mapstructure:"generated-is-used"` + + // Deprecated + ExportedIsUsed *bool `mapstructure:"exported-is-used"` +} + +type VarnamelenSettings struct { + MaxDistance *int `mapstructure:"max-distance"` + MinNameLength *int `mapstructure:"min-name-length"` + CheckReceiver *bool `mapstructure:"check-receiver"` + CheckReturn *bool `mapstructure:"check-return"` + CheckTypeParam *bool `mapstructure:"check-type-param"` + IgnoreNames []string `mapstructure:"ignore-names"` + IgnoreTypeAssertOk *bool `mapstructure:"ignore-type-assert-ok"` + IgnoreMapIndexOk *bool `mapstructure:"ignore-map-index-ok"` + IgnoreChanRecvOk *bool `mapstructure:"ignore-chan-recv-ok"` + IgnoreDecls []string `mapstructure:"ignore-decls"` +} + +type WhitespaceSettings struct { + MultiIf *bool `mapstructure:"multi-if"` + MultiFunc *bool `mapstructure:"multi-func"` +} + +type WrapcheckSettings struct { + ExtraIgnoreSigs []string `mapstructure:"extra-ignore-sigs"` + // TODO(ldez): v2 the options must be renamed to use hyphen. + IgnoreSigs []string `mapstructure:"ignoreSigs"` + IgnoreSigRegexps []string `mapstructure:"ignoreSigRegexps"` + IgnorePackageGlobs []string `mapstructure:"ignorePackageGlobs"` + IgnoreInterfaceRegexps []string `mapstructure:"ignoreInterfaceRegexps"` +} + +type WSLSettings struct { + StrictAppend *bool `mapstructure:"strict-append"` + AllowAssignAndCallCuddle *bool `mapstructure:"allow-assign-and-call"` + AllowAssignAndAnythingCuddle *bool `mapstructure:"allow-assign-and-anything"` + AllowMultiLineAssignCuddle *bool `mapstructure:"allow-multiline-assign"` + ForceCaseTrailingWhitespaceLimit *int `mapstructure:"force-case-trailing-whitespace"` + AllowTrailingComment *bool `mapstructure:"allow-trailing-comment"` + AllowSeparatedLeadingComment *bool `mapstructure:"allow-separated-leading-comment"` + AllowCuddleDeclaration *bool `mapstructure:"allow-cuddle-declarations"` + AllowCuddleWithCalls []string `mapstructure:"allow-cuddle-with-calls"` + AllowCuddleWithRHS []string `mapstructure:"allow-cuddle-with-rhs"` + ForceCuddleErrCheckAndAssign *bool `mapstructure:"force-err-cuddling"` + ErrorVariableNames []string `mapstructure:"error-variable-names"` + ForceExclusiveShortDeclarations *bool `mapstructure:"force-short-decl-cuddling"` +} + +// CustomLinterSettings encapsulates the meta-data of a private linter. +type CustomLinterSettings struct { + // Type plugin type. + // It can be `goplugin` or `module`. + Type *string `mapstructure:"type"` + + // Path to a plugin *.so file that implements the private linter. + // Only for Go plugin system. + Path *string `mapstructure:"path"` + + // Description describes the purpose of the private linter. + Description *string `mapstructure:"description"` + // OriginalURL The URL containing the source code for the private linter. + OriginalURL *string `mapstructure:"original-url"` + + // Settings plugin settings only work with linterdb.PluginConstructor symbol. + Settings any `mapstructure:"settings"` +} + +type GciSettings struct { + Sections []string `mapstructure:"sections"` + NoInlineComments *bool `mapstructure:"no-inline-comments"` + NoPrefixComments *bool `mapstructure:"no-prefix-comments"` + SkipGenerated *bool `mapstructure:"skip-generated"` + CustomOrder *bool `mapstructure:"custom-order"` + NoLexOrder *bool `mapstructure:"no-lex-order"` + + // Deprecated: use Sections instead. + LocalPrefixes *string `mapstructure:"local-prefixes"` +} + +type GoFmtSettings struct { + Simplify *bool `mapstructure:"simplify"` + RewriteRules []GoFmtRewriteRule `mapstructure:"rewrite-rules"` +} + +type GoFmtRewriteRule struct { + Pattern *string `mapstructure:"pattern"` + Replacement *string `mapstructure:"replacement"` +} + +type GoFumptSettings struct { + ModulePath *string `mapstructure:"module-path"` + ExtraRules *bool `mapstructure:"extra-rules"` + + // Deprecated: use the global `run.go` instead. + LangVersion *string `mapstructure:"lang-version"` +} + +type GoImportsSettings struct { + LocalPrefixes *string `mapstructure:"local-prefixes"` +} diff --git a/pkg/commands/internal/migrate/one/output.go b/pkg/commands/internal/migrate/one/output.go new file mode 100644 index 000000000000..21ebf844e195 --- /dev/null +++ b/pkg/commands/internal/migrate/one/output.go @@ -0,0 +1,39 @@ +package one + +import ( + "strings" + + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" +) + +type Output struct { + Formats OutputFormats `mapstructure:"formats"` + PrintIssuedLine *bool `mapstructure:"print-issued-lines"` + PrintLinterName *bool `mapstructure:"print-linter-name"` + SortResults *bool `mapstructure:"sort-results"` + SortOrder []string `mapstructure:"sort-order"` + PathPrefix *string `mapstructure:"path-prefix"` + ShowStats *bool `mapstructure:"show-stats"` +} + +type OutputFormat struct { + Format *string `mapstructure:"format"` + Path *string `mapstructure:"path"` +} + +type OutputFormats []OutputFormat + +func (p *OutputFormats) UnmarshalText(text []byte) error { + formats := strings.Split(string(text), ",") + + for _, item := range formats { + format, path, _ := strings.Cut(item, ":") + + *p = append(*p, OutputFormat{ + Path: ptr.Pointer(path), + Format: ptr.Pointer(format), + }) + } + + return nil +} diff --git a/pkg/commands/internal/migrate/one/run.go b/pkg/commands/internal/migrate/one/run.go new file mode 100644 index 000000000000..cfb1b553a39c --- /dev/null +++ b/pkg/commands/internal/migrate/one/run.go @@ -0,0 +1,25 @@ +package one + +import ( + "time" +) + +// Run encapsulates the config options for running the linter analysis. +type Run struct { + Timeout time.Duration `mapstructure:"timeout"` + + Concurrency *int `mapstructure:"concurrency"` + + Go *string `mapstructure:"go"` + + RelativePathMode *string `mapstructure:"relative-path-mode"` + + BuildTags []string `mapstructure:"build-tags"` + ModulesDownloadMode *string `mapstructure:"modules-download-mode"` + + ExitCodeIfIssuesFound *int `mapstructure:"issues-exit-code"` + AnalyzeTests *bool `mapstructure:"tests"` + + AllowParallelRunners *bool `mapstructure:"allow-parallel-runners"` + AllowSerialRunners *bool `mapstructure:"allow-serial-runners"` +} diff --git a/pkg/commands/internal/migrate/one/severity.go b/pkg/commands/internal/migrate/one/severity.go new file mode 100644 index 000000000000..7dc67cfe7509 --- /dev/null +++ b/pkg/commands/internal/migrate/one/severity.go @@ -0,0 +1,12 @@ +package one + +type Severity struct { + Default *string `mapstructure:"default-severity"` + CaseSensitive *bool `mapstructure:"case-sensitive"` + Rules []SeverityRule `mapstructure:"rules"` +} + +type SeverityRule struct { + BaseRule `mapstructure:",squash"` + Severity *string `mapstructure:"severity"` +} From 519820a18f3a7aa8312a4df4e7e51ade63efbed7 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Sat, 1 Mar 2025 16:01:58 +0100 Subject: [PATCH 03/30] chore: clean configuration v2 --- pkg/config/config.go | 5 - pkg/config/formatters_settings.go | 4 +- pkg/config/linters_settings.go | 143 ++++++++++-------- .../gci/internal/config/config.go | 1 + pkg/golinters/cyclop/cyclop.go | 2 +- 5 files changed, 85 insertions(+), 70 deletions(-) diff --git a/pkg/config/config.go b/pkg/config/config.go index b37b3ed4750a..d77dca07fd92 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -87,11 +87,6 @@ func NewDefault() *Config { } } -type Version struct { - Format string `mapstructure:"format"` - Debug bool `mapstructure:"debug"` -} - func IsGoGreaterThanOrEqual(current, limit string) bool { v1, err := hcversion.NewVersion(strings.TrimPrefix(current, "go")) if err != nil { diff --git a/pkg/config/formatters_settings.go b/pkg/config/formatters_settings.go index 40f0f1dbbdfc..d99354ba3f1e 100644 --- a/pkg/config/formatters_settings.go +++ b/pkg/config/formatters_settings.go @@ -5,8 +5,7 @@ var defaultFormatterSettings = FormatterSettings{ Simplify: true, }, Gci: GciSettings{ - Sections: []string{"standard", "default"}, - SkipGenerated: true, + Sections: []string{"standard", "default"}, }, GoLines: GoLinesSettings{ MaxLen: 100, @@ -28,7 +27,6 @@ type GciSettings struct { Sections []string `mapstructure:"sections"` NoInlineComments bool `mapstructure:"no-inline-comments"` NoPrefixComments bool `mapstructure:"no-prefix-comments"` - SkipGenerated bool `mapstructure:"skip-generated"` CustomOrder bool `mapstructure:"custom-order"` NoLexOrder bool `mapstructure:"no-lex-order"` } diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index 7391e4a25dbd..d47d6869b6df 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -200,7 +200,7 @@ type LintersSettings struct { Asasalint AsasalintSettings `mapstructure:"asasalint"` BiDiChk BiDiChkSettings `mapstructure:"bidichk"` CopyLoopVar CopyLoopVarSettings `mapstructure:"copyloopvar"` - Cyclop Cyclop `mapstructure:"cyclop"` + Cyclop CyclopSettings `mapstructure:"cyclop"` Decorder DecorderSettings `mapstructure:"decorder"` Depguard DepGuardSettings `mapstructure:"depguard"` Dogsled DogsledSettings `mapstructure:"dogsled"` @@ -314,7 +314,7 @@ type CopyLoopVarSettings struct { CheckAlias bool `mapstructure:"check-alias"` } -type Cyclop struct { +type CyclopSettings struct { MaxComplexity int `mapstructure:"max-complexity"` PackageAverage float64 `mapstructure:"package-average"` } @@ -505,21 +505,29 @@ type GoModDirectivesSettings struct { } type GoModGuardSettings struct { - Allowed struct { - Modules []string `mapstructure:"modules"` - Domains []string `mapstructure:"domains"` - } `mapstructure:"allowed"` - Blocked struct { - Modules []map[string]struct { - Recommendations []string `mapstructure:"recommendations"` - Reason string `mapstructure:"reason"` - } `mapstructure:"modules"` - Versions []map[string]struct { - Version string `mapstructure:"version"` - Reason string `mapstructure:"reason"` - } `mapstructure:"versions"` - LocalReplaceDirectives bool `mapstructure:"local-replace-directives"` - } `mapstructure:"blocked"` + Allowed GoModGuardAllowed `mapstructure:"allowed"` + Blocked GoModGuardBlocked `mapstructure:"blocked"` +} + +type GoModGuardAllowed struct { + Modules []string `mapstructure:"modules"` + Domains []string `mapstructure:"domains"` +} + +type GoModGuardBlocked struct { + Modules []map[string]GoModGuardModule `mapstructure:"modules"` + Versions []map[string]GoModGuardVersion `mapstructure:"versions"` + LocalReplaceDirectives bool `mapstructure:"local-replace-directives"` +} + +type GoModGuardModule struct { + Recommendations []string `mapstructure:"recommendations"` + Reason string `mapstructure:"reason"` +} + +type GoModGuardVersion struct { + Version string `mapstructure:"version"` + Reason string `mapstructure:"reason"` } type GoSecSettings struct { @@ -545,7 +553,7 @@ type GovetSettings struct { EnableAll bool `mapstructure:"enable-all"` DisableAll bool `mapstructure:"disable-all"` - Settings map[string]map[string]any + Settings map[string]map[string]any `mapstructure:"settings"` } func (cfg *GovetSettings) Validate() error { @@ -638,11 +646,13 @@ type MisspellExtraWords struct { } type MustTagSettings struct { - Functions []struct { - Name string `mapstructure:"name"` - Tag string `mapstructure:"tag"` - ArgPos int `mapstructure:"arg-pos"` - } `mapstructure:"functions"` + Functions []MustTagFunction `mapstructure:"functions"` +} + +type MustTagFunction struct { + Name string `mapstructure:"name"` + Tag string `mapstructure:"tag"` + ArgPos int `mapstructure:"arg-pos"` } type NakedretSettings struct { @@ -703,7 +713,7 @@ type PerfSprintSettings struct { } type PreallocSettings struct { - Simple bool + Simple bool `mapstructure:"simple"` RangeLoops bool `mapstructure:"range-loops"` ForLoops bool `mapstructure:"for-loops"` } @@ -735,24 +745,28 @@ type RecvcheckSettings struct { } type ReviveSettings struct { - Go string `mapstructure:"-"` - MaxOpenFiles int `mapstructure:"max-open-files"` - Confidence float64 `mapstructure:"confidence"` - Severity string `mapstructure:"severity"` - EnableAllRules bool `mapstructure:"enable-all-rules"` - Rules []struct { - Name string `mapstructure:"name"` - Arguments []any `mapstructure:"arguments"` - Severity string `mapstructure:"severity"` - Disabled bool `mapstructure:"disabled"` - Exclude []string `mapstructure:"exclude"` - } `mapstructure:"rules"` - ErrorCode int `mapstructure:"error-code"` - WarningCode int `mapstructure:"warning-code"` - Directives []struct { - Name string `mapstructure:"name"` - Severity string `mapstructure:"severity"` - } `mapstructure:"directives"` + Go string `mapstructure:"-"` + MaxOpenFiles int `mapstructure:"max-open-files"` + Confidence float64 `mapstructure:"confidence"` + Severity string `mapstructure:"severity"` + EnableAllRules bool `mapstructure:"enable-all-rules"` + Rules []ReviveRule `mapstructure:"rules"` + ErrorCode int `mapstructure:"error-code"` + WarningCode int `mapstructure:"warning-code"` + Directives []ReviveDirective `mapstructure:"directives"` +} + +type ReviveRule struct { + Name string `mapstructure:"name"` + Arguments []any `mapstructure:"arguments"` + Severity string `mapstructure:"severity"` + Disabled bool `mapstructure:"disabled"` + Exclude []string `mapstructure:"exclude"` +} + +type ReviveDirective struct { + Name string `mapstructure:"name"` + Severity string `mapstructure:"severity"` } type RowsErrCheckSettings struct { @@ -830,30 +844,37 @@ type TestifylintSettings struct { EnabledCheckers []string `mapstructure:"enable"` DisabledCheckers []string `mapstructure:"disable"` - BoolCompare struct { - IgnoreCustomTypes bool `mapstructure:"ignore-custom-types"` - } `mapstructure:"bool-compare"` + BoolCompare TestifylintBoolCompare `mapstructure:"bool-compare"` + ExpectedActual TestifylintExpectedActual `mapstructure:"expected-actual"` + Formatter TestifylintFormatter `mapstructure:"formatter"` + GoRequire TestifylintGoRequire `mapstructure:"go-require"` + RequireError TestifylintRequireError `mapstructure:"require-error"` + SuiteExtraAssertCall TestifylintSuiteExtraAssertCall `mapstructure:"suite-extra-assert-call"` +} - ExpectedActual struct { - ExpVarPattern string `mapstructure:"pattern"` - } `mapstructure:"expected-actual"` +type TestifylintBoolCompare struct { + IgnoreCustomTypes bool `mapstructure:"ignore-custom-types"` +} - Formatter struct { - CheckFormatString *bool `mapstructure:"check-format-string"` - RequireFFuncs bool `mapstructure:"require-f-funcs"` - } `mapstructure:"formatter"` +type TestifylintExpectedActual struct { + ExpVarPattern string `mapstructure:"pattern"` +} - GoRequire struct { - IgnoreHTTPHandlers bool `mapstructure:"ignore-http-handlers"` - } `mapstructure:"go-require"` +type TestifylintFormatter struct { + CheckFormatString *bool `mapstructure:"check-format-string"` + RequireFFuncs bool `mapstructure:"require-f-funcs"` +} - RequireError struct { - FnPattern string `mapstructure:"fn-pattern"` - } `mapstructure:"require-error"` +type TestifylintGoRequire struct { + IgnoreHTTPHandlers bool `mapstructure:"ignore-http-handlers"` +} + +type TestifylintRequireError struct { + FnPattern string `mapstructure:"fn-pattern"` +} - SuiteExtraAssertCall struct { - Mode string `mapstructure:"mode"` - } `mapstructure:"suite-extra-assert-call"` +type TestifylintSuiteExtraAssertCall struct { + Mode string `mapstructure:"mode"` } type TestpackageSettings struct { diff --git a/pkg/goformatters/gci/internal/config/config.go b/pkg/goformatters/gci/internal/config/config.go index 8140d96bf8c1..9acbce3a006b 100644 --- a/pkg/goformatters/gci/internal/config/config.go +++ b/pkg/goformatters/gci/internal/config/config.go @@ -8,6 +8,7 @@ import ( "github.com/daixiang0/gci/pkg/config" "github.com/daixiang0/gci/pkg/section" + sectioni "github.com/golangci/golangci-lint/pkg/goformatters/gci/internal/section" ) diff --git a/pkg/golinters/cyclop/cyclop.go b/pkg/golinters/cyclop/cyclop.go index 3f46860c30cd..d405cb7b8760 100644 --- a/pkg/golinters/cyclop/cyclop.go +++ b/pkg/golinters/cyclop/cyclop.go @@ -8,7 +8,7 @@ import ( "github.com/golangci/golangci-lint/pkg/goanalysis" ) -func New(settings *config.Cyclop) *goanalysis.Linter { +func New(settings *config.CyclopSettings) *goanalysis.Linter { a := analyzer.NewAnalyzer() var cfg map[string]map[string]any From 450752d6e17b96a7e060da3036b9197f6e1d13de Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Sat, 1 Mar 2025 16:07:27 +0100 Subject: [PATCH 04/30] chore: configuration v2 cloner --- .golangci.yml | 5 + Makefile | 5 + .../internal/migrate/cloner/cloner.go | 197 +++++ pkg/commands/internal/migrate/ptr/ptr.go | 12 + .../internal/migrate/two/base_rule.go | 11 + pkg/commands/internal/migrate/two/config.go | 16 + .../internal/migrate/two/formatters.go | 12 + .../migrate/two/formatters_settings.go | 46 ++ pkg/commands/internal/migrate/two/issues.go | 15 + pkg/commands/internal/migrate/two/linters.go | 12 + .../migrate/two/linters_exclusions.go | 14 + .../internal/migrate/two/linters_settings.go | 770 ++++++++++++++++++ pkg/commands/internal/migrate/two/output.go | 8 + .../internal/migrate/two/output_formats.go | 35 + pkg/commands/internal/migrate/two/run.go | 24 + pkg/commands/internal/migrate/two/severity.go | 11 + 16 files changed, 1193 insertions(+) create mode 100644 pkg/commands/internal/migrate/cloner/cloner.go create mode 100644 pkg/commands/internal/migrate/ptr/ptr.go create mode 100644 pkg/commands/internal/migrate/two/base_rule.go create mode 100644 pkg/commands/internal/migrate/two/config.go create mode 100644 pkg/commands/internal/migrate/two/formatters.go create mode 100644 pkg/commands/internal/migrate/two/formatters_settings.go create mode 100644 pkg/commands/internal/migrate/two/issues.go create mode 100644 pkg/commands/internal/migrate/two/linters.go create mode 100644 pkg/commands/internal/migrate/two/linters_exclusions.go create mode 100644 pkg/commands/internal/migrate/two/linters_settings.go create mode 100644 pkg/commands/internal/migrate/two/output.go create mode 100644 pkg/commands/internal/migrate/two/output_formats.go create mode 100644 pkg/commands/internal/migrate/two/run.go create mode 100644 pkg/commands/internal/migrate/two/severity.go diff --git a/.golangci.yml b/.golangci.yml index dd401e0f26f4..7063f491b93d 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -171,6 +171,11 @@ linters: linters: [gosec] text: "G306: Expect WriteFile permissions to be 0600 or less" + # Related to migration command. + - path: pkg/commands/internal/migrate/two/ + linters: + - lll + formatters: enable: - gofmt diff --git a/Makefile b/Makefile index 911465f4e2da..837f10a5211d 100644 --- a/Makefile +++ b/Makefile @@ -60,6 +60,11 @@ fast_check_generated: git checkout -- go.mod go.sum # can differ between go1.16 and go1.17 git diff --exit-code # check no changes +# Migration + +clone_config: + go run ./pkg/commands/internal/migrate/cloner/ + # Benchmark # Benchmark with a local version diff --git a/pkg/commands/internal/migrate/cloner/cloner.go b/pkg/commands/internal/migrate/cloner/cloner.go new file mode 100644 index 000000000000..c9cc64623b7b --- /dev/null +++ b/pkg/commands/internal/migrate/cloner/cloner.go @@ -0,0 +1,197 @@ +package main + +import ( + "bytes" + "fmt" + "go/ast" + "go/parser" + "go/printer" + "go/token" + "log" + "os" + "path/filepath" + "reflect" + "strings" + + "golang.org/x/tools/imports" +) + +const newPkgName = "two" + +const ( + srcDir = "./pkg/config" + dstDir = "./pkg/commands/internal/migrate/two" +) + +func main() { + stat, err := os.Stat(srcDir) + if err != nil { + log.Fatal(err) + } + + if !stat.IsDir() { + log.Fatalf("%s is not a directory", srcDir) + } + + _ = os.RemoveAll(dstDir) + + err = processPackage(srcDir, dstDir) + if err != nil { + log.Fatalf("Processing package error: %v", err) + } +} + +func processPackage(srcDir, dstDir string) error { + return filepath.Walk(srcDir, func(srcPath string, _ os.FileInfo, err error) error { + if err != nil { + return err + } + + if skipFile(srcPath) { + return nil + } + + fset := token.NewFileSet() + + file, err := parser.ParseFile(fset, srcPath, nil, parser.AllErrors) + if err != nil { + return fmt.Errorf("parsing %s: %w", srcPath, err) + } + + processFile(file) + + return writeNewFile(fset, file, srcPath, dstDir) + }) +} + +func skipFile(path string) bool { + if !strings.HasSuffix(path, ".go") || strings.HasSuffix(path, "_test.go") { + return true + } + + if filepath.Base(path) == "base_loader.go" { + return true + } + + if filepath.Base(path) == "loader.go" { + return true + } + + return false +} + +func processFile(file *ast.File) { + file.Name.Name = newPkgName + + var newDecls []ast.Decl + for _, decl := range file.Decls { + switch d := decl.(type) { + case *ast.FuncDecl: + continue + + case *ast.GenDecl: + switch d.Tok { + case token.CONST, token.VAR: + continue + case token.TYPE: + for _, spec := range d.Specs { + typeSpec, ok := spec.(*ast.TypeSpec) + if !ok { + continue + } + + structType, ok := typeSpec.Type.(*ast.StructType) + if !ok { + continue + } + + processStructFields(structType) + } + default: + // noop + } + + newDecls = append(newDecls, decl) + } + } + + file.Decls = newDecls +} + +func processStructFields(structType *ast.StructType) { + var newFields []*ast.Field + + for _, field := range structType.Fields.List { + if len(field.Names) > 0 && !field.Names[0].IsExported() { + continue + } + + if field.Tag == nil { + continue + } + + field.Type = convertType(field.Type) + field.Tag.Value = convertStructTag(field.Tag.Value) + + newFields = append(newFields, field) + } + + structType.Fields.List = newFields +} + +func convertType(expr ast.Expr) ast.Expr { + ident, ok := expr.(*ast.Ident) + if !ok { + return expr + } + + switch ident.Name { + case "bool", "string", "int", "int8", "int16", "int32", "int64", "float32", "float64": + return &ast.StarExpr{X: ident} + + default: + return expr + } +} + +func convertStructTag(value string) string { + structTag := reflect.StructTag(strings.Trim(value, "`")) + + key := structTag.Get("mapstructure") + + if key == ",squash" { + return wrapStructTag(`yaml:",inline"`) + } + + return wrapStructTag(fmt.Sprintf(`yaml:"%[1]s,omitempty" toml:"%[1]s,omitempty"`, key)) +} + +func wrapStructTag(s string) string { + return "`" + s + "`" +} + +func writeNewFile(fset *token.FileSet, file *ast.File, srcPath, dstDir string) error { + var buf bytes.Buffer + + err := printer.Fprint(&buf, fset, file) + if err != nil { + return fmt.Errorf("printing %s: %w", srcPath, err) + } + + dstPath := filepath.Join(dstDir, filepath.Base(srcPath)) + + _ = os.MkdirAll(filepath.Dir(dstPath), os.ModePerm) + + formatted, err := imports.Process(dstPath, buf.Bytes(), nil) + if err != nil { + return fmt.Errorf("formatting %s: %w", dstPath, err) + } + + //nolint:gosec,mnd // The permission is right. + err = os.WriteFile(dstPath, formatted, 0o644) + if err != nil { + return fmt.Errorf("writing file %s: %w", dstPath, err) + } + + return nil +} diff --git a/pkg/commands/internal/migrate/ptr/ptr.go b/pkg/commands/internal/migrate/ptr/ptr.go new file mode 100644 index 000000000000..b0c7974e0e9f --- /dev/null +++ b/pkg/commands/internal/migrate/ptr/ptr.go @@ -0,0 +1,12 @@ +package ptr + +func Deref[T any](v *T) T { + if v == nil { + var zero T + return zero + } + + return *v +} + +func Pointer[T any](v T) *T { return &v } diff --git a/pkg/commands/internal/migrate/two/base_rule.go b/pkg/commands/internal/migrate/two/base_rule.go new file mode 100644 index 000000000000..0464832b486f --- /dev/null +++ b/pkg/commands/internal/migrate/two/base_rule.go @@ -0,0 +1,11 @@ +package two + +type BaseRule struct { + Linters []string `yaml:"linters,omitempty" toml:"linters,omitempty"` + Path *string `yaml:"path,omitempty" toml:"path,omitempty"` + PathExcept *string `yaml:"path-except,omitempty" toml:"path-except,omitempty"` + Text *string `yaml:"text,omitempty" toml:"text,omitempty"` + Source *string `yaml:"source,omitempty" toml:"source,omitempty"` + + InternalReference *string `yaml:"-,omitempty" toml:"-,omitempty"` +} diff --git a/pkg/commands/internal/migrate/two/config.go b/pkg/commands/internal/migrate/two/config.go new file mode 100644 index 000000000000..47c982fc0741 --- /dev/null +++ b/pkg/commands/internal/migrate/two/config.go @@ -0,0 +1,16 @@ +package two + +type Config struct { + Version *string `yaml:"version,omitempty" toml:"version,omitempty"` + + Run Run `yaml:"run,omitempty" toml:"run,omitempty"` + + Output Output `yaml:"output,omitempty" toml:"output,omitempty"` + + Linters Linters `yaml:"linters,omitempty" toml:"linters,omitempty"` + + Issues Issues `yaml:"issues,omitempty" toml:"issues,omitempty"` + Severity Severity `yaml:"severity,omitempty" toml:"severity,omitempty"` + + Formatters Formatters `yaml:"formatters,omitempty" toml:"formatters,omitempty"` +} diff --git a/pkg/commands/internal/migrate/two/formatters.go b/pkg/commands/internal/migrate/two/formatters.go new file mode 100644 index 000000000000..7f36c75d031a --- /dev/null +++ b/pkg/commands/internal/migrate/two/formatters.go @@ -0,0 +1,12 @@ +package two + +type Formatters struct { + Enable []string `yaml:"enable,omitempty" toml:"enable,omitempty"` + Settings FormatterSettings `yaml:"settings,omitempty" toml:"settings,omitempty"` + Exclusions FormatterExclusions `yaml:"exclusions,omitempty" toml:"exclusions,omitempty"` +} + +type FormatterExclusions struct { + Generated *string `yaml:"generated,omitempty" toml:"generated,omitempty"` + Paths []string `yaml:"paths,omitempty" toml:"paths,omitempty"` +} diff --git a/pkg/commands/internal/migrate/two/formatters_settings.go b/pkg/commands/internal/migrate/two/formatters_settings.go new file mode 100644 index 000000000000..c05e16bb2ef8 --- /dev/null +++ b/pkg/commands/internal/migrate/two/formatters_settings.go @@ -0,0 +1,46 @@ +package two + +type FormatterSettings struct { + Gci GciSettings `yaml:"gci,omitempty" toml:"gci,omitempty"` + GoFmt GoFmtSettings `yaml:"gofmt,omitempty" toml:"gofmt,omitempty"` + GoFumpt GoFumptSettings `yaml:"gofumpt,omitempty" toml:"gofumpt,omitempty"` + GoImports GoImportsSettings `yaml:"goimports,omitempty" toml:"goimports,omitempty"` + GoLines GoLinesSettings `yaml:"golines,omitempty" toml:"golines,omitempty"` +} + +type GciSettings struct { + Sections []string `yaml:"sections,omitempty" toml:"sections,omitempty"` + NoInlineComments *bool `yaml:"no-inline-comments,omitempty" toml:"no-inline-comments,omitempty"` + NoPrefixComments *bool `yaml:"no-prefix-comments,omitempty" toml:"no-prefix-comments,omitempty"` + CustomOrder *bool `yaml:"custom-order,omitempty" toml:"custom-order,omitempty"` + NoLexOrder *bool `yaml:"no-lex-order,omitempty" toml:"no-lex-order,omitempty"` +} + +type GoFmtSettings struct { + Simplify *bool `yaml:"simplify,omitempty" toml:"simplify,omitempty"` + RewriteRules []GoFmtRewriteRule `yaml:"rewrite-rules,omitempty" toml:"rewrite-rules,omitempty"` +} + +type GoFmtRewriteRule struct { + Pattern *string `yaml:"pattern,omitempty" toml:"pattern,omitempty"` + Replacement *string `yaml:"replacement,omitempty" toml:"replacement,omitempty"` +} + +type GoFumptSettings struct { + ModulePath *string `yaml:"module-path,omitempty" toml:"module-path,omitempty"` + ExtraRules *bool `yaml:"extra-rules,omitempty" toml:"extra-rules,omitempty"` + + LangVersion *string `yaml:"-,omitempty" toml:"-,omitempty"` +} + +type GoImportsSettings struct { + LocalPrefixes []string `yaml:"local-prefixes,omitempty" toml:"local-prefixes,omitempty"` +} + +type GoLinesSettings struct { + MaxLen *int `yaml:"max-len,omitempty" toml:"max-len,omitempty"` + TabLen *int `yaml:"tab-len,omitempty" toml:"tab-len,omitempty"` + ShortenComments *bool `yaml:"shorten-comments,omitempty" toml:"shorten-comments,omitempty"` + ReformatTags *bool `yaml:"reformat-tags,omitempty" toml:"reformat-tags,omitempty"` + ChainSplitDots *bool `yaml:"chain-split-dots,omitempty" toml:"chain-split-dots,omitempty"` +} diff --git a/pkg/commands/internal/migrate/two/issues.go b/pkg/commands/internal/migrate/two/issues.go new file mode 100644 index 000000000000..925791cca8ec --- /dev/null +++ b/pkg/commands/internal/migrate/two/issues.go @@ -0,0 +1,15 @@ +package two + +type Issues struct { + MaxIssuesPerLinter *int `yaml:"max-issues-per-linter,omitempty" toml:"max-issues-per-linter,omitempty"` + MaxSameIssues *int `yaml:"max-same-issues,omitempty" toml:"max-same-issues,omitempty"` + UniqByLine *bool `yaml:"uniq-by-line,omitempty" toml:"uniq-by-line,omitempty"` + + DiffFromRevision *string `yaml:"new-from-rev,omitempty" toml:"new-from-rev,omitempty"` + DiffFromMergeBase *string `yaml:"new-from-merge-base,omitempty" toml:"new-from-merge-base,omitempty"` + DiffPatchFilePath *string `yaml:"new-from-patch,omitempty" toml:"new-from-patch,omitempty"` + WholeFiles *bool `yaml:"whole-files,omitempty" toml:"whole-files,omitempty"` + Diff *bool `yaml:"new,omitempty" toml:"new,omitempty"` + + NeedFix *bool `yaml:"fix,omitempty" toml:"fix,omitempty"` +} diff --git a/pkg/commands/internal/migrate/two/linters.go b/pkg/commands/internal/migrate/two/linters.go new file mode 100644 index 000000000000..896422ff950e --- /dev/null +++ b/pkg/commands/internal/migrate/two/linters.go @@ -0,0 +1,12 @@ +package two + +type Linters struct { + Default *string `yaml:"default,omitempty" toml:"default,omitempty"` + Enable []string `yaml:"enable,omitempty" toml:"enable,omitempty"` + Disable []string `yaml:"disable,omitempty" toml:"disable,omitempty"` + FastOnly *bool `yaml:"fast-only,omitempty" toml:"fast-only,omitempty"` + + Settings LintersSettings `yaml:"settings,omitempty" toml:"settings,omitempty"` + + Exclusions LinterExclusions `yaml:"exclusions,omitempty" toml:"exclusions,omitempty"` +} diff --git a/pkg/commands/internal/migrate/two/linters_exclusions.go b/pkg/commands/internal/migrate/two/linters_exclusions.go new file mode 100644 index 000000000000..760a2c06502b --- /dev/null +++ b/pkg/commands/internal/migrate/two/linters_exclusions.go @@ -0,0 +1,14 @@ +package two + +type LinterExclusions struct { + Generated *string `yaml:"generated,omitempty" toml:"generated,omitempty"` + WarnUnused *bool `yaml:"warn-unused,omitempty" toml:"warn-unused,omitempty"` + Presets []string `yaml:"presets,omitempty" toml:"presets,omitempty"` + Rules []ExcludeRule `yaml:"rules,omitempty" toml:"rules,omitempty"` + Paths []string `yaml:"paths,omitempty" toml:"paths,omitempty"` + PathsExcept []string `yaml:"paths-except,omitempty" toml:"paths-except,omitempty"` +} + +type ExcludeRule struct { + BaseRule `yaml:",inline"` +} diff --git a/pkg/commands/internal/migrate/two/linters_settings.go b/pkg/commands/internal/migrate/two/linters_settings.go new file mode 100644 index 000000000000..1ac1b9e63dd5 --- /dev/null +++ b/pkg/commands/internal/migrate/two/linters_settings.go @@ -0,0 +1,770 @@ +package two + +type LintersSettings struct { + FormatterSettings `yaml:"-,omitempty" toml:"-,omitempty"` + + Asasalint AsasalintSettings `yaml:"asasalint,omitempty" toml:"asasalint,omitempty"` + BiDiChk BiDiChkSettings `yaml:"bidichk,omitempty" toml:"bidichk,omitempty"` + CopyLoopVar CopyLoopVarSettings `yaml:"copyloopvar,omitempty" toml:"copyloopvar,omitempty"` + Cyclop CyclopSettings `yaml:"cyclop,omitempty" toml:"cyclop,omitempty"` + Decorder DecorderSettings `yaml:"decorder,omitempty" toml:"decorder,omitempty"` + Depguard DepGuardSettings `yaml:"depguard,omitempty" toml:"depguard,omitempty"` + Dogsled DogsledSettings `yaml:"dogsled,omitempty" toml:"dogsled,omitempty"` + Dupl DuplSettings `yaml:"dupl,omitempty" toml:"dupl,omitempty"` + DupWord DupWordSettings `yaml:"dupword,omitempty" toml:"dupword,omitempty"` + Errcheck ErrcheckSettings `yaml:"errcheck,omitempty" toml:"errcheck,omitempty"` + ErrChkJSON ErrChkJSONSettings `yaml:"errchkjson,omitempty" toml:"errchkjson,omitempty"` + ErrorLint ErrorLintSettings `yaml:"errorlint,omitempty" toml:"errorlint,omitempty"` + Exhaustive ExhaustiveSettings `yaml:"exhaustive,omitempty" toml:"exhaustive,omitempty"` + Exhaustruct ExhaustructSettings `yaml:"exhaustruct,omitempty" toml:"exhaustruct,omitempty"` + Fatcontext FatcontextSettings `yaml:"fatcontext,omitempty" toml:"fatcontext,omitempty"` + Forbidigo ForbidigoSettings `yaml:"forbidigo,omitempty" toml:"forbidigo,omitempty"` + Funlen FunlenSettings `yaml:"funlen,omitempty" toml:"funlen,omitempty"` + GinkgoLinter GinkgoLinterSettings `yaml:"ginkgolinter,omitempty" toml:"ginkgolinter,omitempty"` + Gocognit GocognitSettings `yaml:"gocognit,omitempty" toml:"gocognit,omitempty"` + GoChecksumType GoChecksumTypeSettings `yaml:"gochecksumtype,omitempty" toml:"gochecksumtype,omitempty"` + Goconst GoConstSettings `yaml:"goconst,omitempty" toml:"goconst,omitempty"` + Gocritic GoCriticSettings `yaml:"gocritic,omitempty" toml:"gocritic,omitempty"` + Gocyclo GoCycloSettings `yaml:"gocyclo,omitempty" toml:"gocyclo,omitempty"` + Godot GodotSettings `yaml:"godot,omitempty" toml:"godot,omitempty"` + Godox GodoxSettings `yaml:"godox,omitempty" toml:"godox,omitempty"` + Goheader GoHeaderSettings `yaml:"goheader,omitempty" toml:"goheader,omitempty"` + GoModDirectives GoModDirectivesSettings `yaml:"gomoddirectives,omitempty" toml:"gomoddirectives,omitempty"` + Gomodguard GoModGuardSettings `yaml:"gomodguard,omitempty" toml:"gomodguard,omitempty"` + Gosec GoSecSettings `yaml:"gosec,omitempty" toml:"gosec,omitempty"` + Gosmopolitan GosmopolitanSettings `yaml:"gosmopolitan,omitempty" toml:"gosmopolitan,omitempty"` + Govet GovetSettings `yaml:"govet,omitempty" toml:"govet,omitempty"` + Grouper GrouperSettings `yaml:"grouper,omitempty" toml:"grouper,omitempty"` + Iface IfaceSettings `yaml:"iface,omitempty" toml:"iface,omitempty"` + ImportAs ImportAsSettings `yaml:"importas,omitempty" toml:"importas,omitempty"` + Inamedparam INamedParamSettings `yaml:"inamedparam,omitempty" toml:"inamedparam,omitempty"` + InterfaceBloat InterfaceBloatSettings `yaml:"interfacebloat,omitempty" toml:"interfacebloat,omitempty"` + Ireturn IreturnSettings `yaml:"ireturn,omitempty" toml:"ireturn,omitempty"` + Lll LllSettings `yaml:"lll,omitempty" toml:"lll,omitempty"` + LoggerCheck LoggerCheckSettings `yaml:"loggercheck,omitempty" toml:"loggercheck,omitempty"` + MaintIdx MaintIdxSettings `yaml:"maintidx,omitempty" toml:"maintidx,omitempty"` + Makezero MakezeroSettings `yaml:"makezero,omitempty" toml:"makezero,omitempty"` + Misspell MisspellSettings `yaml:"misspell,omitempty" toml:"misspell,omitempty"` + Mnd MndSettings `yaml:"mnd,omitempty" toml:"mnd,omitempty"` + MustTag MustTagSettings `yaml:"musttag,omitempty" toml:"musttag,omitempty"` + Nakedret NakedretSettings `yaml:"nakedret,omitempty" toml:"nakedret,omitempty"` + Nestif NestifSettings `yaml:"nestif,omitempty" toml:"nestif,omitempty"` + NilNil NilNilSettings `yaml:"nilnil,omitempty" toml:"nilnil,omitempty"` + Nlreturn NlreturnSettings `yaml:"nlreturn,omitempty" toml:"nlreturn,omitempty"` + NoLintLint NoLintLintSettings `yaml:"nolintlint,omitempty" toml:"nolintlint,omitempty"` + NoNamedReturns NoNamedReturnsSettings `yaml:"nonamedreturns,omitempty" toml:"nonamedreturns,omitempty"` + ParallelTest ParallelTestSettings `yaml:"paralleltest,omitempty" toml:"paralleltest,omitempty"` + PerfSprint PerfSprintSettings `yaml:"perfsprint,omitempty" toml:"perfsprint,omitempty"` + Prealloc PreallocSettings `yaml:"prealloc,omitempty" toml:"prealloc,omitempty"` + Predeclared PredeclaredSettings `yaml:"predeclared,omitempty" toml:"predeclared,omitempty"` + Promlinter PromlinterSettings `yaml:"promlinter,omitempty" toml:"promlinter,omitempty"` + ProtoGetter ProtoGetterSettings `yaml:"protogetter,omitempty" toml:"protogetter,omitempty"` + Reassign ReassignSettings `yaml:"reassign,omitempty" toml:"reassign,omitempty"` + Recvcheck RecvcheckSettings `yaml:"recvcheck,omitempty" toml:"recvcheck,omitempty"` + Revive ReviveSettings `yaml:"revive,omitempty" toml:"revive,omitempty"` + RowsErrCheck RowsErrCheckSettings `yaml:"rowserrcheck,omitempty" toml:"rowserrcheck,omitempty"` + SlogLint SlogLintSettings `yaml:"sloglint,omitempty" toml:"sloglint,omitempty"` + Spancheck SpancheckSettings `yaml:"spancheck,omitempty" toml:"spancheck,omitempty"` + Staticcheck StaticCheckSettings `yaml:"staticcheck,omitempty" toml:"staticcheck,omitempty"` + TagAlign TagAlignSettings `yaml:"tagalign,omitempty" toml:"tagalign,omitempty"` + Tagliatelle TagliatelleSettings `yaml:"tagliatelle,omitempty" toml:"tagliatelle,omitempty"` + Tenv TenvSettings `yaml:"tenv,omitempty" toml:"tenv,omitempty"` + Testifylint TestifylintSettings `yaml:"testifylint,omitempty" toml:"testifylint,omitempty"` + Testpackage TestpackageSettings `yaml:"testpackage,omitempty" toml:"testpackage,omitempty"` + Thelper ThelperSettings `yaml:"thelper,omitempty" toml:"thelper,omitempty"` + Unconvert UnconvertSettings `yaml:"unconvert,omitempty" toml:"unconvert,omitempty"` + Unparam UnparamSettings `yaml:"unparam,omitempty" toml:"unparam,omitempty"` + Unused UnusedSettings `yaml:"unused,omitempty" toml:"unused,omitempty"` + UseStdlibVars UseStdlibVarsSettings `yaml:"usestdlibvars,omitempty" toml:"usestdlibvars,omitempty"` + UseTesting UseTestingSettings `yaml:"usetesting,omitempty" toml:"usetesting,omitempty"` + Varnamelen VarnamelenSettings `yaml:"varnamelen,omitempty" toml:"varnamelen,omitempty"` + Whitespace WhitespaceSettings `yaml:"whitespace,omitempty" toml:"whitespace,omitempty"` + Wrapcheck WrapcheckSettings `yaml:"wrapcheck,omitempty" toml:"wrapcheck,omitempty"` + WSL WSLSettings `yaml:"wsl,omitempty" toml:"wsl,omitempty"` + + Custom map[string]CustomLinterSettings `yaml:"custom,omitempty" toml:"custom,omitempty"` +} + +type AsasalintSettings struct { + Exclude []string `yaml:"exclude,omitempty" toml:"exclude,omitempty"` + UseBuiltinExclusions *bool `yaml:"use-builtin-exclusions,omitempty" toml:"use-builtin-exclusions,omitempty"` +} + +type BiDiChkSettings struct { + LeftToRightEmbedding *bool `yaml:"left-to-right-embedding,omitempty" toml:"left-to-right-embedding,omitempty"` + RightToLeftEmbedding *bool `yaml:"right-to-left-embedding,omitempty" toml:"right-to-left-embedding,omitempty"` + PopDirectionalFormatting *bool `yaml:"pop-directional-formatting,omitempty" toml:"pop-directional-formatting,omitempty"` + LeftToRightOverride *bool `yaml:"left-to-right-override,omitempty" toml:"left-to-right-override,omitempty"` + RightToLeftOverride *bool `yaml:"right-to-left-override,omitempty" toml:"right-to-left-override,omitempty"` + LeftToRightIsolate *bool `yaml:"left-to-right-isolate,omitempty" toml:"left-to-right-isolate,omitempty"` + RightToLeftIsolate *bool `yaml:"right-to-left-isolate,omitempty" toml:"right-to-left-isolate,omitempty"` + FirstStrongIsolate *bool `yaml:"first-strong-isolate,omitempty" toml:"first-strong-isolate,omitempty"` + PopDirectionalIsolate *bool `yaml:"pop-directional-isolate,omitempty" toml:"pop-directional-isolate,omitempty"` +} + +type CopyLoopVarSettings struct { + CheckAlias *bool `yaml:"check-alias,omitempty" toml:"check-alias,omitempty"` +} + +type CyclopSettings struct { + MaxComplexity *int `yaml:"max-complexity,omitempty" toml:"max-complexity,omitempty"` + PackageAverage *float64 `yaml:"package-average,omitempty" toml:"package-average,omitempty"` +} + +type DepGuardSettings struct { + Rules map[string]*DepGuardList `yaml:"rules,omitempty" toml:"rules,omitempty"` +} + +type DepGuardList struct { + ListMode *string `yaml:"list-mode,omitempty" toml:"list-mode,omitempty"` + Files []string `yaml:"files,omitempty" toml:"files,omitempty"` + Allow []string `yaml:"allow,omitempty" toml:"allow,omitempty"` + Deny []DepGuardDeny `yaml:"deny,omitempty" toml:"deny,omitempty"` +} + +type DepGuardDeny struct { + Pkg *string `yaml:"pkg,omitempty" toml:"pkg,omitempty"` + Desc *string `yaml:"desc,omitempty" toml:"desc,omitempty"` +} + +type DecorderSettings struct { + DecOrder []string `yaml:"dec-order,omitempty" toml:"dec-order,omitempty"` + IgnoreUnderscoreVars *bool `yaml:"ignore-underscore-vars,omitempty" toml:"ignore-underscore-vars,omitempty"` + DisableDecNumCheck *bool `yaml:"disable-dec-num-check,omitempty" toml:"disable-dec-num-check,omitempty"` + DisableTypeDecNumCheck *bool `yaml:"disable-type-dec-num-check,omitempty" toml:"disable-type-dec-num-check,omitempty"` + DisableConstDecNumCheck *bool `yaml:"disable-const-dec-num-check,omitempty" toml:"disable-const-dec-num-check,omitempty"` + DisableVarDecNumCheck *bool `yaml:"disable-var-dec-num-check,omitempty" toml:"disable-var-dec-num-check,omitempty"` + DisableDecOrderCheck *bool `yaml:"disable-dec-order-check,omitempty" toml:"disable-dec-order-check,omitempty"` + DisableInitFuncFirstCheck *bool `yaml:"disable-init-func-first-check,omitempty" toml:"disable-init-func-first-check,omitempty"` +} + +type DogsledSettings struct { + MaxBlankIdentifiers *int `yaml:"max-blank-identifiers,omitempty" toml:"max-blank-identifiers,omitempty"` +} + +type DuplSettings struct { + Threshold *int `yaml:"threshold,omitempty" toml:"threshold,omitempty"` +} + +type DupWordSettings struct { + Keywords []string `yaml:"keywords,omitempty" toml:"keywords,omitempty"` + Ignore []string `yaml:"ignore,omitempty" toml:"ignore,omitempty"` +} + +type ErrcheckSettings struct { + DisableDefaultExclusions *bool `yaml:"disable-default-exclusions,omitempty" toml:"disable-default-exclusions,omitempty"` + CheckTypeAssertions *bool `yaml:"check-type-assertions,omitempty" toml:"check-type-assertions,omitempty"` + CheckAssignToBlank *bool `yaml:"check-blank,omitempty" toml:"check-blank,omitempty"` + ExcludeFunctions []string `yaml:"exclude-functions,omitempty" toml:"exclude-functions,omitempty"` +} + +type ErrChkJSONSettings struct { + CheckErrorFreeEncoding *bool `yaml:"check-error-free-encoding,omitempty" toml:"check-error-free-encoding,omitempty"` + ReportNoExported *bool `yaml:"report-no-exported,omitempty" toml:"report-no-exported,omitempty"` +} + +type ErrorLintSettings struct { + Errorf *bool `yaml:"errorf,omitempty" toml:"errorf,omitempty"` + ErrorfMulti *bool `yaml:"errorf-multi,omitempty" toml:"errorf-multi,omitempty"` + Asserts *bool `yaml:"asserts,omitempty" toml:"asserts,omitempty"` + Comparison *bool `yaml:"comparison,omitempty" toml:"comparison,omitempty"` + AllowedErrors []ErrorLintAllowPair `yaml:"allowed-errors,omitempty" toml:"allowed-errors,omitempty"` + AllowedErrorsWildcard []ErrorLintAllowPair `yaml:"allowed-errors-wildcard,omitempty" toml:"allowed-errors-wildcard,omitempty"` +} + +type ErrorLintAllowPair struct { + Err *string `yaml:"err,omitempty" toml:"err,omitempty"` + Fun *string `yaml:"fun,omitempty" toml:"fun,omitempty"` +} + +type ExhaustiveSettings struct { + Check []string `yaml:"check,omitempty" toml:"check,omitempty"` + DefaultSignifiesExhaustive *bool `yaml:"default-signifies-exhaustive,omitempty" toml:"default-signifies-exhaustive,omitempty"` + IgnoreEnumMembers *string `yaml:"ignore-enum-members,omitempty" toml:"ignore-enum-members,omitempty"` + IgnoreEnumTypes *string `yaml:"ignore-enum-types,omitempty" toml:"ignore-enum-types,omitempty"` + PackageScopeOnly *bool `yaml:"package-scope-only,omitempty" toml:"package-scope-only,omitempty"` + ExplicitExhaustiveMap *bool `yaml:"explicit-exhaustive-map,omitempty" toml:"explicit-exhaustive-map,omitempty"` + ExplicitExhaustiveSwitch *bool `yaml:"explicit-exhaustive-switch,omitempty" toml:"explicit-exhaustive-switch,omitempty"` + DefaultCaseRequired *bool `yaml:"default-case-required,omitempty" toml:"default-case-required,omitempty"` +} + +type ExhaustructSettings struct { + Include []string `yaml:"include,omitempty" toml:"include,omitempty"` + Exclude []string `yaml:"exclude,omitempty" toml:"exclude,omitempty"` +} + +type FatcontextSettings struct { + CheckStructPointers *bool `yaml:"check-struct-pointers,omitempty" toml:"check-struct-pointers,omitempty"` +} + +type ForbidigoSettings struct { + Forbid []ForbidigoPattern `yaml:"forbid,omitempty" toml:"forbid,omitempty"` + ExcludeGodocExamples *bool `yaml:"exclude-godoc-examples,omitempty" toml:"exclude-godoc-examples,omitempty"` + AnalyzeTypes *bool `yaml:"analyze-types,omitempty" toml:"analyze-types,omitempty"` +} + +type ForbidigoPattern struct { + Pattern *string `yaml:"pattern,omitempty" toml:"pattern,omitempty"` + Package *string `yaml:"pkg,omitempty,omitempty" toml:"pkg,omitempty,omitempty"` + Msg *string `yaml:"msg,omitempty,omitempty" toml:"msg,omitempty,omitempty"` +} + +type FunlenSettings struct { + Lines *int `yaml:"lines,omitempty" toml:"lines,omitempty"` + Statements *int `yaml:"statements,omitempty" toml:"statements,omitempty"` + IgnoreComments *bool `yaml:"ignore-comments,omitempty" toml:"ignore-comments,omitempty"` +} + +type GinkgoLinterSettings struct { + SuppressLenAssertion *bool `yaml:"suppress-len-assertion,omitempty" toml:"suppress-len-assertion,omitempty"` + SuppressNilAssertion *bool `yaml:"suppress-nil-assertion,omitempty" toml:"suppress-nil-assertion,omitempty"` + SuppressErrAssertion *bool `yaml:"suppress-err-assertion,omitempty" toml:"suppress-err-assertion,omitempty"` + SuppressCompareAssertion *bool `yaml:"suppress-compare-assertion,omitempty" toml:"suppress-compare-assertion,omitempty"` + SuppressAsyncAssertion *bool `yaml:"suppress-async-assertion,omitempty" toml:"suppress-async-assertion,omitempty"` + SuppressTypeCompareWarning *bool `yaml:"suppress-type-compare-assertion,omitempty" toml:"suppress-type-compare-assertion,omitempty"` + ForbidFocusContainer *bool `yaml:"forbid-focus-container,omitempty" toml:"forbid-focus-container,omitempty"` + AllowHaveLenZero *bool `yaml:"allow-havelen-zero,omitempty" toml:"allow-havelen-zero,omitempty"` + ForceExpectTo *bool `yaml:"force-expect-to,omitempty" toml:"force-expect-to,omitempty"` + ValidateAsyncIntervals *bool `yaml:"validate-async-intervals,omitempty" toml:"validate-async-intervals,omitempty"` + ForbidSpecPollution *bool `yaml:"forbid-spec-pollution,omitempty" toml:"forbid-spec-pollution,omitempty"` + ForceSucceedForFuncs *bool `yaml:"force-succeed,omitempty" toml:"force-succeed,omitempty"` +} + +type GoChecksumTypeSettings struct { + DefaultSignifiesExhaustive *bool `yaml:"default-signifies-exhaustive,omitempty" toml:"default-signifies-exhaustive,omitempty"` + IncludeSharedInterfaces *bool `yaml:"include-shared-interfaces,omitempty" toml:"include-shared-interfaces,omitempty"` +} + +type GocognitSettings struct { + MinComplexity *int `yaml:"min-complexity,omitempty" toml:"min-complexity,omitempty"` +} + +type GoConstSettings struct { + IgnoreStrings *string `yaml:"ignore-strings,omitempty" toml:"ignore-strings,omitempty"` + MatchWithConstants *bool `yaml:"match-constant,omitempty" toml:"match-constant,omitempty"` + MinStringLen *int `yaml:"min-len,omitempty" toml:"min-len,omitempty"` + MinOccurrencesCount *int `yaml:"min-occurrences,omitempty" toml:"min-occurrences,omitempty"` + ParseNumbers *bool `yaml:"numbers,omitempty" toml:"numbers,omitempty"` + NumberMin *int `yaml:"min,omitempty" toml:"min,omitempty"` + NumberMax *int `yaml:"max,omitempty" toml:"max,omitempty"` + IgnoreCalls *bool `yaml:"ignore-calls,omitempty" toml:"ignore-calls,omitempty"` +} + +type GoCriticSettings struct { + Go *string `yaml:"-,omitempty" toml:"-,omitempty"` + DisableAll *bool `yaml:"disable-all,omitempty" toml:"disable-all,omitempty"` + EnabledChecks []string `yaml:"enabled-checks,omitempty" toml:"enabled-checks,omitempty"` + EnableAll *bool `yaml:"enable-all,omitempty" toml:"enable-all,omitempty"` + DisabledChecks []string `yaml:"disabled-checks,omitempty" toml:"disabled-checks,omitempty"` + EnabledTags []string `yaml:"enabled-tags,omitempty" toml:"enabled-tags,omitempty"` + DisabledTags []string `yaml:"disabled-tags,omitempty" toml:"disabled-tags,omitempty"` + SettingsPerCheck map[string]GoCriticCheckSettings `yaml:"settings,omitempty" toml:"settings,omitempty"` +} + +type GoCriticCheckSettings map[string]any + +type GoCycloSettings struct { + MinComplexity *int `yaml:"min-complexity,omitempty" toml:"min-complexity,omitempty"` +} + +type GodotSettings struct { + Scope *string `yaml:"scope,omitempty" toml:"scope,omitempty"` + Exclude []string `yaml:"exclude,omitempty" toml:"exclude,omitempty"` + Capital *bool `yaml:"capital,omitempty" toml:"capital,omitempty"` + Period *bool `yaml:"period,omitempty" toml:"period,omitempty"` +} + +type GodoxSettings struct { + Keywords []string `yaml:"keywords,omitempty" toml:"keywords,omitempty"` +} + +type GoHeaderSettings struct { + Values map[string]map[string]string `yaml:"values,omitempty" toml:"values,omitempty"` + Template *string `yaml:"template,omitempty" toml:"template,omitempty"` + TemplatePath *string `yaml:"template-path,omitempty" toml:"template-path,omitempty"` +} + +type GoModDirectivesSettings struct { + ReplaceAllowList []string `yaml:"replace-allow-list,omitempty" toml:"replace-allow-list,omitempty"` + ReplaceLocal *bool `yaml:"replace-local,omitempty" toml:"replace-local,omitempty"` + ExcludeForbidden *bool `yaml:"exclude-forbidden,omitempty" toml:"exclude-forbidden,omitempty"` + RetractAllowNoExplanation *bool `yaml:"retract-allow-no-explanation,omitempty" toml:"retract-allow-no-explanation,omitempty"` + ToolchainForbidden *bool `yaml:"toolchain-forbidden,omitempty" toml:"toolchain-forbidden,omitempty"` + ToolchainPattern *string `yaml:"toolchain-pattern,omitempty" toml:"toolchain-pattern,omitempty"` + ToolForbidden *bool `yaml:"tool-forbidden,omitempty" toml:"tool-forbidden,omitempty"` + GoDebugForbidden *bool `yaml:"go-debug-forbidden,omitempty" toml:"go-debug-forbidden,omitempty"` + GoVersionPattern *string `yaml:"go-version-pattern,omitempty" toml:"go-version-pattern,omitempty"` +} + +type GoModGuardSettings struct { + Allowed GoModGuardAllowed `yaml:"allowed,omitempty" toml:"allowed,omitempty"` + Blocked GoModGuardBlocked `yaml:"blocked,omitempty" toml:"blocked,omitempty"` +} + +type GoModGuardAllowed struct { + Modules []string `yaml:"modules,omitempty" toml:"modules,omitempty"` + Domains []string `yaml:"domains,omitempty" toml:"domains,omitempty"` +} + +type GoModGuardBlocked struct { + Modules []map[string]GoModGuardModule `yaml:"modules,omitempty" toml:"modules,omitempty"` + Versions []map[string]GoModGuardVersion `yaml:"versions,omitempty" toml:"versions,omitempty"` + LocalReplaceDirectives *bool `yaml:"local-replace-directives,omitempty" toml:"local-replace-directives,omitempty"` +} + +type GoModGuardModule struct { + Recommendations []string `yaml:"recommendations,omitempty" toml:"recommendations,omitempty"` + Reason *string `yaml:"reason,omitempty" toml:"reason,omitempty"` +} + +type GoModGuardVersion struct { + Version *string `yaml:"version,omitempty" toml:"version,omitempty"` + Reason *string `yaml:"reason,omitempty" toml:"reason,omitempty"` +} + +type GoSecSettings struct { + Includes []string `yaml:"includes,omitempty" toml:"includes,omitempty"` + Excludes []string `yaml:"excludes,omitempty" toml:"excludes,omitempty"` + Severity *string `yaml:"severity,omitempty" toml:"severity,omitempty"` + Confidence *string `yaml:"confidence,omitempty" toml:"confidence,omitempty"` + Config map[string]any `yaml:"config,omitempty" toml:"config,omitempty"` + Concurrency *int `yaml:"concurrency,omitempty" toml:"concurrency,omitempty"` +} + +type GosmopolitanSettings struct { + AllowTimeLocal *bool `yaml:"allow-time-local,omitempty" toml:"allow-time-local,omitempty"` + EscapeHatches []string `yaml:"escape-hatches,omitempty" toml:"escape-hatches,omitempty"` + WatchForScripts []string `yaml:"watch-for-scripts,omitempty" toml:"watch-for-scripts,omitempty"` +} + +type GovetSettings struct { + Go *string `yaml:"-,omitempty" toml:"-,omitempty"` + + Enable []string `yaml:"enable,omitempty" toml:"enable,omitempty"` + Disable []string `yaml:"disable,omitempty" toml:"disable,omitempty"` + EnableAll *bool `yaml:"enable-all,omitempty" toml:"enable-all,omitempty"` + DisableAll *bool `yaml:"disable-all,omitempty" toml:"disable-all,omitempty"` + + Settings map[string]map[string]any `yaml:"settings,omitempty" toml:"settings,omitempty"` +} + +type GrouperSettings struct { + ConstRequireSingleConst *bool `yaml:"const-require-single-const,omitempty" toml:"const-require-single-const,omitempty"` + ConstRequireGrouping *bool `yaml:"const-require-grouping,omitempty" toml:"const-require-grouping,omitempty"` + ImportRequireSingleImport *bool `yaml:"import-require-single-import,omitempty" toml:"import-require-single-import,omitempty"` + ImportRequireGrouping *bool `yaml:"import-require-grouping,omitempty" toml:"import-require-grouping,omitempty"` + TypeRequireSingleType *bool `yaml:"type-require-single-type,omitempty" toml:"type-require-single-type,omitempty"` + TypeRequireGrouping *bool `yaml:"type-require-grouping,omitempty" toml:"type-require-grouping,omitempty"` + VarRequireSingleVar *bool `yaml:"var-require-single-var,omitempty" toml:"var-require-single-var,omitempty"` + VarRequireGrouping *bool `yaml:"var-require-grouping,omitempty" toml:"var-require-grouping,omitempty"` +} + +type IfaceSettings struct { + Enable []string `yaml:"enable,omitempty" toml:"enable,omitempty"` + Settings map[string]map[string]any `yaml:"settings,omitempty" toml:"settings,omitempty"` +} + +type ImportAsSettings struct { + Alias []ImportAsAlias `yaml:"alias,omitempty" toml:"alias,omitempty"` + NoUnaliased *bool `yaml:"no-unaliased,omitempty" toml:"no-unaliased,omitempty"` + NoExtraAliases *bool `yaml:"no-extra-aliases,omitempty" toml:"no-extra-aliases,omitempty"` +} + +type ImportAsAlias struct { + Pkg *string `yaml:"pkg,omitempty" toml:"pkg,omitempty"` + Alias *string `yaml:"alias,omitempty" toml:"alias,omitempty"` +} + +type INamedParamSettings struct { + SkipSingleParam *bool `yaml:"skip-single-param,omitempty" toml:"skip-single-param,omitempty"` +} + +type InterfaceBloatSettings struct { + Max *int `yaml:"max,omitempty" toml:"max,omitempty"` +} + +type IreturnSettings struct { + Allow []string `yaml:"allow,omitempty" toml:"allow,omitempty"` + Reject []string `yaml:"reject,omitempty" toml:"reject,omitempty"` +} + +type LllSettings struct { + LineLength *int `yaml:"line-length,omitempty" toml:"line-length,omitempty"` + TabWidth *int `yaml:"tab-width,omitempty" toml:"tab-width,omitempty"` +} + +type LoggerCheckSettings struct { + Kitlog *bool `yaml:"kitlog,omitempty" toml:"kitlog,omitempty"` + Klog *bool `yaml:"klog,omitempty" toml:"klog,omitempty"` + Logr *bool `yaml:"logr,omitempty" toml:"logr,omitempty"` + Slog *bool `yaml:"slog,omitempty" toml:"slog,omitempty"` + Zap *bool `yaml:"zap,omitempty" toml:"zap,omitempty"` + RequireStringKey *bool `yaml:"require-string-key,omitempty" toml:"require-string-key,omitempty"` + NoPrintfLike *bool `yaml:"no-printf-like,omitempty" toml:"no-printf-like,omitempty"` + Rules []string `yaml:"rules,omitempty" toml:"rules,omitempty"` +} + +type MaintIdxSettings struct { + Under *int `yaml:"under,omitempty" toml:"under,omitempty"` +} + +type MakezeroSettings struct { + Always *bool `yaml:"always,omitempty" toml:"always,omitempty"` +} + +type MisspellSettings struct { + Mode *string `yaml:"mode,omitempty" toml:"mode,omitempty"` + Locale *string `yaml:"locale,omitempty" toml:"locale,omitempty"` + ExtraWords []MisspellExtraWords `yaml:"extra-words,omitempty" toml:"extra-words,omitempty"` + IgnoreRules []string `yaml:"ignore-rules,omitempty" toml:"ignore-rules,omitempty"` +} + +type MisspellExtraWords struct { + Typo *string `yaml:"typo,omitempty" toml:"typo,omitempty"` + Correction *string `yaml:"correction,omitempty" toml:"correction,omitempty"` +} + +type MustTagSettings struct { + Functions []MustTagFunction `yaml:"functions,omitempty" toml:"functions,omitempty"` +} + +type MustTagFunction struct { + Name *string `yaml:"name,omitempty" toml:"name,omitempty"` + Tag *string `yaml:"tag,omitempty" toml:"tag,omitempty"` + ArgPos *int `yaml:"arg-pos,omitempty" toml:"arg-pos,omitempty"` +} + +type NakedretSettings struct { + MaxFuncLines uint `yaml:"max-func-lines,omitempty" toml:"max-func-lines,omitempty"` +} + +type NestifSettings struct { + MinComplexity *int `yaml:"min-complexity,omitempty" toml:"min-complexity,omitempty"` +} + +type NilNilSettings struct { + DetectOpposite *bool `yaml:"detect-opposite,omitempty" toml:"detect-opposite,omitempty"` + CheckedTypes []string `yaml:"checked-types,omitempty" toml:"checked-types,omitempty"` +} + +type NlreturnSettings struct { + BlockSize *int `yaml:"block-size,omitempty" toml:"block-size,omitempty"` +} + +type MndSettings struct { + Checks []string `yaml:"checks,omitempty" toml:"checks,omitempty"` + IgnoredNumbers []string `yaml:"ignored-numbers,omitempty" toml:"ignored-numbers,omitempty"` + IgnoredFiles []string `yaml:"ignored-files,omitempty" toml:"ignored-files,omitempty"` + IgnoredFunctions []string `yaml:"ignored-functions,omitempty" toml:"ignored-functions,omitempty"` +} + +type NoLintLintSettings struct { + RequireExplanation *bool `yaml:"require-explanation,omitempty" toml:"require-explanation,omitempty"` + RequireSpecific *bool `yaml:"require-specific,omitempty" toml:"require-specific,omitempty"` + AllowNoExplanation []string `yaml:"allow-no-explanation,omitempty" toml:"allow-no-explanation,omitempty"` + AllowUnused *bool `yaml:"allow-unused,omitempty" toml:"allow-unused,omitempty"` +} + +type NoNamedReturnsSettings struct { + ReportErrorInDefer *bool `yaml:"report-error-in-defer,omitempty" toml:"report-error-in-defer,omitempty"` +} + +type ParallelTestSettings struct { + Go *string `yaml:"-,omitempty" toml:"-,omitempty"` + IgnoreMissing *bool `yaml:"ignore-missing,omitempty" toml:"ignore-missing,omitempty"` + IgnoreMissingSubtests *bool `yaml:"ignore-missing-subtests,omitempty" toml:"ignore-missing-subtests,omitempty"` +} + +type PerfSprintSettings struct { + IntegerFormat *bool `yaml:"integer-format,omitempty" toml:"integer-format,omitempty"` + IntConversion *bool `yaml:"int-conversion,omitempty" toml:"int-conversion,omitempty"` + + ErrorFormat *bool `yaml:"error-format,omitempty" toml:"error-format,omitempty"` + ErrError *bool `yaml:"err-error,omitempty" toml:"err-error,omitempty"` + ErrorF *bool `yaml:"errorf,omitempty" toml:"errorf,omitempty"` + + StringFormat *bool `yaml:"string-format,omitempty" toml:"string-format,omitempty"` + SprintF1 *bool `yaml:"sprintf1,omitempty" toml:"sprintf1,omitempty"` + StrConcat *bool `yaml:"strconcat,omitempty" toml:"strconcat,omitempty"` + + BoolFormat *bool `yaml:"bool-format,omitempty" toml:"bool-format,omitempty"` + HexFormat *bool `yaml:"hex-format,omitempty" toml:"hex-format,omitempty"` +} + +type PreallocSettings struct { + Simple *bool `yaml:"simple,omitempty" toml:"simple,omitempty"` + RangeLoops *bool `yaml:"range-loops,omitempty" toml:"range-loops,omitempty"` + ForLoops *bool `yaml:"for-loops,omitempty" toml:"for-loops,omitempty"` +} + +type PredeclaredSettings struct { + Ignore []string `yaml:"ignore,omitempty" toml:"ignore,omitempty"` + Qualified *bool `yaml:"qualified-name,omitempty" toml:"qualified-name,omitempty"` +} + +type PromlinterSettings struct { + Strict *bool `yaml:"strict,omitempty" toml:"strict,omitempty"` + DisabledLinters []string `yaml:"disabled-linters,omitempty" toml:"disabled-linters,omitempty"` +} + +type ProtoGetterSettings struct { + SkipGeneratedBy []string `yaml:"skip-generated-by,omitempty" toml:"skip-generated-by,omitempty"` + SkipFiles []string `yaml:"skip-files,omitempty" toml:"skip-files,omitempty"` + SkipAnyGenerated *bool `yaml:"skip-any-generated,omitempty" toml:"skip-any-generated,omitempty"` + ReplaceFirstArgInAppend *bool `yaml:"replace-first-arg-in-append,omitempty" toml:"replace-first-arg-in-append,omitempty"` +} + +type ReassignSettings struct { + Patterns []string `yaml:"patterns,omitempty" toml:"patterns,omitempty"` +} + +type RecvcheckSettings struct { + DisableBuiltin *bool `yaml:"disable-builtin,omitempty" toml:"disable-builtin,omitempty"` + Exclusions []string `yaml:"exclusions,omitempty" toml:"exclusions,omitempty"` +} + +type ReviveSettings struct { + Go *string `yaml:"-,omitempty" toml:"-,omitempty"` + MaxOpenFiles *int `yaml:"max-open-files,omitempty" toml:"max-open-files,omitempty"` + Confidence *float64 `yaml:"confidence,omitempty" toml:"confidence,omitempty"` + Severity *string `yaml:"severity,omitempty" toml:"severity,omitempty"` + EnableAllRules *bool `yaml:"enable-all-rules,omitempty" toml:"enable-all-rules,omitempty"` + Rules []ReviveRule `yaml:"rules,omitempty" toml:"rules,omitempty"` + ErrorCode *int `yaml:"error-code,omitempty" toml:"error-code,omitempty"` + WarningCode *int `yaml:"warning-code,omitempty" toml:"warning-code,omitempty"` + Directives []ReviveDirective `yaml:"directives,omitempty" toml:"directives,omitempty"` +} + +type ReviveRule struct { + Name *string `yaml:"name,omitempty" toml:"name,omitempty"` + Arguments []any `yaml:"arguments,omitempty" toml:"arguments,omitempty"` + Severity *string `yaml:"severity,omitempty" toml:"severity,omitempty"` + Disabled *bool `yaml:"disabled,omitempty" toml:"disabled,omitempty"` + Exclude []string `yaml:"exclude,omitempty" toml:"exclude,omitempty"` +} + +type ReviveDirective struct { + Name *string `yaml:"name,omitempty" toml:"name,omitempty"` + Severity *string `yaml:"severity,omitempty" toml:"severity,omitempty"` +} + +type RowsErrCheckSettings struct { + Packages []string `yaml:"packages,omitempty" toml:"packages,omitempty"` +} + +type SlogLintSettings struct { + NoMixedArgs *bool `yaml:"no-mixed-args,omitempty" toml:"no-mixed-args,omitempty"` + KVOnly *bool `yaml:"kv-only,omitempty" toml:"kv-only,omitempty"` + AttrOnly *bool `yaml:"attr-only,omitempty" toml:"attr-only,omitempty"` + NoGlobal *string `yaml:"no-global,omitempty" toml:"no-global,omitempty"` + Context *string `yaml:"context,omitempty" toml:"context,omitempty"` + StaticMsg *bool `yaml:"static-msg,omitempty" toml:"static-msg,omitempty"` + NoRawKeys *bool `yaml:"no-raw-keys,omitempty" toml:"no-raw-keys,omitempty"` + KeyNamingCase *string `yaml:"key-naming-case,omitempty" toml:"key-naming-case,omitempty"` + ForbiddenKeys []string `yaml:"forbidden-keys,omitempty" toml:"forbidden-keys,omitempty"` + ArgsOnSepLines *bool `yaml:"args-on-sep-lines,omitempty" toml:"args-on-sep-lines,omitempty"` +} + +type SpancheckSettings struct { + Checks []string `yaml:"checks,omitempty" toml:"checks,omitempty"` + IgnoreCheckSignatures []string `yaml:"ignore-check-signatures,omitempty" toml:"ignore-check-signatures,omitempty"` + ExtraStartSpanSignatures []string `yaml:"extra-start-span-signatures,omitempty" toml:"extra-start-span-signatures,omitempty"` +} + +type StaticCheckSettings struct { + Checks []string `yaml:"checks,omitempty" toml:"checks,omitempty"` + Initialisms []string `yaml:"initialisms,omitempty" toml:"initialisms,omitempty"` + DotImportWhitelist []string `yaml:"dot-import-whitelist,omitempty" toml:"dot-import-whitelist,omitempty"` + HTTPStatusCodeWhitelist []string `yaml:"http-status-code-whitelist,omitempty" toml:"http-status-code-whitelist,omitempty"` +} + +type TagAlignSettings struct { + Align *bool `yaml:"align,omitempty" toml:"align,omitempty"` + Sort *bool `yaml:"sort,omitempty" toml:"sort,omitempty"` + Order []string `yaml:"order,omitempty" toml:"order,omitempty"` + Strict *bool `yaml:"strict,omitempty" toml:"strict,omitempty"` +} + +type TagliatelleSettings struct { + Case TagliatelleCase `yaml:"case,omitempty" toml:"case,omitempty"` +} + +type TagliatelleCase struct { + TagliatelleBase `yaml:",inline"` + Overrides []TagliatelleOverrides `yaml:"overrides,omitempty" toml:"overrides,omitempty"` +} + +type TagliatelleOverrides struct { + TagliatelleBase `yaml:",inline"` + Package *string `yaml:"pkg,omitempty" toml:"pkg,omitempty"` + Ignore *bool `yaml:"ignore,omitempty" toml:"ignore,omitempty"` +} + +type TagliatelleBase struct { + Rules map[string]string `yaml:"rules,omitempty" toml:"rules,omitempty"` + ExtendedRules map[string]TagliatelleExtendedRule `yaml:"extended-rules,omitempty" toml:"extended-rules,omitempty"` + UseFieldName *bool `yaml:"use-field-name,omitempty" toml:"use-field-name,omitempty"` + IgnoredFields []string `yaml:"ignored-fields,omitempty" toml:"ignored-fields,omitempty"` +} + +type TagliatelleExtendedRule struct { + Case *string `yaml:"case,omitempty" toml:"case,omitempty"` + ExtraInitialisms *bool `yaml:"extra-initialisms,omitempty" toml:"extra-initialisms,omitempty"` + InitialismOverrides map[string]bool `yaml:"initialism-overrides,omitempty" toml:"initialism-overrides,omitempty"` +} + +type TestifylintSettings struct { + EnableAll *bool `yaml:"enable-all,omitempty" toml:"enable-all,omitempty"` + DisableAll *bool `yaml:"disable-all,omitempty" toml:"disable-all,omitempty"` + EnabledCheckers []string `yaml:"enable,omitempty" toml:"enable,omitempty"` + DisabledCheckers []string `yaml:"disable,omitempty" toml:"disable,omitempty"` + + BoolCompare TestifylintBoolCompare `yaml:"bool-compare,omitempty" toml:"bool-compare,omitempty"` + ExpectedActual TestifylintExpectedActual `yaml:"expected-actual,omitempty" toml:"expected-actual,omitempty"` + Formatter TestifylintFormatter `yaml:"formatter,omitempty" toml:"formatter,omitempty"` + GoRequire TestifylintGoRequire `yaml:"go-require,omitempty" toml:"go-require,omitempty"` + RequireError TestifylintRequireError `yaml:"require-error,omitempty" toml:"require-error,omitempty"` + SuiteExtraAssertCall TestifylintSuiteExtraAssertCall `yaml:"suite-extra-assert-call,omitempty" toml:"suite-extra-assert-call,omitempty"` +} + +type TestifylintBoolCompare struct { + IgnoreCustomTypes *bool `yaml:"ignore-custom-types,omitempty" toml:"ignore-custom-types,omitempty"` +} + +type TestifylintExpectedActual struct { + ExpVarPattern *string `yaml:"pattern,omitempty" toml:"pattern,omitempty"` +} + +type TestifylintFormatter struct { + CheckFormatString *bool `yaml:"check-format-string,omitempty" toml:"check-format-string,omitempty"` + RequireFFuncs *bool `yaml:"require-f-funcs,omitempty" toml:"require-f-funcs,omitempty"` +} + +type TestifylintGoRequire struct { + IgnoreHTTPHandlers *bool `yaml:"ignore-http-handlers,omitempty" toml:"ignore-http-handlers,omitempty"` +} + +type TestifylintRequireError struct { + FnPattern *string `yaml:"fn-pattern,omitempty" toml:"fn-pattern,omitempty"` +} + +type TestifylintSuiteExtraAssertCall struct { + Mode *string `yaml:"mode,omitempty" toml:"mode,omitempty"` +} + +type TestpackageSettings struct { + SkipRegexp *string `yaml:"skip-regexp,omitempty" toml:"skip-regexp,omitempty"` + AllowPackages []string `yaml:"allow-packages,omitempty" toml:"allow-packages,omitempty"` +} + +type ThelperSettings struct { + Test ThelperOptions `yaml:"test,omitempty" toml:"test,omitempty"` + Fuzz ThelperOptions `yaml:"fuzz,omitempty" toml:"fuzz,omitempty"` + Benchmark ThelperOptions `yaml:"benchmark,omitempty" toml:"benchmark,omitempty"` + TB ThelperOptions `yaml:"tb,omitempty" toml:"tb,omitempty"` +} + +type ThelperOptions struct { + First *bool `yaml:"first,omitempty" toml:"first,omitempty"` + Name *bool `yaml:"name,omitempty" toml:"name,omitempty"` + Begin *bool `yaml:"begin,omitempty" toml:"begin,omitempty"` +} + +type TenvSettings struct { + All *bool `yaml:"all,omitempty" toml:"all,omitempty"` +} + +type UseStdlibVarsSettings struct { + HTTPMethod *bool `yaml:"http-method,omitempty" toml:"http-method,omitempty"` + HTTPStatusCode *bool `yaml:"http-status-code,omitempty" toml:"http-status-code,omitempty"` + TimeWeekday *bool `yaml:"time-weekday,omitempty" toml:"time-weekday,omitempty"` + TimeMonth *bool `yaml:"time-month,omitempty" toml:"time-month,omitempty"` + TimeLayout *bool `yaml:"time-layout,omitempty" toml:"time-layout,omitempty"` + CryptoHash *bool `yaml:"crypto-hash,omitempty" toml:"crypto-hash,omitempty"` + DefaultRPCPath *bool `yaml:"default-rpc-path,omitempty" toml:"default-rpc-path,omitempty"` + SQLIsolationLevel *bool `yaml:"sql-isolation-level,omitempty" toml:"sql-isolation-level,omitempty"` + TLSSignatureScheme *bool `yaml:"tls-signature-scheme,omitempty" toml:"tls-signature-scheme,omitempty"` + ConstantKind *bool `yaml:"constant-kind,omitempty" toml:"constant-kind,omitempty"` +} + +type UseTestingSettings struct { + ContextBackground *bool `yaml:"context-background,omitempty" toml:"context-background,omitempty"` + ContextTodo *bool `yaml:"context-todo,omitempty" toml:"context-todo,omitempty"` + OSChdir *bool `yaml:"os-chdir,omitempty" toml:"os-chdir,omitempty"` + OSMkdirTemp *bool `yaml:"os-mkdir-temp,omitempty" toml:"os-mkdir-temp,omitempty"` + OSSetenv *bool `yaml:"os-setenv,omitempty" toml:"os-setenv,omitempty"` + OSTempDir *bool `yaml:"os-temp-dir,omitempty" toml:"os-temp-dir,omitempty"` + OSCreateTemp *bool `yaml:"os-create-temp,omitempty" toml:"os-create-temp,omitempty"` +} + +type UnconvertSettings struct { + FastMath *bool `yaml:"fast-math,omitempty" toml:"fast-math,omitempty"` + Safe *bool `yaml:"safe,omitempty" toml:"safe,omitempty"` +} + +type UnparamSettings struct { + CheckExported *bool `yaml:"check-exported,omitempty" toml:"check-exported,omitempty"` +} + +type UnusedSettings struct { + FieldWritesAreUses *bool `yaml:"field-writes-are-uses,omitempty" toml:"field-writes-are-uses,omitempty"` + PostStatementsAreReads *bool `yaml:"post-statements-are-reads,omitempty" toml:"post-statements-are-reads,omitempty"` + ExportedFieldsAreUsed *bool `yaml:"exported-fields-are-used,omitempty" toml:"exported-fields-are-used,omitempty"` + ParametersAreUsed *bool `yaml:"parameters-are-used,omitempty" toml:"parameters-are-used,omitempty"` + LocalVariablesAreUsed *bool `yaml:"local-variables-are-used,omitempty" toml:"local-variables-are-used,omitempty"` + GeneratedIsUsed *bool `yaml:"generated-is-used,omitempty" toml:"generated-is-used,omitempty"` +} + +type VarnamelenSettings struct { + MaxDistance *int `yaml:"max-distance,omitempty" toml:"max-distance,omitempty"` + MinNameLength *int `yaml:"min-name-length,omitempty" toml:"min-name-length,omitempty"` + CheckReceiver *bool `yaml:"check-receiver,omitempty" toml:"check-receiver,omitempty"` + CheckReturn *bool `yaml:"check-return,omitempty" toml:"check-return,omitempty"` + CheckTypeParam *bool `yaml:"check-type-param,omitempty" toml:"check-type-param,omitempty"` + IgnoreNames []string `yaml:"ignore-names,omitempty" toml:"ignore-names,omitempty"` + IgnoreTypeAssertOk *bool `yaml:"ignore-type-assert-ok,omitempty" toml:"ignore-type-assert-ok,omitempty"` + IgnoreMapIndexOk *bool `yaml:"ignore-map-index-ok,omitempty" toml:"ignore-map-index-ok,omitempty"` + IgnoreChanRecvOk *bool `yaml:"ignore-chan-recv-ok,omitempty" toml:"ignore-chan-recv-ok,omitempty"` + IgnoreDecls []string `yaml:"ignore-decls,omitempty" toml:"ignore-decls,omitempty"` +} + +type WhitespaceSettings struct { + MultiIf *bool `yaml:"multi-if,omitempty" toml:"multi-if,omitempty"` + MultiFunc *bool `yaml:"multi-func,omitempty" toml:"multi-func,omitempty"` +} + +type WrapcheckSettings struct { + ExtraIgnoreSigs []string `yaml:"extra-ignore-sigs,omitempty" toml:"extra-ignore-sigs,omitempty"` + IgnoreSigs []string `yaml:"ignore-sigs,omitempty" toml:"ignore-sigs,omitempty"` + IgnoreSigRegexps []string `yaml:"ignore-sig-regexps,omitempty" toml:"ignore-sig-regexps,omitempty"` + IgnorePackageGlobs []string `yaml:"ignore-package-globs,omitempty" toml:"ignore-package-globs,omitempty"` + IgnoreInterfaceRegexps []string `yaml:"ignore-interface-regexps,omitempty" toml:"ignore-interface-regexps,omitempty"` +} + +type WSLSettings struct { + StrictAppend *bool `yaml:"strict-append,omitempty" toml:"strict-append,omitempty"` + AllowAssignAndCallCuddle *bool `yaml:"allow-assign-and-call,omitempty" toml:"allow-assign-and-call,omitempty"` + AllowAssignAndAnythingCuddle *bool `yaml:"allow-assign-and-anything,omitempty" toml:"allow-assign-and-anything,omitempty"` + AllowMultiLineAssignCuddle *bool `yaml:"allow-multiline-assign,omitempty" toml:"allow-multiline-assign,omitempty"` + ForceCaseTrailingWhitespaceLimit *int `yaml:"force-case-trailing-whitespace,omitempty" toml:"force-case-trailing-whitespace,omitempty"` + AllowTrailingComment *bool `yaml:"allow-trailing-comment,omitempty" toml:"allow-trailing-comment,omitempty"` + AllowSeparatedLeadingComment *bool `yaml:"allow-separated-leading-comment,omitempty" toml:"allow-separated-leading-comment,omitempty"` + AllowCuddleDeclaration *bool `yaml:"allow-cuddle-declarations,omitempty" toml:"allow-cuddle-declarations,omitempty"` + AllowCuddleWithCalls []string `yaml:"allow-cuddle-with-calls,omitempty" toml:"allow-cuddle-with-calls,omitempty"` + AllowCuddleWithRHS []string `yaml:"allow-cuddle-with-rhs,omitempty" toml:"allow-cuddle-with-rhs,omitempty"` + ForceCuddleErrCheckAndAssign *bool `yaml:"force-err-cuddling,omitempty" toml:"force-err-cuddling,omitempty"` + ErrorVariableNames []string `yaml:"error-variable-names,omitempty" toml:"error-variable-names,omitempty"` + ForceExclusiveShortDeclarations *bool `yaml:"force-short-decl-cuddling,omitempty" toml:"force-short-decl-cuddling,omitempty"` +} + +type CustomLinterSettings struct { + Type *string `yaml:"type,omitempty" toml:"type,omitempty"` + + Path *string `yaml:"path,omitempty" toml:"path,omitempty"` + + Description *string `yaml:"description,omitempty" toml:"description,omitempty"` + + OriginalURL *string `yaml:"original-url,omitempty" toml:"original-url,omitempty"` + + Settings any `yaml:"settings,omitempty" toml:"settings,omitempty"` +} diff --git a/pkg/commands/internal/migrate/two/output.go b/pkg/commands/internal/migrate/two/output.go new file mode 100644 index 000000000000..5f913a1d31df --- /dev/null +++ b/pkg/commands/internal/migrate/two/output.go @@ -0,0 +1,8 @@ +package two + +type Output struct { + Formats Formats `yaml:"formats,omitempty" toml:"formats,omitempty"` + SortOrder []string `yaml:"sort-order,omitempty" toml:"sort-order,omitempty"` + PathPrefix *string `yaml:"path-prefix,omitempty" toml:"path-prefix,omitempty"` + ShowStats *bool `yaml:"show-stats,omitempty" toml:"show-stats,omitempty"` +} diff --git a/pkg/commands/internal/migrate/two/output_formats.go b/pkg/commands/internal/migrate/two/output_formats.go new file mode 100644 index 000000000000..9ee4e13400da --- /dev/null +++ b/pkg/commands/internal/migrate/two/output_formats.go @@ -0,0 +1,35 @@ +package two + +type Formats struct { + Text Text `yaml:"text,omitempty" toml:"text,omitempty"` + JSON SimpleFormat `yaml:"json,omitempty" toml:"json,omitempty"` + Tab Tab `yaml:"tab,omitempty" toml:"tab,omitempty"` + HTML SimpleFormat `yaml:"html,omitempty" toml:"html,omitempty"` + Checkstyle SimpleFormat `yaml:"checkstyle,omitempty" toml:"checkstyle,omitempty"` + CodeClimate SimpleFormat `yaml:"code-climate,omitempty" toml:"code-climate,omitempty"` + JUnitXML JUnitXML `yaml:"junit-xml,omitempty" toml:"junit-xml,omitempty"` + TeamCity SimpleFormat `yaml:"teamcity,omitempty" toml:"teamcity,omitempty"` + Sarif SimpleFormat `yaml:"sarif,omitempty" toml:"sarif,omitempty"` +} + +type SimpleFormat struct { + Path *string `yaml:"path,omitempty" toml:"path,omitempty"` +} + +type Text struct { + SimpleFormat `yaml:",inline"` + PrintLinterName *bool `yaml:"print-linter-name,omitempty" toml:"print-linter-name,omitempty"` + PrintIssuedLine *bool `yaml:"print-issued-lines,omitempty" toml:"print-issued-lines,omitempty"` + Colors *bool `yaml:"colors,omitempty" toml:"colors,omitempty"` +} + +type Tab struct { + SimpleFormat `yaml:",inline"` + PrintLinterName *bool `yaml:"print-linter-name,omitempty" toml:"print-linter-name,omitempty"` + Colors *bool `yaml:"colors,omitempty" toml:"colors,omitempty"` +} + +type JUnitXML struct { + SimpleFormat `yaml:",inline"` + Extended *bool `yaml:"extended,omitempty" toml:"extended,omitempty"` +} diff --git a/pkg/commands/internal/migrate/two/run.go b/pkg/commands/internal/migrate/two/run.go new file mode 100644 index 000000000000..0f8127d5c052 --- /dev/null +++ b/pkg/commands/internal/migrate/two/run.go @@ -0,0 +1,24 @@ +package two + +import ( + "time" +) + +type Run struct { + Timeout time.Duration `yaml:"timeout,omitempty" toml:"timeout,omitempty"` + + Concurrency *int `yaml:"concurrency,omitempty" toml:"concurrency,omitempty"` + + Go *string `yaml:"go,omitempty" toml:"go,omitempty"` + + RelativePathMode *string `yaml:"relative-path-mode,omitempty" toml:"relative-path-mode,omitempty"` + + BuildTags []string `yaml:"build-tags,omitempty" toml:"build-tags,omitempty"` + ModulesDownloadMode *string `yaml:"modules-download-mode,omitempty" toml:"modules-download-mode,omitempty"` + + ExitCodeIfIssuesFound *int `yaml:"issues-exit-code,omitempty" toml:"issues-exit-code,omitempty"` + AnalyzeTests *bool `yaml:"tests,omitempty" toml:"tests,omitempty"` + + AllowParallelRunners *bool `yaml:"allow-parallel-runners,omitempty" toml:"allow-parallel-runners,omitempty"` + AllowSerialRunners *bool `yaml:"allow-serial-runners,omitempty" toml:"allow-serial-runners,omitempty"` +} diff --git a/pkg/commands/internal/migrate/two/severity.go b/pkg/commands/internal/migrate/two/severity.go new file mode 100644 index 000000000000..73dbce5fb3c7 --- /dev/null +++ b/pkg/commands/internal/migrate/two/severity.go @@ -0,0 +1,11 @@ +package two + +type Severity struct { + Default *string `yaml:"default,omitempty" toml:"default,omitempty"` + Rules []SeverityRule `yaml:"rules,omitempty" toml:"rules,omitempty"` +} + +type SeverityRule struct { + BaseRule `yaml:",inline"` + Severity *string `yaml:"severity,omitempty" toml:"severity,omitempty"` +} From 1a74a2a7a6a94a0291b65e935188ffbb93ce9415 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Sat, 1 Mar 2025 16:08:24 +0100 Subject: [PATCH 05/30] feat: migration command --- .golangci.yml | 6 + pkg/commands/internal/migrate/migrate.go | 19 + .../internal/migrate/migrate_formatters.go | 79 ++ .../internal/migrate/migrate_issues.go | 20 + .../internal/migrate/migrate_linter_names.go | 908 +++++++++++++++ .../migrate/migrate_linter_names_test.go | 462 ++++++++ .../internal/migrate/migrate_linters.go | 31 + .../migrate/migrate_linters_exclusions.go | 141 +++ .../migrate/migrate_linters_settings.go | 1004 +++++++++++++++++ .../internal/migrate/migrate_output.go | 103 ++ pkg/commands/internal/migrate/migrate_run.go | 34 + .../internal/migrate/migrate_severity.go | 28 + pkg/commands/internal/migrate/migrate_test.go | 102 ++ pkg/commands/migrate.go | 239 ++++ pkg/commands/root.go | 1 + 15 files changed, 3177 insertions(+) create mode 100644 pkg/commands/internal/migrate/migrate.go create mode 100644 pkg/commands/internal/migrate/migrate_formatters.go create mode 100644 pkg/commands/internal/migrate/migrate_issues.go create mode 100644 pkg/commands/internal/migrate/migrate_linter_names.go create mode 100644 pkg/commands/internal/migrate/migrate_linter_names_test.go create mode 100644 pkg/commands/internal/migrate/migrate_linters.go create mode 100644 pkg/commands/internal/migrate/migrate_linters_exclusions.go create mode 100644 pkg/commands/internal/migrate/migrate_linters_settings.go create mode 100644 pkg/commands/internal/migrate/migrate_output.go create mode 100644 pkg/commands/internal/migrate/migrate_run.go create mode 100644 pkg/commands/internal/migrate/migrate_severity.go create mode 100644 pkg/commands/internal/migrate/migrate_test.go create mode 100644 pkg/commands/migrate.go diff --git a/.golangci.yml b/.golangci.yml index 7063f491b93d..c326529f35be 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -176,6 +176,12 @@ linters: linters: - lll + # Related to migration command. + - path: pkg/commands/internal/migrate/ + linters: + - gocritic + text: "hugeParam:" + formatters: enable: - gofmt diff --git a/pkg/commands/internal/migrate/migrate.go b/pkg/commands/internal/migrate/migrate.go new file mode 100644 index 000000000000..0c185b8241a3 --- /dev/null +++ b/pkg/commands/internal/migrate/migrate.go @@ -0,0 +1,19 @@ +package migrate + +import ( + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" +) + +func ToConfig(old *one.Config) *two.Config { + return &two.Config{ + Version: ptr.Pointer("2"), + Linters: toLinters(old), + Formatters: toFormatters(old), + Issues: toIssues(old), + Output: toOutput(old), + Severity: toSeverity(old), + Run: toRun(old), + } +} diff --git a/pkg/commands/internal/migrate/migrate_formatters.go b/pkg/commands/internal/migrate/migrate_formatters.go new file mode 100644 index 000000000000..6abd63b093c1 --- /dev/null +++ b/pkg/commands/internal/migrate/migrate_formatters.go @@ -0,0 +1,79 @@ +package migrate + +import ( + "slices" + "strings" + + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" +) + +func toFormatters(old *one.Config) two.Formatters { + enable, _ := ProcessEffectiveLinters(old.Linters) + + formatterNames := onlyFormatterNames(enable) + + var paths []string + if len(formatterNames) != 0 { + paths = slices.Concat(old.Issues.ExcludeFiles, old.Issues.ExcludeDirs) + } + + return two.Formatters{ + Enable: formatterNames, + Settings: two.FormatterSettings{ + Gci: toGciSettings(old.LintersSettings.Gci), + GoFmt: toGoFmtSettings(old.LintersSettings.GoFmt), + GoFumpt: toGoFumptSettings(old.LintersSettings.GoFumpt), + GoImports: toGoImportsSettings(old.LintersSettings.GoImports), + }, + Exclusions: two.FormatterExclusions{ + Generated: toExclusionGenerated(old.Issues.ExcludeGenerated), + Paths: paths, + }, + } +} + +func toGciSettings(old one.GciSettings) two.GciSettings { + return two.GciSettings{ + Sections: old.Sections, + NoInlineComments: old.NoInlineComments, + NoPrefixComments: old.NoPrefixComments, + CustomOrder: old.CustomOrder, + NoLexOrder: old.CustomOrder, + } +} + +func toGoFmtSettings(old one.GoFmtSettings) two.GoFmtSettings { + settings := two.GoFmtSettings{ + Simplify: old.Simplify, + } + + for _, rule := range old.RewriteRules { + settings.RewriteRules = append(settings.RewriteRules, two.GoFmtRewriteRule{ + Pattern: rule.Pattern, + Replacement: rule.Replacement, + }) + } + + return settings +} + +func toGoFumptSettings(old one.GoFumptSettings) two.GoFumptSettings { + return two.GoFumptSettings{ + ModulePath: old.ModulePath, + ExtraRules: old.ExtraRules, + } +} + +func toGoImportsSettings(old one.GoImportsSettings) two.GoImportsSettings { + var localPrefixes []string + + if ptr.Deref(old.LocalPrefixes) != "" { + localPrefixes = strings.Split(ptr.Deref(old.LocalPrefixes), ",") + } + + return two.GoImportsSettings{ + LocalPrefixes: localPrefixes, + } +} diff --git a/pkg/commands/internal/migrate/migrate_issues.go b/pkg/commands/internal/migrate/migrate_issues.go new file mode 100644 index 000000000000..057bce86d94e --- /dev/null +++ b/pkg/commands/internal/migrate/migrate_issues.go @@ -0,0 +1,20 @@ +package migrate + +import ( + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" +) + +func toIssues(old *one.Config) two.Issues { + return two.Issues{ + MaxIssuesPerLinter: old.Issues.MaxIssuesPerLinter, + MaxSameIssues: old.Issues.MaxSameIssues, + UniqByLine: old.Issues.UniqByLine, + DiffFromRevision: old.Issues.DiffFromRevision, + DiffFromMergeBase: old.Issues.DiffFromMergeBase, + DiffPatchFilePath: old.Issues.DiffPatchFilePath, + WholeFiles: old.Issues.WholeFiles, + Diff: old.Issues.Diff, + NeedFix: old.Issues.NeedFix, + } +} diff --git a/pkg/commands/internal/migrate/migrate_linter_names.go b/pkg/commands/internal/migrate/migrate_linter_names.go new file mode 100644 index 000000000000..ed63bc684dfa --- /dev/null +++ b/pkg/commands/internal/migrate/migrate_linter_names.go @@ -0,0 +1,908 @@ +package migrate + +import ( + "slices" + + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" +) + +type LinterInfo struct { + Name string `json:"name"` + Presets []string `json:"inPresets"` + Slow bool `json:"isSlow,omitempty"` + Default bool `json:"enabledByDefault,omitempty"` + AlternativeNames []string `json:"alternativeNames,omitempty"` +} + +func (l *LinterInfo) isName(name string) bool { + if name == l.Name { + return true + } + + return slices.Contains(l.AlternativeNames, name) +} + +func (l *LinterInfo) hasPresets(names []string) bool { + for _, name := range names { + if slices.Contains(l.Presets, name) { + return true + } + } + + return false +} + +func ProcessEffectiveLinters(old one.Linters) (enable, disable []string) { + switch { + case ptr.Deref(old.DisableAll): + return disableAllFilter(old), nil + case ptr.Deref(old.EnableAll): + return nil, enableAllFilter(old) + default: + return defaultLintersFilter(old) + } +} + +// disableAllFilter generates the value of `enable` when `disable-all` is `true`. +func disableAllFilter(old one.Linters) []string { + // if disable-all -> presets fast enable + // - presets fast enable: (presets - [slow]) + enable => effective enable + none + // - presets fast: presets - slow => effective enable + none + // - presets fast enable: presets + enable => effective enable + none + // - enable => effective enable + none + // - fast => nothing + // - fast enable: enable => effective enable + none + + // (presets - [slow]) + enable => effective enable + none + names := toNames( + slices.Concat( + filter( + allLinters(), onlyPresets(old), keepFast(old), // presets - [slow] + ), + allEnabled(old, allLinters()), // + enable + ), + ) + + return slices.Concat(names, unknownLinterNames(old.Enable, allLinters())) +} + +// enableAllFilter generates the value of `disable` when `enable-all` is `true`. +func enableAllFilter(old one.Linters) []string { + // if enable-all -> presets fast disable + // - presets fast disable: all - fast + disable => effective disable + all + // - presets fast: all - fast => effective disable + all + // - presets disable: disable => effective disable + all + // - disable => effective disable + all + // - fast: all - fast => effective disable + all + // - fast disable: all - fast + disable => effective disable + all + + // all - [fast] + disable => effective disable + all + names := toNames( + slices.Concat( + filter( + allLinters(), keepSlow(old), // all - fast + ), + allDisabled(old, allLinters()), // + disable + ), + ) + + return slices.Concat(names, unknownLinterNames(old.Disable, allLinters())) +} + +// defaultLintersFilter generates the values of `enable` and `disable` when using default linters. +func defaultLintersFilter(old one.Linters) (enable, disable []string) { + // if default -> presets fast disable + // - presets > fast > disable > enable => effective enable + disable + standard + // - (default - fast) - enable + disable => effective disable + // - presets - slow + enable - default - [effective disable] => effective enable + // - presets + fast + disable => effective enable + disable + standard + // - (default - fast) + disable => effective disable + // - presets - slow - default - [effective disable] => effective enable + // - presets + fast + enable + // - (default - fast) - enable => effective disable + // - presets - slow + enable - default - [effective disable] => effective enable + // - presets + fast + // - (default - fast) => effective disable + // - presets - slow - default - [effective disable] => effective enable + // - presets + disable + // - default + disable => effective disable + // - presets - default - [effective disable] => effective enable + // - presets + enable + // - default - enable => effective disable + // - presets + enable - default - [effective disable] => effective enable + // - disable + // - default + disable => effective disable + // - default - [effective disable] => effective enable + // - enable + // - default - enable => effective disable + // - enable - default - [effective disable] => effective enable + // - fast + // - default - fast => effective disable + // - default - [effective disable] => effective enable + // - fast + disable + // - (default - fast) + disable => effective disable + // - default - [effective disable] => effective enable + // - fast + enable + // - (default - fast) - enable => effective disable + // - enable - default - [effective disable] => effective enable + + disabledLinters := defaultLintersDisableFilter(old) + + enabledLinters := defaultLintersEnableFilter(old, disabledLinters) + + enabled := toNames(enabledLinters) + disabled := toNames(disabledLinters) + + return slices.Concat(enabled, unknownLinterNames(old.Enable, allLinters())), + slices.Concat(disabled, unknownLinterNames(old.Disable, allLinters())) +} + +// defaultLintersEnableFilter generates the value of `enable` when using default linters. +func defaultLintersEnableFilter(old one.Linters, effectiveDisabled []LinterInfo) []LinterInfo { + // presets - slow + enable - default - [effective disable] => effective enable + return removeLinters( + filter( + slices.Concat( + filter( + allLinters(), onlyPresets(old), keepFast(old), // presets - slow + ), + allEnabled(old, allLinters()), // + enable + ), + notDefault, // - default + ), + effectiveDisabled, // - [effective disable] + ) +} + +// defaultLintersDisableFilter generates the value of `disable` when using default linters. +func defaultLintersDisableFilter(old one.Linters) []LinterInfo { + // (default - fast) - enable + disable => effective disable + return slices.Concat( + removeLinters( + filter(allLinters(), onlyDefault, keepSlow(old)), // (default - fast) + allEnabled(old, allLinters()), // - enable + ), + allDisabled(old, allLinters()), // + disable + ) +} + +func allLinters() []LinterInfo { + return []LinterInfo{ + { + Name: "asasalint", + Presets: []string{"bugs"}, + Slow: true, + }, + { + Name: "asciicheck", + Presets: []string{"bugs", "style"}, + }, + { + Name: "bidichk", + Presets: []string{"bugs"}, + }, + { + Name: "bodyclose", + Presets: []string{"performance", "bugs"}, + Slow: true, + }, + { + Name: "canonicalheader", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "containedctx", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "contextcheck", + Presets: []string{"bugs"}, + Slow: true, + }, + { + Name: "copyloopvar", + Presets: []string{"style"}, + }, + { + Name: "cyclop", + Presets: []string{"complexity"}, + }, + { + Name: "decorder", + Presets: []string{"style"}, + }, + { + Name: "depguard", + Presets: []string{"style", "import", "module"}, + }, + { + Name: "dogsled", + Presets: []string{"style"}, + }, + { + Name: "dupl", + Presets: []string{"style"}, + }, + { + Name: "dupword", + Presets: []string{"comment"}, + }, + { + Name: "durationcheck", + Presets: []string{"bugs"}, + Slow: true, + }, + { + Name: "errcheck", + Presets: []string{"bugs", "error"}, + Slow: true, + Default: true, + }, + { + Name: "errchkjson", + Presets: []string{"bugs"}, + Slow: true, + }, + { + Name: "errname", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "errorlint", + Presets: []string{"bugs", "error"}, + Slow: true, + }, + { + Name: "exhaustive", + Presets: []string{"bugs"}, + Slow: true, + }, + { + Name: "exhaustruct", + Presets: []string{"style", "test"}, + Slow: true, + }, + { + Name: "exptostd", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "forbidigo", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "forcetypeassert", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "fatcontext", + Presets: []string{"performance"}, + Slow: true, + }, + { + Name: "funlen", + Presets: []string{"complexity"}, + }, + { + Name: "gci", + Presets: []string{"format", "import"}, + }, + { + Name: "ginkgolinter", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "gocheckcompilerdirectives", + Presets: []string{"bugs"}, + }, + { + Name: "gochecknoglobals", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "gochecknoinits", + Presets: []string{"style"}, + }, + { + Name: "gochecksumtype", + Presets: []string{"bugs"}, + Slow: true, + }, + { + Name: "gocognit", + Presets: []string{"complexity"}, + }, + { + Name: "goconst", + Presets: []string{"style"}, + }, + { + Name: "gocritic", + Presets: []string{"style", "metalinter"}, + Slow: true, + }, + { + Name: "gocyclo", + Presets: []string{"complexity"}, + }, + { + Name: "godot", + Presets: []string{"style", "comment"}, + }, + { + Name: "godox", + Presets: []string{"style", "comment"}, + }, + { + Name: "err113", + Presets: []string{"style", "error"}, + Slow: true, + AlternativeNames: []string{"goerr113"}, + }, + { + Name: "gofmt", + Presets: []string{"format"}, + }, + { + Name: "gofumpt", + Presets: []string{"format"}, + }, + { + Name: "goheader", + Presets: []string{"style"}, + }, + { + Name: "goimports", + Presets: []string{"format", "import"}, + }, + { + Name: "mnd", + Presets: []string{"style"}, + AlternativeNames: []string{"gomnd"}, + }, + { + Name: "gomoddirectives", + Presets: []string{"style", "module"}, + }, + { + Name: "gomodguard", + Presets: []string{"style", "import", "module"}, + }, + { + Name: "goprintffuncname", + Presets: []string{"style"}, + }, + { + Name: "gosec", + Presets: []string{"bugs"}, + Slow: true, + AlternativeNames: []string{"gas"}, + }, + { + Name: "gosimple", + Presets: []string{"style"}, + Slow: true, + Default: true, + AlternativeNames: []string{"megacheck"}, + }, + { + Name: "gosmopolitan", + Presets: []string{"bugs"}, + Slow: true, + }, + { + Name: "govet", + Presets: []string{"bugs", "metalinter"}, + Slow: true, + Default: true, + AlternativeNames: []string{"vet", "vetshadow"}, + }, + { + Name: "grouper", + Presets: []string{"style"}, + }, + { + Name: "iface", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "importas", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "inamedparam", + Presets: []string{"style"}, + }, + { + Name: "ineffassign", + Presets: []string{"unused"}, + Default: true, + }, + { + Name: "interfacebloat", + Presets: []string{"style"}, + }, + { + Name: "intrange", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "ireturn", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "lll", + Presets: []string{"style"}, + }, + { + Name: "loggercheck", + Presets: []string{"style", "bugs"}, + Slow: true, + AlternativeNames: []string{"logrlint"}, + }, + { + Name: "maintidx", + Presets: []string{"complexity"}, + }, + { + Name: "makezero", + Presets: []string{"style", "bugs"}, + Slow: true, + }, + { + Name: "mirror", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "misspell", + Presets: []string{"style", "comment"}, + }, + { + Name: "musttag", + Presets: []string{"style", "bugs"}, + Slow: true, + }, + { + Name: "nakedret", + Presets: []string{"style"}, + }, + { + Name: "nestif", + Presets: []string{"complexity"}, + }, + { + Name: "nilerr", + Presets: []string{"bugs"}, + Slow: true, + }, + { + Name: "nilnesserr", + Presets: []string{"bugs"}, + Slow: true, + }, + { + Name: "nilnil", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "nlreturn", + Presets: []string{"style"}, + }, + { + Name: "noctx", + Presets: []string{"performance", "bugs"}, + Slow: true, + }, + { + Name: "nonamedreturns", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "nosprintfhostport", + Presets: []string{"style"}, + }, + { + Name: "paralleltest", + Presets: []string{"style", "test"}, + Slow: true, + }, + { + Name: "perfsprint", + Presets: []string{"performance"}, + Slow: true, + }, + { + Name: "prealloc", + Presets: []string{"performance"}, + }, + { + Name: "predeclared", + Presets: []string{"style"}, + }, + { + Name: "promlinter", + Presets: []string{"style"}, + }, + { + Name: "protogetter", + Presets: []string{"bugs"}, + Slow: true, + }, + { + Name: "reassign", + Presets: []string{"bugs"}, + Slow: true, + }, + { + Name: "recvcheck", + Presets: []string{"bugs"}, + Slow: true, + }, + { + Name: "revive", + Presets: []string{"style", "metalinter"}, + Slow: true, + }, + { + Name: "rowserrcheck", + Presets: []string{"bugs", "sql"}, + Slow: true, + }, + { + Name: "sloglint", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "sqlclosecheck", + Presets: []string{"bugs", "sql"}, + Slow: true, + }, + { + Name: "spancheck", + Presets: []string{"bugs"}, + Slow: true, + }, + { + Name: "staticcheck", + Presets: []string{"bugs", "metalinter"}, + Slow: true, + Default: true, + AlternativeNames: []string{"megacheck"}, + }, + { + Name: "stylecheck", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "tagalign", + Presets: []string{"style"}, + }, + { + Name: "tagliatelle", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "tenv", + Presets: []string{"test"}, + Slow: true, + }, + { + Name: "testableexamples", + Presets: []string{"test"}, + }, + { + Name: "testifylint", + Presets: []string{"test", "bugs"}, + Slow: true, + }, + { + Name: "testpackage", + Presets: []string{"style", "test"}, + }, + { + Name: "thelper", + Presets: []string{"test"}, + Slow: true, + }, + { + Name: "tparallel", + Presets: []string{"style", "test"}, + Slow: true, + }, + { + Name: "unconvert", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "unparam", + Presets: []string{"unused"}, + Slow: true, + }, + { + Name: "unused", + Presets: []string{"unused"}, + Slow: true, + Default: true, + AlternativeNames: []string{"megacheck"}, + }, + { + Name: "usestdlibvars", + Presets: []string{"style"}, + }, + { + Name: "usetesting", + Presets: []string{"test"}, + Slow: true, + }, + { + Name: "varnamelen", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "wastedassign", + Presets: []string{"style"}, + Slow: true, + }, + { + Name: "whitespace", + Presets: []string{"style"}, + }, + { + Name: "wrapcheck", + Presets: []string{"style", "error"}, + Slow: true, + }, + { + Name: "wsl", + Presets: []string{"style"}, + }, + { + Name: "zerologlint", + Presets: []string{"bugs"}, + Slow: true, + }, + { + Name: "nolintlint", + Presets: []string{"style"}, + }, + } +} + +func toNames(linters []LinterInfo) []string { + var results []string + + for _, linter := range linters { + results = append(results, linter.Name) + } + + slices.Sort(results) + + return slices.Compact(results) +} + +func removeLinters(linters, toRemove []LinterInfo) []LinterInfo { + return slices.DeleteFunc(linters, func(info LinterInfo) bool { + return slices.ContainsFunc(toRemove, func(en LinterInfo) bool { + return info.Name == en.Name + }) + }) +} + +func allEnabled(old one.Linters, linters []LinterInfo) []LinterInfo { + var results []LinterInfo + + for _, linter := range linters { + for _, name := range old.Enable { + if linter.isName(name) { + results = append(results, linter) + break + } + } + } + + return results +} + +func allDisabled(old one.Linters, linters []LinterInfo) []LinterInfo { + var results []LinterInfo + + for _, linter := range linters { + for _, name := range old.Disable { + if linter.isName(name) { + results = append(results, linter) + break + } + } + } + + return results +} + +func filter(linters []LinterInfo, fns ...fnFilter) []LinterInfo { + var results []LinterInfo + + for _, linter := range linters { + if mergeFilters(linter, fns) { + results = append(results, linter) + } + } + + return results +} + +func mergeFilters(linter LinterInfo, fns []fnFilter) bool { + for _, fn := range fns { + if !fn(linter) { + return false + } + } + + return true +} + +type fnFilter func(linter LinterInfo) bool + +func onlyPresets(old one.Linters) fnFilter { + return func(linter LinterInfo) bool { + return linter.hasPresets(old.Presets) + } +} + +func onlyDefault(linter LinterInfo) bool { + return linter.Default +} + +func notDefault(linter LinterInfo) bool { + return !linter.Default +} + +func keepFast(old one.Linters) fnFilter { + return func(linter LinterInfo) bool { + if !ptr.Deref(old.Fast) { + return true + } + + return !linter.Slow + } +} + +func keepSlow(old one.Linters) fnFilter { + return func(linter LinterInfo) bool { + if !ptr.Deref(old.Fast) { + return false + } + + return linter.Slow + } +} + +func unknownLinterNames(names []string, linters []LinterInfo) []string { + deprecatedLinters := []string{ + "deadcode", + "execinquery", + "exhaustivestruct", + "exportloopref", + "golint", + "ifshort", + "interfacer", + "maligned", + "nosnakecase", + "scopelint", + "structcheck", + "tenv", + "varcheck", + } + + var results []string + + for _, name := range names { + found := slices.ContainsFunc(linters, func(l LinterInfo) bool { + return l.isName(name) + }) + + if !found { + if slices.Contains(deprecatedLinters, name) { + continue + } + + results = append(results, name) + } + } + + slices.Sort(results) + + return slices.Compact(results) +} + +func convertStaticcheckLinterNames(names []string) []string { + var results []string + + for _, name := range names { + if slices.Contains([]string{"stylecheck", "gosimple"}, name) { + results = append(results, "staticcheck") + continue + } + + results = append(results, name) + } + + slices.Sort(results) + + return slices.Compact(results) +} + +func onlyLinterNames(names []string) []string { + formatters := []string{"gci", "gofmt", "gofumpt", "goimports"} + + var results []string + + for _, name := range names { + if !slices.Contains(formatters, name) { + results = append(results, name) + } + } + + return results +} + +func onlyFormatterNames(names []string) []string { + formatters := []string{"gci", "gofmt", "gofumpt", "goimports"} + + var results []string + + for _, name := range names { + if slices.Contains(formatters, name) { + results = append(results, name) + } + } + + return results +} + +func convertAlternativeNames(names []string) []string { + altNames := map[string]string{ + "gas": "gosec", + "goerr113": "err113", + "gomnd": "mnd", + "logrlint": "loggercheck", + "megacheck": "staticcheck", + "vet": "govet", + "vetshadow": "govet", + } + + var results []string + + for _, name := range names { + if n, ok := altNames[name]; ok { + results = append(results, n) + continue + } + + results = append(results, name) + } + + slices.Sort(results) + + return slices.Compact(results) +} diff --git a/pkg/commands/internal/migrate/migrate_linter_names_test.go b/pkg/commands/internal/migrate/migrate_linter_names_test.go new file mode 100644 index 000000000000..e7b62f5e50c8 --- /dev/null +++ b/pkg/commands/internal/migrate/migrate_linter_names_test.go @@ -0,0 +1,462 @@ +package migrate + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" +) + +func Test_disableAllFilter(t *testing.T) { + testCases := []struct { + desc string + old one.Linters + expected []string + }{ + { + desc: "no presets, fast", + old: one.Linters{ + DisableAll: ptr.Pointer(true), + Enable: nil, + Fast: ptr.Pointer(false), + Presets: nil, + }, + expected: nil, + }, + { + desc: "no presets, fast", + old: one.Linters{ + DisableAll: ptr.Pointer(true), + Enable: nil, + Fast: ptr.Pointer(true), + Presets: nil, + }, + expected: nil, + }, + { + desc: "no presets, enable", + old: one.Linters{ + DisableAll: ptr.Pointer(true), + Enable: []string{"lll", "misspell", "govet"}, + Fast: ptr.Pointer(false), + Presets: nil, + }, + expected: []string{"govet", "lll", "misspell"}, + }, + { + desc: "fast, no presets, enable", + old: one.Linters{ + DisableAll: ptr.Pointer(true), + Enable: []string{"lll", "misspell", "govet"}, + Fast: ptr.Pointer(true), + Presets: nil, + }, + expected: []string{"govet", "lll", "misspell"}, + }, + { + desc: "presets, enable", + old: one.Linters{ + DisableAll: ptr.Pointer(true), + Enable: []string{"lll", "misspell", "govet"}, + Fast: ptr.Pointer(false), + Presets: []string{"comment", "error", "format"}, + }, + expected: []string{ + "dupword", + "err113", + "errcheck", + "errorlint", + "gci", + "godot", + "godox", + "gofmt", + "gofumpt", + "goimports", + "govet", + "lll", + "misspell", + "wrapcheck", + }, + }, + { + desc: "presets, enable, fast", + old: one.Linters{ + DisableAll: ptr.Pointer(true), + Enable: []string{"lll", "misspell", "govet"}, + Fast: ptr.Pointer(true), + Presets: []string{"comment", "error", "format"}, + }, + expected: []string{ + "dupword", + "gci", + "godot", + "godox", + "gofmt", + "gofumpt", + "goimports", + "govet", + "lll", + "misspell", + }, + }, + } + + for _, test := range testCases { + t.Run(test.desc, func(t *testing.T) { + t.Parallel() + + results := disableAllFilter(test.old) + + assert.Equal(t, test.expected, results) + }) + } +} + +func Test_enableAllFilter(t *testing.T) { + testCases := []struct { + desc string + old one.Linters + expected []string + }{ + { + desc: "no options", + old: one.Linters{ + EnableAll: ptr.Pointer(true), + Disable: nil, + Fast: ptr.Pointer(false), + Presets: nil, + }, + expected: nil, + }, + { + desc: "presets (ignored)", + old: one.Linters{ + EnableAll: ptr.Pointer(true), + Disable: nil, + Fast: ptr.Pointer(false), + Presets: []string{"comment", "error", "format"}, + }, + expected: nil, + }, + { + desc: "fast", + old: one.Linters{ + EnableAll: ptr.Pointer(true), + Disable: nil, + Fast: ptr.Pointer(true), + Presets: nil, + }, + expected: []string{"asasalint", "bodyclose", "canonicalheader", "containedctx", "contextcheck", "durationcheck", "err113", "errcheck", "errchkjson", "errname", "errorlint", "exhaustive", "exhaustruct", "exptostd", "fatcontext", "forbidigo", "forcetypeassert", "ginkgolinter", "gochecknoglobals", "gochecksumtype", "gocritic", "gosec", "gosimple", "gosmopolitan", "govet", "iface", "importas", "intrange", "ireturn", "loggercheck", "makezero", "mirror", "musttag", "nilerr", "nilnesserr", "nilnil", "noctx", "nonamedreturns", "paralleltest", "perfsprint", "protogetter", "reassign", "recvcheck", "revive", "rowserrcheck", "sloglint", "spancheck", "sqlclosecheck", "staticcheck", "stylecheck", "tagliatelle", "tenv", "testifylint", "thelper", "tparallel", "unconvert", "unparam", "unused", "usetesting", "varnamelen", "wastedassign", "wrapcheck", "zerologlint"}, + }, + { + desc: "disable", + old: one.Linters{ + EnableAll: ptr.Pointer(true), + Disable: []string{"lll", "misspell", "govet"}, + Fast: ptr.Pointer(false), + Presets: nil, + }, + expected: []string{"govet", "lll", "misspell"}, + }, + { + desc: "disable, fast", + old: one.Linters{ + EnableAll: ptr.Pointer(true), + Disable: []string{"lll", "misspell", "govet"}, + Fast: ptr.Pointer(true), + Presets: nil, + }, + expected: []string{"asasalint", "bodyclose", "canonicalheader", "containedctx", "contextcheck", "durationcheck", "err113", "errcheck", "errchkjson", "errname", "errorlint", "exhaustive", "exhaustruct", "exptostd", "fatcontext", "forbidigo", "forcetypeassert", "ginkgolinter", "gochecknoglobals", "gochecksumtype", "gocritic", "gosec", "gosimple", "gosmopolitan", "govet", "iface", "importas", "intrange", "ireturn", "lll", "loggercheck", "makezero", "mirror", "misspell", "musttag", "nilerr", "nilnesserr", "nilnil", "noctx", "nonamedreturns", "paralleltest", "perfsprint", "protogetter", "reassign", "recvcheck", "revive", "rowserrcheck", "sloglint", "spancheck", "sqlclosecheck", "staticcheck", "stylecheck", "tagliatelle", "tenv", "testifylint", "thelper", "tparallel", "unconvert", "unparam", "unused", "usetesting", "varnamelen", "wastedassign", "wrapcheck", "zerologlint"}, + }, + } + + for _, test := range testCases { + t.Run(test.desc, func(t *testing.T) { + t.Parallel() + + results := enableAllFilter(test.old) + + assert.Equal(t, test.expected, results) + }) + } +} + +func Test_defaultLintersDisableFilter(t *testing.T) { + testCases := []struct { + desc string + old one.Linters + expected []string + }{ + { + desc: "no options", + old: one.Linters{ + Enable: nil, + Disable: nil, + Fast: ptr.Pointer(false), + Presets: nil, + }, + expected: nil, + }, + { + desc: "presets (ignored)", + old: one.Linters{ + Enable: nil, + Disable: nil, + Fast: ptr.Pointer(false), + Presets: []string{"comment", "error", "format"}, + }, + expected: nil, + }, + { + desc: "fast", + old: one.Linters{ + Enable: nil, + Disable: nil, + Fast: ptr.Pointer(true), + Presets: nil, + }, + expected: []string{"errcheck", "gosimple", "govet", "staticcheck", "unused"}, + }, + { + desc: "enable", + old: one.Linters{ + Enable: []string{"lll", "misspell", "govet"}, + Disable: nil, + Fast: ptr.Pointer(false), + Presets: nil, + }, + expected: nil, + }, + { + desc: "disable", + old: one.Linters{ + Enable: nil, + Disable: []string{"lll", "misspell", "govet"}, + Fast: ptr.Pointer(false), + Presets: nil, + }, + expected: []string{"govet", "lll", "misspell"}, + }, + { + desc: "disable, fast", + old: one.Linters{ + Enable: nil, + Disable: []string{"lll", "misspell", "govet"}, + Fast: ptr.Pointer(true), + Presets: nil, + }, + expected: []string{"errcheck", "gosimple", "govet", "lll", "misspell", "staticcheck", "unused"}, + }, + { + desc: "enable, disable", + old: one.Linters{ + Enable: []string{"grouper", "importas", "errcheck"}, + Disable: []string{"lll", "misspell", "govet"}, + Fast: ptr.Pointer(false), + Presets: nil, + }, + expected: []string{"govet", "lll", "misspell"}, + }, + { + desc: "enable", + old: one.Linters{ + Enable: []string{"grouper", "importas", "errcheck"}, + Disable: nil, + Fast: ptr.Pointer(false), + Presets: nil, + }, + expected: nil, + }, + } + + for _, test := range testCases { + t.Run(test.desc, func(t *testing.T) { + t.Parallel() + + results := toNames(defaultLintersDisableFilter(test.old)) + + assert.Equal(t, test.expected, results) + }) + } +} + +func Test_defaultLintersEnableFilter(t *testing.T) { + testCases := []struct { + desc string + + old one.Linters + expected []string + }{ + { + desc: "no options", + old: one.Linters{ + Enable: nil, + Disable: nil, + Fast: ptr.Pointer(false), + Presets: nil, + }, + expected: nil, + }, + { + desc: "enable", + old: one.Linters{ + Enable: []string{"grouper", "importas", "errcheck"}, + Disable: nil, + Fast: ptr.Pointer(false), + Presets: nil, + }, + expected: []string{"grouper", "importas"}, + }, + { + desc: "enable, disable", + old: one.Linters{ + Enable: []string{"grouper", "importas", "errcheck"}, + Disable: []string{"lll", "misspell", "govet"}, + Fast: ptr.Pointer(false), + Presets: nil, + }, + expected: []string{"grouper", "importas"}, + }, + { + desc: "disable", + old: one.Linters{ + Enable: nil, + Disable: []string{"lll", "misspell", "govet"}, + Fast: ptr.Pointer(false), + Presets: nil, + }, + expected: nil, + }, + { + desc: "presets", + old: one.Linters{ + Enable: nil, + Disable: nil, + Fast: ptr.Pointer(false), + Presets: []string{"comment", "error", "format"}, + }, + expected: []string{"dupword", "err113", "errorlint", "gci", "godot", "godox", "gofmt", "gofumpt", "goimports", "misspell", "wrapcheck"}, + }, + { + desc: "presets, fast", + old: one.Linters{ + Enable: nil, + Disable: nil, + Fast: ptr.Pointer(true), + Presets: []string{"comment", "error", "format"}, + }, + expected: []string{"dupword", "gci", "godot", "godox", "gofmt", "gofumpt", "goimports", "misspell"}, + }, + } + + // presets - slow + enable - default - [effective disable] => effective enable + for _, test := range testCases { + t.Run(test.desc, func(t *testing.T) { + t.Parallel() + + results := toNames(defaultLintersEnableFilter(test.old, defaultLintersDisableFilter(test.old))) + + assert.Equal(t, test.expected, results) + }) + } +} + +func Test_convertStaticcheckLinterNames(t *testing.T) { + testCases := []struct { + desc string + names []string + expected []string + }{ + { + desc: "empty", + names: nil, + expected: nil, + }, + { + desc: "no staticcheck linters", + names: []string{"lll", "misspell", "govet"}, + expected: []string{"govet", "lll", "misspell"}, + }, + { + desc: "stylecheck", + names: []string{"lll", "misspell", "govet", "stylecheck"}, + expected: []string{"govet", "lll", "misspell", "staticcheck"}, + }, + { + desc: "gosimple", + names: []string{"lll", "misspell", "govet", "gosimple"}, + expected: []string{"govet", "lll", "misspell", "staticcheck"}, + }, + { + desc: "staticcheck", + names: []string{"lll", "misspell", "govet", "staticcheck"}, + expected: []string{"govet", "lll", "misspell", "staticcheck"}, + }, + { + desc: "staticcheck, stylecheck, gosimple", + names: []string{"lll", "misspell", "govet", "staticcheck", "stylecheck", "gosimple"}, + expected: []string{"govet", "lll", "misspell", "staticcheck"}, + }, + } + + for _, test := range testCases { + t.Run(test.desc, func(t *testing.T) { + t.Parallel() + + results := convertStaticcheckLinterNames(test.names) + + assert.Equal(t, test.expected, results) + }) + } +} + +func Test_unknownLinterNames(t *testing.T) { + testCases := []struct { + desc string + names []string + expected []string + }{ + { + desc: "empty", + names: nil, + expected: nil, + }, + { + desc: "deprecated", + names: []string{"golint", "structcheck", "varcheck"}, + expected: nil, + }, + { + desc: "deprecated and unknown", + names: []string{"golint", "structcheck", "varcheck", "a", "b"}, + expected: []string{"a", "b"}, + }, + { + desc: "deprecated and known", + names: []string{"golint", "structcheck", "varcheck", "gosec", "gofmt"}, + expected: nil, + }, + { + desc: "only unknown", + names: []string{"a", "b", "c"}, + expected: []string{"a", "b", "c"}, + }, + { + desc: "unknown and known", + names: []string{"a", "gosec", "gofmt"}, + expected: []string{"a"}, + }, + } + + for _, test := range testCases { + t.Run(test.desc, func(t *testing.T) { + t.Parallel() + + names := unknownLinterNames(test.names, allLinters()) + + assert.Equal(t, test.expected, names) + }) + } +} diff --git a/pkg/commands/internal/migrate/migrate_linters.go b/pkg/commands/internal/migrate/migrate_linters.go new file mode 100644 index 000000000000..462a3338d97d --- /dev/null +++ b/pkg/commands/internal/migrate/migrate_linters.go @@ -0,0 +1,31 @@ +package migrate + +import ( + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" +) + +func toLinters(old *one.Config) two.Linters { + enable, disable := ProcessEffectiveLinters(old.Linters) + + return two.Linters{ + Default: getDefaultName(old.Linters), + Enable: onlyLinterNames(convertStaticcheckLinterNames(enable)), + Disable: onlyLinterNames(convertStaticcheckLinterNames(disable)), + FastOnly: nil, + Settings: toLinterSettings(old.LintersSettings), + Exclusions: toExclusions(old), + } +} + +func getDefaultName(old one.Linters) *string { + switch { + case ptr.Deref(old.DisableAll): + return ptr.Pointer("none") + case ptr.Deref(old.EnableAll): + return ptr.Pointer("all") + default: + return nil // standard is the default + } +} diff --git a/pkg/commands/internal/migrate/migrate_linters_exclusions.go b/pkg/commands/internal/migrate/migrate_linters_exclusions.go new file mode 100644 index 000000000000..f61e5506eb4b --- /dev/null +++ b/pkg/commands/internal/migrate/migrate_linters_exclusions.go @@ -0,0 +1,141 @@ +package migrate + +import ( + "slices" + + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" + "github.com/golangci/golangci-lint/pkg/config" + "github.com/golangci/golangci-lint/pkg/result/processors" +) + +func toExclusions(old *one.Config) two.LinterExclusions { + return two.LinterExclusions{ + Generated: toExclusionGenerated(old.Issues.ExcludeGenerated), + Presets: toPresets(old.Issues), + Rules: toExclusionRules(old), + Paths: toExclusionPaths(old.Issues), + } +} + +func toExclusionGenerated(excludeGenerated *string) *string { + if excludeGenerated == nil || ptr.Deref(excludeGenerated) == "" { + return ptr.Pointer("lax") + } + + if ptr.Deref(excludeGenerated) == "strict" { + return nil + } + + return excludeGenerated +} + +func toPresets(old one.Issues) []string { + if !ptr.Deref(old.UseDefaultExcludes) { + return nil + } + + if len(old.IncludeDefaultExcludes) != 0 { + var pp []string + for p, rules := range processors.LinterExclusionPresets { + found := slices.ContainsFunc(rules, func(rule config.ExcludeRule) bool { + return slices.Contains(old.IncludeDefaultExcludes, rule.InternalReference) + }) + if !found { + pp = append(pp, p) + } + } + + slices.Sort(pp) + + return pp + } + + return []string{ + config.ExclusionPresetComments, + config.ExclusionPresetCommonFalsePositives, + config.ExclusionPresetLegacy, + config.ExclusionPresetStdErrorHandling, + } +} + +func toExclusionRules(old *one.Config) []two.ExcludeRule { + var results []two.ExcludeRule + + for _, rule := range old.Issues.ExcludeRules { + results = append(results, two.ExcludeRule{ + BaseRule: two.BaseRule{ + Linters: onlyLinterNames(convertStaticcheckLinterNames(convertAlternativeNames(rule.Linters))), + Path: rule.Path, + PathExcept: rule.PathExcept, + Text: addPrefix(old.Issues, rule.Text), + Source: addPrefix(old.Issues, rule.Source), + }, + }) + } + + for _, pattern := range old.Issues.ExcludePatterns { + results = append(results, two.ExcludeRule{ + BaseRule: two.BaseRule{ + Path: ptr.Pointer(`(.+)\.go$`), + Text: addPrefix(old.Issues, ptr.Pointer(pattern)), + }, + }) + } + + return slices.Concat(results, linterTestExclusions(old.LintersSettings)) +} + +func addPrefix(old one.Issues, s *string) *string { + if s == nil || ptr.Deref(s) == "" { + return s + } + + var prefix string + if ptr.Deref(old.ExcludeCaseSensitive) { + prefix = "(?i)" + } + + return ptr.Pointer(prefix + ptr.Deref(s)) +} + +func linterTestExclusions(old one.LintersSettings) []two.ExcludeRule { + var results []two.ExcludeRule + + var excludedTestLinters []string + + if ptr.Deref(old.Asasalint.IgnoreTest) { + excludedTestLinters = append(excludedTestLinters, "asasalint") + } + if ptr.Deref(old.Cyclop.SkipTests) { + excludedTestLinters = append(excludedTestLinters, "cyclop") + } + if ptr.Deref(old.Goconst.IgnoreTests) { + excludedTestLinters = append(excludedTestLinters, "goconst") + } + if ptr.Deref(old.Gosmopolitan.IgnoreTests) { + excludedTestLinters = append(excludedTestLinters, "gosmopolitan") + } + + if len(excludedTestLinters) > 0 { + results = append(results, two.ExcludeRule{ + BaseRule: two.BaseRule{ + Linters: excludedTestLinters, + Path: ptr.Pointer(`(.+)_test\.go`), + }, + }) + } + + return results +} + +func toExclusionPaths(old one.Issues) []string { + results := slices.Concat(old.ExcludeFiles, old.ExcludeDirs) + + if old.UseDefaultExcludeDirs == nil || ptr.Deref(old.UseDefaultExcludeDirs) { + results = append(results, "third_party$", "builtin$", "examples$") + } + + return results +} diff --git a/pkg/commands/internal/migrate/migrate_linters_settings.go b/pkg/commands/internal/migrate/migrate_linters_settings.go new file mode 100644 index 000000000000..a34206d6db10 --- /dev/null +++ b/pkg/commands/internal/migrate/migrate_linters_settings.go @@ -0,0 +1,1004 @@ +package migrate + +import ( + "slices" + "strings" + + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" +) + +func toLinterSettings(old one.LintersSettings) two.LintersSettings { + return two.LintersSettings{ + Asasalint: toAsasalintSettings(old.Asasalint), + BiDiChk: toBiDiChkSettings(old.BiDiChk), + CopyLoopVar: toCopyLoopVarSettings(old.CopyLoopVar), + Cyclop: toCyclopSettings(old.Cyclop), + Decorder: toDecorderSettings(old.Decorder), + Depguard: toDepGuardSettings(old.Depguard), + Dogsled: toDogsledSettings(old.Dogsled), + Dupl: toDuplSettings(old.Dupl), + DupWord: toDupWordSettings(old.DupWord), + Errcheck: toErrcheckSettings(old.Errcheck), + ErrChkJSON: toErrChkJSONSettings(old.ErrChkJSON), + ErrorLint: toErrorLintSettings(old.ErrorLint), + Exhaustive: toExhaustiveSettings(old.Exhaustive), + Exhaustruct: toExhaustructSettings(old.Exhaustruct), + Fatcontext: toFatcontextSettings(old.Fatcontext), + Forbidigo: toForbidigoSettings(old.Forbidigo), + Funlen: toFunlenSettings(old.Funlen), + GinkgoLinter: toGinkgoLinterSettings(old.GinkgoLinter), + Gocognit: toGocognitSettings(old.Gocognit), + GoChecksumType: toGoChecksumTypeSettings(old.GoChecksumType), + Goconst: toGoConstSettings(old.Goconst), + Gocritic: toGoCriticSettings(old.Gocritic), + Gocyclo: toGoCycloSettings(old.Gocyclo), + Godot: toGodotSettings(old.Godot), + Godox: toGodoxSettings(old.Godox), + Goheader: toGoHeaderSettings(old.Goheader), + GoModDirectives: toGoModDirectivesSettings(old.GoModDirectives), + Gomodguard: toGoModGuardSettings(old.Gomodguard), + Gosec: toGoSecSettings(old.Gosec), + Gosmopolitan: toGosmopolitanSettings(old.Gosmopolitan), + Govet: toGovetSettings(old.Govet), + Grouper: toGrouperSettings(old.Grouper), + Iface: toIfaceSettings(old.Iface), + ImportAs: toImportAsSettings(old.ImportAs), + Inamedparam: toINamedParamSettings(old.Inamedparam), + InterfaceBloat: toInterfaceBloatSettings(old.InterfaceBloat), + Ireturn: toIreturnSettings(old.Ireturn), + Lll: toLllSettings(old.Lll), + LoggerCheck: toLoggerCheckSettings(old.LoggerCheck), + MaintIdx: toMaintIdxSettings(old.MaintIdx), + Makezero: toMakezeroSettings(old.Makezero), + Misspell: toMisspellSettings(old.Misspell), + Mnd: toMndSettings(old.Mnd), + MustTag: toMustTagSettings(old.MustTag), + Nakedret: toNakedretSettings(old.Nakedret), + Nestif: toNestifSettings(old.Nestif), + NilNil: toNilNilSettings(old.NilNil), + Nlreturn: toNlreturnSettings(old.Nlreturn), + NoLintLint: toNoLintLintSettings(old.NoLintLint), + NoNamedReturns: toNoNamedReturnsSettings(old.NoNamedReturns), + ParallelTest: toParallelTestSettings(old.ParallelTest), + PerfSprint: toPerfSprintSettings(old.PerfSprint), + Prealloc: toPreallocSettings(old.Prealloc), + Predeclared: toPredeclaredSettings(old.Predeclared), + Promlinter: toPromlinterSettings(old.Promlinter), + ProtoGetter: toProtoGetterSettings(old.ProtoGetter), + Reassign: toReassignSettings(old.Reassign), + Recvcheck: toRecvcheckSettings(old.Recvcheck), + Revive: toReviveSettings(old.Revive), + RowsErrCheck: toRowsErrCheckSettings(old.RowsErrCheck), + SlogLint: toSlogLintSettings(old.SlogLint), + Spancheck: toSpancheckSettings(old.Spancheck), + Staticcheck: toStaticCheckSettings(old), + TagAlign: toTagAlignSettings(old.TagAlign), + Tagliatelle: toTagliatelleSettings(old.Tagliatelle), + Tenv: toTenvSettings(old.Tenv), + Testifylint: toTestifylintSettings(old.Testifylint), + Testpackage: toTestpackageSettings(old.Testpackage), + Thelper: toThelperSettings(old.Thelper), + Unconvert: toUnconvertSettings(old.Unconvert), + Unparam: toUnparamSettings(old.Unparam), + Unused: toUnusedSettings(old.Unused), + UseStdlibVars: toUseStdlibVarsSettings(old.UseStdlibVars), + UseTesting: toUseTestingSettings(old.UseTesting), + Varnamelen: toVarnamelenSettings(old.Varnamelen), + Whitespace: toWhitespaceSettings(old.Whitespace), + Wrapcheck: toWrapcheckSettings(old.Wrapcheck), + WSL: toWSLSettings(old.WSL), + Custom: toCustom(old.Custom), + } +} + +func toAsasalintSettings(old one.AsasalintSettings) two.AsasalintSettings { + return two.AsasalintSettings{ + Exclude: old.Exclude, + UseBuiltinExclusions: old.UseBuiltinExclusions, + } +} + +func toBiDiChkSettings(old one.BiDiChkSettings) two.BiDiChkSettings { + // The values are true be default, but the default are defined after the configuration loading. + // So the serialization doesn't have good results, but it's complex to do better. + return two.BiDiChkSettings{ + LeftToRightEmbedding: old.LeftToRightEmbedding, + RightToLeftEmbedding: old.RightToLeftEmbedding, + PopDirectionalFormatting: old.PopDirectionalFormatting, + LeftToRightOverride: old.LeftToRightOverride, + RightToLeftOverride: old.RightToLeftOverride, + LeftToRightIsolate: old.LeftToRightIsolate, + RightToLeftIsolate: old.RightToLeftIsolate, + FirstStrongIsolate: old.FirstStrongIsolate, + PopDirectionalIsolate: old.PopDirectionalIsolate, + } +} + +func toCopyLoopVarSettings(old one.CopyLoopVarSettings) two.CopyLoopVarSettings { + return two.CopyLoopVarSettings{ + CheckAlias: old.CheckAlias, + } +} + +func toCyclopSettings(old one.Cyclop) two.CyclopSettings { + return two.CyclopSettings{ + MaxComplexity: old.MaxComplexity, + PackageAverage: old.PackageAverage, + } +} + +func toDecorderSettings(old one.DecorderSettings) two.DecorderSettings { + return two.DecorderSettings{ + DecOrder: old.DecOrder, + IgnoreUnderscoreVars: old.IgnoreUnderscoreVars, + DisableDecNumCheck: old.DisableDecNumCheck, + DisableTypeDecNumCheck: old.DisableTypeDecNumCheck, + DisableConstDecNumCheck: old.DisableConstDecNumCheck, + DisableVarDecNumCheck: old.DisableVarDecNumCheck, + DisableDecOrderCheck: old.DisableDecOrderCheck, + DisableInitFuncFirstCheck: old.DisableInitFuncFirstCheck, + } +} + +func toDepGuardSettings(old one.DepGuardSettings) two.DepGuardSettings { + settings := two.DepGuardSettings{} + + for k, r := range old.Rules { + if settings.Rules == nil { + settings.Rules = make(map[string]*two.DepGuardList) + } + + list := &two.DepGuardList{ + ListMode: r.ListMode, + Files: r.Files, + Allow: r.Allow, + } + + for _, deny := range r.Deny { + list.Deny = append(list.Deny, two.DepGuardDeny{ + Pkg: deny.Pkg, + Desc: deny.Desc, + }) + } + + settings.Rules[k] = list + } + + return settings +} + +func toDogsledSettings(old one.DogsledSettings) two.DogsledSettings { + return two.DogsledSettings{ + MaxBlankIdentifiers: old.MaxBlankIdentifiers, + } +} + +func toDuplSettings(old one.DuplSettings) two.DuplSettings { + return two.DuplSettings{ + Threshold: old.Threshold, + } +} + +func toDupWordSettings(old one.DupWordSettings) two.DupWordSettings { + return two.DupWordSettings{ + Keywords: old.Keywords, + Ignore: old.Ignore, + } +} + +func toErrcheckSettings(old one.ErrcheckSettings) two.ErrcheckSettings { + return two.ErrcheckSettings{ + DisableDefaultExclusions: old.DisableDefaultExclusions, + CheckTypeAssertions: old.CheckTypeAssertions, + CheckAssignToBlank: old.CheckAssignToBlank, + ExcludeFunctions: old.ExcludeFunctions, + } +} + +func toErrChkJSONSettings(old one.ErrChkJSONSettings) two.ErrChkJSONSettings { + return two.ErrChkJSONSettings{ + CheckErrorFreeEncoding: old.CheckErrorFreeEncoding, + ReportNoExported: old.ReportNoExported, + } +} + +func toErrorLintSettings(old one.ErrorLintSettings) two.ErrorLintSettings { + settings := two.ErrorLintSettings{ + Errorf: old.Errorf, + ErrorfMulti: old.ErrorfMulti, + Asserts: old.Asserts, + Comparison: old.Comparison, + } + + for _, allowedError := range old.AllowedErrors { + settings.AllowedErrors = append(settings.AllowedErrors, two.ErrorLintAllowPair{ + Err: allowedError.Err, + Fun: allowedError.Fun, + }) + } + for _, allowedError := range old.AllowedErrorsWildcard { + settings.AllowedErrorsWildcard = append(settings.AllowedErrorsWildcard, two.ErrorLintAllowPair{ + Err: allowedError.Err, + Fun: allowedError.Fun, + }) + } + + return settings +} + +func toExhaustiveSettings(old one.ExhaustiveSettings) two.ExhaustiveSettings { + return two.ExhaustiveSettings{ + Check: old.Check, + DefaultSignifiesExhaustive: old.DefaultSignifiesExhaustive, + IgnoreEnumMembers: old.IgnoreEnumMembers, + IgnoreEnumTypes: old.IgnoreEnumTypes, + PackageScopeOnly: old.PackageScopeOnly, + ExplicitExhaustiveMap: old.ExplicitExhaustiveMap, + ExplicitExhaustiveSwitch: old.ExplicitExhaustiveSwitch, + DefaultCaseRequired: old.DefaultCaseRequired, + } +} + +func toExhaustructSettings(old one.ExhaustructSettings) two.ExhaustructSettings { + return two.ExhaustructSettings{ + Include: old.Include, + Exclude: old.Exclude, + } +} + +func toFatcontextSettings(old one.FatcontextSettings) two.FatcontextSettings { + return two.FatcontextSettings{ + CheckStructPointers: old.CheckStructPointers, + } +} + +func toForbidigoSettings(old one.ForbidigoSettings) two.ForbidigoSettings { + settings := two.ForbidigoSettings{ + ExcludeGodocExamples: old.ExcludeGodocExamples, + AnalyzeTypes: old.AnalyzeTypes, + } + + for _, pattern := range old.Forbid { + if pattern.Pattern == nil { + buffer, err := pattern.MarshalString() + if err != nil { + // impossible case + panic(err) + } + + settings.Forbid = append(settings.Forbid, two.ForbidigoPattern{ + Pattern: ptr.Pointer(string(buffer)), + }) + + continue + } + + settings.Forbid = append(settings.Forbid, two.ForbidigoPattern{ + Pattern: pattern.Pattern, + Package: pattern.Package, + Msg: pattern.Msg, + }) + } + + return settings +} + +func toFunlenSettings(old one.FunlenSettings) two.FunlenSettings { + return two.FunlenSettings{ + Lines: old.Lines, + Statements: old.Statements, + IgnoreComments: old.IgnoreComments, + } +} + +func toGinkgoLinterSettings(old one.GinkgoLinterSettings) two.GinkgoLinterSettings { + return two.GinkgoLinterSettings{ + SuppressLenAssertion: old.SuppressLenAssertion, + SuppressNilAssertion: old.SuppressNilAssertion, + SuppressErrAssertion: old.SuppressErrAssertion, + SuppressCompareAssertion: old.SuppressCompareAssertion, + SuppressAsyncAssertion: old.SuppressAsyncAssertion, + SuppressTypeCompareWarning: old.SuppressTypeCompareWarning, + ForbidFocusContainer: old.ForbidFocusContainer, + AllowHaveLenZero: old.AllowHaveLenZero, + ForceExpectTo: old.ForceExpectTo, + ValidateAsyncIntervals: old.ValidateAsyncIntervals, + ForbidSpecPollution: old.ForbidSpecPollution, + ForceSucceedForFuncs: old.ForceSucceedForFuncs, + } +} + +func toGocognitSettings(old one.GocognitSettings) two.GocognitSettings { + return two.GocognitSettings{ + MinComplexity: old.MinComplexity, + } +} + +func toGoChecksumTypeSettings(old one.GoChecksumTypeSettings) two.GoChecksumTypeSettings { + return two.GoChecksumTypeSettings{ + DefaultSignifiesExhaustive: old.DefaultSignifiesExhaustive, + IncludeSharedInterfaces: old.IncludeSharedInterfaces, + } +} + +func toGoConstSettings(old one.GoConstSettings) two.GoConstSettings { + return two.GoConstSettings{ + IgnoreStrings: old.IgnoreStrings, + MatchWithConstants: old.MatchWithConstants, + MinStringLen: old.MinStringLen, + MinOccurrencesCount: old.MinOccurrencesCount, + ParseNumbers: old.ParseNumbers, + NumberMin: old.NumberMin, + NumberMax: old.NumberMax, + IgnoreCalls: old.IgnoreCalls, + } +} + +func toGoCriticSettings(old one.GoCriticSettings) two.GoCriticSettings { + settings := two.GoCriticSettings{ + Go: old.Go, + DisableAll: old.DisableAll, + EnabledChecks: old.EnabledChecks, + EnableAll: old.EnableAll, + DisabledChecks: old.DisabledChecks, + EnabledTags: old.EnabledTags, + DisabledTags: old.DisabledTags, + } + + for k, checkSettings := range settings.SettingsPerCheck { + if settings.SettingsPerCheck == nil { + settings.SettingsPerCheck = make(map[string]two.GoCriticCheckSettings) + } + + settings.SettingsPerCheck[k] = checkSettings + } + + return settings +} + +func toGoCycloSettings(old one.GoCycloSettings) two.GoCycloSettings { + return two.GoCycloSettings{ + MinComplexity: old.MinComplexity, + } +} + +func toGodotSettings(old one.GodotSettings) two.GodotSettings { + return two.GodotSettings{ + Scope: old.Scope, + Exclude: old.Exclude, + Capital: old.Capital, + Period: old.Period, + } +} + +func toGodoxSettings(old one.GodoxSettings) two.GodoxSettings { + return two.GodoxSettings{ + Keywords: old.Keywords, + } +} + +func toGoHeaderSettings(old one.GoHeaderSettings) two.GoHeaderSettings { + return two.GoHeaderSettings{ + Values: old.Values, + Template: old.Template, + TemplatePath: old.TemplatePath, + } +} + +func toGoModDirectivesSettings(old one.GoModDirectivesSettings) two.GoModDirectivesSettings { + return two.GoModDirectivesSettings{ + ReplaceAllowList: old.ReplaceAllowList, + ReplaceLocal: old.ReplaceLocal, + ExcludeForbidden: old.ExcludeForbidden, + RetractAllowNoExplanation: old.RetractAllowNoExplanation, + ToolchainForbidden: old.ToolchainForbidden, + ToolchainPattern: old.ToolchainPattern, + ToolForbidden: old.ToolForbidden, + GoDebugForbidden: old.GoDebugForbidden, + GoVersionPattern: old.GoVersionPattern, + } +} + +func toGoModGuardSettings(old one.GoModGuardSettings) two.GoModGuardSettings { + blocked := two.GoModGuardBlocked{ + LocalReplaceDirectives: old.Blocked.LocalReplaceDirectives, + } + + for _, version := range old.Blocked.Modules { + data := map[string]two.GoModGuardModule{} + + for k, v := range version { + data[k] = two.GoModGuardModule{ + Recommendations: v.Recommendations, + Reason: v.Reason, + } + } + + blocked.Modules = append(blocked.Modules, data) + } + + for _, version := range old.Blocked.Versions { + data := map[string]two.GoModGuardVersion{} + + for k, v := range version { + data[k] = two.GoModGuardVersion{ + Version: v.Version, + Reason: v.Reason, + } + } + + blocked.Versions = append(blocked.Versions, data) + } + + return two.GoModGuardSettings{ + Allowed: two.GoModGuardAllowed{ + Modules: old.Allowed.Modules, + Domains: old.Allowed.Domains, + }, + Blocked: blocked, + } +} + +func toGoSecSettings(old one.GoSecSettings) two.GoSecSettings { + return two.GoSecSettings{ + Includes: old.Includes, + Excludes: old.Excludes, + Severity: old.Severity, + Confidence: old.Confidence, + Config: old.Config, + Concurrency: old.Concurrency, + } +} + +func toGosmopolitanSettings(old one.GosmopolitanSettings) two.GosmopolitanSettings { + return two.GosmopolitanSettings{ + AllowTimeLocal: old.AllowTimeLocal, + EscapeHatches: old.EscapeHatches, + WatchForScripts: old.WatchForScripts, + } +} + +func toGovetSettings(old one.GovetSettings) two.GovetSettings { + return two.GovetSettings{ + Go: old.Go, + Enable: old.Enable, + Disable: old.Disable, + EnableAll: old.EnableAll, + DisableAll: old.DisableAll, + Settings: old.Settings, + } +} + +func toGrouperSettings(old one.GrouperSettings) two.GrouperSettings { + return two.GrouperSettings{ + ConstRequireSingleConst: old.ConstRequireSingleConst, + ConstRequireGrouping: old.ConstRequireGrouping, + ImportRequireSingleImport: old.ImportRequireSingleImport, + ImportRequireGrouping: old.ImportRequireGrouping, + TypeRequireSingleType: old.TypeRequireSingleType, + TypeRequireGrouping: old.TypeRequireGrouping, + VarRequireSingleVar: old.VarRequireSingleVar, + VarRequireGrouping: old.VarRequireGrouping, + } +} + +func toIfaceSettings(old one.IfaceSettings) two.IfaceSettings { + return two.IfaceSettings{ + Enable: old.Enable, + Settings: old.Settings, + } +} + +func toImportAsSettings(old one.ImportAsSettings) two.ImportAsSettings { + settings := two.ImportAsSettings{ + NoUnaliased: old.NoUnaliased, + NoExtraAliases: old.NoExtraAliases, + } + + for _, alias := range old.Alias { + settings.Alias = append(settings.Alias, two.ImportAsAlias{ + Pkg: alias.Pkg, + Alias: alias.Alias, + }) + } + + return settings +} + +func toINamedParamSettings(old one.INamedParamSettings) two.INamedParamSettings { + return two.INamedParamSettings{ + SkipSingleParam: old.SkipSingleParam, + } +} + +func toInterfaceBloatSettings(old one.InterfaceBloatSettings) two.InterfaceBloatSettings { + return two.InterfaceBloatSettings{ + Max: old.Max, + } +} + +func toIreturnSettings(old one.IreturnSettings) two.IreturnSettings { + return two.IreturnSettings{ + Allow: old.Allow, + Reject: old.Reject, + } +} + +func toLllSettings(old one.LllSettings) two.LllSettings { + return two.LllSettings{ + LineLength: old.LineLength, + TabWidth: old.TabWidth, + } +} + +func toLoggerCheckSettings(old one.LoggerCheckSettings) two.LoggerCheckSettings { + return two.LoggerCheckSettings{ + Kitlog: old.Kitlog, + Klog: old.Klog, + Logr: old.Logr, + Slog: old.Slog, + Zap: old.Zap, + RequireStringKey: old.RequireStringKey, + NoPrintfLike: old.NoPrintfLike, + Rules: old.Rules, + } +} + +func toMaintIdxSettings(old one.MaintIdxSettings) two.MaintIdxSettings { + return two.MaintIdxSettings{ + Under: old.Under, + } +} + +func toMakezeroSettings(old one.MakezeroSettings) two.MakezeroSettings { + return two.MakezeroSettings{ + Always: old.Always, + } +} + +func toMisspellSettings(old one.MisspellSettings) two.MisspellSettings { + settings := two.MisspellSettings{ + Mode: old.Mode, + Locale: old.Locale, + IgnoreRules: old.IgnoreWords, + } + + for _, word := range old.ExtraWords { + settings.ExtraWords = append(settings.ExtraWords, two.MisspellExtraWords{ + Typo: word.Typo, + Correction: word.Correction, + }) + } + + return settings +} + +func toMndSettings(old one.MndSettings) two.MndSettings { + return two.MndSettings{ + Checks: old.Checks, + IgnoredNumbers: old.IgnoredNumbers, + IgnoredFiles: old.IgnoredFiles, + IgnoredFunctions: old.IgnoredFunctions, + } +} + +func toMustTagSettings(old one.MustTagSettings) two.MustTagSettings { + settings := two.MustTagSettings{} + + for _, function := range old.Functions { + settings.Functions = append(settings.Functions, two.MustTagFunction{ + Name: function.Name, + Tag: function.Tag, + ArgPos: function.ArgPos, + }) + } + + return settings +} + +func toNakedretSettings(old one.NakedretSettings) two.NakedretSettings { + return two.NakedretSettings{ + MaxFuncLines: old.MaxFuncLines, + } +} + +func toNestifSettings(old one.NestifSettings) two.NestifSettings { + return two.NestifSettings{ + MinComplexity: old.MinComplexity, + } +} + +func toNilNilSettings(old one.NilNilSettings) two.NilNilSettings { + return two.NilNilSettings{ + DetectOpposite: old.DetectOpposite, + CheckedTypes: old.CheckedTypes, + } +} + +func toNlreturnSettings(old one.NlreturnSettings) two.NlreturnSettings { + return two.NlreturnSettings{ + BlockSize: old.BlockSize, + } +} + +func toNoLintLintSettings(old one.NoLintLintSettings) two.NoLintLintSettings { + return two.NoLintLintSettings{ + RequireExplanation: old.RequireExplanation, + RequireSpecific: old.RequireSpecific, + AllowNoExplanation: old.AllowNoExplanation, + AllowUnused: old.AllowUnused, + } +} + +func toNoNamedReturnsSettings(old one.NoNamedReturnsSettings) two.NoNamedReturnsSettings { + return two.NoNamedReturnsSettings{ + ReportErrorInDefer: old.ReportErrorInDefer, + } +} + +func toParallelTestSettings(old one.ParallelTestSettings) two.ParallelTestSettings { + return two.ParallelTestSettings{ + Go: nil, + IgnoreMissing: old.IgnoreMissing, + IgnoreMissingSubtests: old.IgnoreMissingSubtests, + } +} + +func toPerfSprintSettings(old one.PerfSprintSettings) two.PerfSprintSettings { + return two.PerfSprintSettings{ + IntegerFormat: old.IntegerFormat, + IntConversion: old.IntConversion, + ErrorFormat: old.ErrorFormat, + ErrError: old.ErrError, + ErrorF: old.ErrorF, + StringFormat: old.StringFormat, + SprintF1: old.SprintF1, + StrConcat: old.StrConcat, + BoolFormat: old.BoolFormat, + HexFormat: old.HexFormat, + } +} + +func toPreallocSettings(old one.PreallocSettings) two.PreallocSettings { + return two.PreallocSettings{ + Simple: old.Simple, + RangeLoops: old.RangeLoops, + ForLoops: old.ForLoops, + } +} + +func toPredeclaredSettings(old one.PredeclaredSettings) two.PredeclaredSettings { + var ignore []string + if ptr.Deref(old.Ignore) != "" { + ignore = strings.Split(ptr.Deref(old.Ignore), ",") + } + + return two.PredeclaredSettings{ + Ignore: ignore, + Qualified: old.Qualified, + } +} + +func toPromlinterSettings(old one.PromlinterSettings) two.PromlinterSettings { + return two.PromlinterSettings{ + Strict: old.Strict, + DisabledLinters: old.DisabledLinters, + } +} + +func toProtoGetterSettings(old one.ProtoGetterSettings) two.ProtoGetterSettings { + return two.ProtoGetterSettings{ + SkipGeneratedBy: old.SkipGeneratedBy, + SkipFiles: old.SkipFiles, + SkipAnyGenerated: old.SkipAnyGenerated, + ReplaceFirstArgInAppend: old.ReplaceFirstArgInAppend, + } +} + +func toReassignSettings(old one.ReassignSettings) two.ReassignSettings { + return two.ReassignSettings{ + Patterns: old.Patterns, + } +} + +func toRecvcheckSettings(old one.RecvcheckSettings) two.RecvcheckSettings { + return two.RecvcheckSettings{ + DisableBuiltin: old.DisableBuiltin, + Exclusions: old.Exclusions, + } +} + +func toReviveSettings(old one.ReviveSettings) two.ReviveSettings { + settings := two.ReviveSettings{ + MaxOpenFiles: old.MaxOpenFiles, + Confidence: old.Confidence, + Severity: old.Severity, + EnableAllRules: old.EnableAllRules, + ErrorCode: old.ErrorCode, + WarningCode: old.WarningCode, + } + + for _, rule := range old.Rules { + settings.Rules = append(settings.Rules, two.ReviveRule{ + Name: rule.Name, + Arguments: rule.Arguments, + Severity: rule.Severity, + Disabled: rule.Disabled, + Exclude: rule.Exclude, + }) + } + + for _, directive := range old.Directives { + settings.Directives = append(settings.Directives, two.ReviveDirective{ + Name: directive.Name, + Severity: directive.Severity, + }) + } + + return settings +} + +func toRowsErrCheckSettings(old one.RowsErrCheckSettings) two.RowsErrCheckSettings { + return two.RowsErrCheckSettings{ + Packages: old.Packages, + } +} + +func toSlogLintSettings(old one.SlogLintSettings) two.SlogLintSettings { + return two.SlogLintSettings{ + NoMixedArgs: old.NoMixedArgs, + KVOnly: old.KVOnly, + AttrOnly: old.AttrOnly, + NoGlobal: old.NoGlobal, + Context: old.Context, + StaticMsg: old.StaticMsg, + NoRawKeys: old.NoRawKeys, + KeyNamingCase: old.KeyNamingCase, + ForbiddenKeys: old.ForbiddenKeys, + ArgsOnSepLines: old.ArgsOnSepLines, + } +} + +func toSpancheckSettings(old one.SpancheckSettings) two.SpancheckSettings { + return two.SpancheckSettings{ + Checks: old.Checks, + IgnoreCheckSignatures: old.IgnoreCheckSignatures, + ExtraStartSpanSignatures: old.ExtraStartSpanSignatures, + } +} + +func toStaticCheckSettings(old one.LintersSettings) two.StaticCheckSettings { + checks := slices.Concat(old.Staticcheck.Checks, old.Stylecheck.Checks, old.Gosimple.Checks) + + slices.Sort(checks) + + return two.StaticCheckSettings{ + Checks: slices.Compact(checks), + Initialisms: old.Stylecheck.Initialisms, + DotImportWhitelist: old.Stylecheck.DotImportWhitelist, + HTTPStatusCodeWhitelist: old.Stylecheck.HTTPStatusCodeWhitelist, + } +} + +func toTagAlignSettings(old one.TagAlignSettings) two.TagAlignSettings { + return two.TagAlignSettings{ + Align: old.Align, + Sort: old.Sort, + Order: old.Order, + Strict: old.Strict, + } +} + +func toTagliatelleSettings(old one.TagliatelleSettings) two.TagliatelleSettings { + tcase := two.TagliatelleCase{ + TagliatelleBase: two.TagliatelleBase{ + Rules: old.Case.Rules, + UseFieldName: old.Case.UseFieldName, + IgnoredFields: old.Case.IgnoredFields, + }, + Overrides: []two.TagliatelleOverrides{}, + } + + for k, rule := range old.Case.ExtendedRules { + if tcase.ExtendedRules == nil { + tcase.ExtendedRules = make(map[string]two.TagliatelleExtendedRule) + } + + tcase.ExtendedRules[k] = two.TagliatelleExtendedRule{ + Case: rule.Case, + ExtraInitialisms: rule.ExtraInitialisms, + InitialismOverrides: rule.InitialismOverrides, + } + } + + return two.TagliatelleSettings{Case: tcase} +} + +func toTenvSettings(old one.TenvSettings) two.TenvSettings { + return two.TenvSettings{ + All: old.All, + } +} + +func toTestifylintSettings(old one.TestifylintSettings) two.TestifylintSettings { + return two.TestifylintSettings{ + EnableAll: old.EnableAll, + DisableAll: old.DisableAll, + EnabledCheckers: old.EnabledCheckers, + DisabledCheckers: old.DisabledCheckers, + BoolCompare: two.TestifylintBoolCompare{ + IgnoreCustomTypes: old.BoolCompare.IgnoreCustomTypes, + }, + ExpectedActual: two.TestifylintExpectedActual{ + ExpVarPattern: old.ExpectedActual.ExpVarPattern, + }, + Formatter: two.TestifylintFormatter{ + CheckFormatString: old.Formatter.CheckFormatString, + RequireFFuncs: old.Formatter.RequireFFuncs, + }, + GoRequire: two.TestifylintGoRequire{ + IgnoreHTTPHandlers: old.GoRequire.IgnoreHTTPHandlers, + }, + RequireError: two.TestifylintRequireError{ + FnPattern: old.RequireError.FnPattern, + }, + SuiteExtraAssertCall: two.TestifylintSuiteExtraAssertCall{ + Mode: old.SuiteExtraAssertCall.Mode, + }, + } +} + +func toTestpackageSettings(old one.TestpackageSettings) two.TestpackageSettings { + return two.TestpackageSettings{ + SkipRegexp: old.SkipRegexp, + AllowPackages: old.AllowPackages, + } +} + +func toThelperSettings(old one.ThelperSettings) two.ThelperSettings { + return two.ThelperSettings{ + Test: two.ThelperOptions{ + First: old.Test.First, + Name: old.Test.Name, + Begin: old.Test.Begin, + }, + Fuzz: two.ThelperOptions{ + First: old.Fuzz.First, + Name: old.Fuzz.Name, + Begin: old.Fuzz.Begin, + }, + Benchmark: two.ThelperOptions{ + First: old.Benchmark.First, + Name: old.Benchmark.Name, + Begin: old.Benchmark.Begin, + }, + TB: two.ThelperOptions{ + First: old.TB.First, + Name: old.TB.Name, + Begin: old.TB.Begin, + }, + } +} + +func toUnconvertSettings(old one.UnconvertSettings) two.UnconvertSettings { + return two.UnconvertSettings{ + FastMath: old.FastMath, + Safe: old.Safe, + } +} + +func toUnparamSettings(old one.UnparamSettings) two.UnparamSettings { + return two.UnparamSettings{ + CheckExported: old.CheckExported, + } +} + +func toUnusedSettings(old one.UnusedSettings) two.UnusedSettings { + return two.UnusedSettings{ + FieldWritesAreUses: old.FieldWritesAreUses, + PostStatementsAreReads: old.PostStatementsAreReads, + ExportedFieldsAreUsed: old.ExportedFieldsAreUsed, + ParametersAreUsed: old.ParametersAreUsed, + LocalVariablesAreUsed: old.LocalVariablesAreUsed, + GeneratedIsUsed: old.GeneratedIsUsed, + } +} + +func toUseStdlibVarsSettings(old one.UseStdlibVarsSettings) two.UseStdlibVarsSettings { + return two.UseStdlibVarsSettings{ + HTTPMethod: old.HTTPMethod, + HTTPStatusCode: old.HTTPStatusCode, + TimeWeekday: old.TimeWeekday, + TimeMonth: old.TimeMonth, + TimeLayout: old.TimeLayout, + CryptoHash: old.CryptoHash, + DefaultRPCPath: old.DefaultRPCPath, + SQLIsolationLevel: old.SQLIsolationLevel, + TLSSignatureScheme: old.TLSSignatureScheme, + ConstantKind: old.ConstantKind, + } +} + +func toUseTestingSettings(old one.UseTestingSettings) two.UseTestingSettings { + return two.UseTestingSettings{ + ContextBackground: old.ContextBackground, + ContextTodo: old.ContextTodo, + OSChdir: old.OSChdir, + OSMkdirTemp: old.OSMkdirTemp, + OSSetenv: old.OSSetenv, + OSTempDir: old.OSTempDir, + OSCreateTemp: old.OSCreateTemp, + } +} + +func toVarnamelenSettings(old one.VarnamelenSettings) two.VarnamelenSettings { + return two.VarnamelenSettings{ + MaxDistance: old.MaxDistance, + MinNameLength: old.MinNameLength, + CheckReceiver: old.CheckReceiver, + CheckReturn: old.CheckReturn, + CheckTypeParam: old.CheckTypeParam, + IgnoreNames: old.IgnoreNames, + IgnoreTypeAssertOk: old.IgnoreTypeAssertOk, + IgnoreMapIndexOk: old.IgnoreMapIndexOk, + IgnoreChanRecvOk: old.IgnoreChanRecvOk, + IgnoreDecls: old.IgnoreDecls, + } +} + +func toWhitespaceSettings(old one.WhitespaceSettings) two.WhitespaceSettings { + return two.WhitespaceSettings{ + MultiIf: old.MultiIf, + MultiFunc: old.MultiFunc, + } +} + +func toWrapcheckSettings(old one.WrapcheckSettings) two.WrapcheckSettings { + return two.WrapcheckSettings{ + ExtraIgnoreSigs: old.ExtraIgnoreSigs, + IgnoreSigs: old.IgnoreSigs, + IgnoreSigRegexps: old.IgnoreSigRegexps, + IgnorePackageGlobs: old.IgnorePackageGlobs, + IgnoreInterfaceRegexps: old.IgnoreInterfaceRegexps, + } +} + +func toWSLSettings(old one.WSLSettings) two.WSLSettings { + return two.WSLSettings{ + StrictAppend: old.StrictAppend, + AllowAssignAndCallCuddle: old.AllowAssignAndCallCuddle, + AllowAssignAndAnythingCuddle: old.AllowAssignAndAnythingCuddle, + AllowMultiLineAssignCuddle: old.AllowMultiLineAssignCuddle, + ForceCaseTrailingWhitespaceLimit: old.ForceCaseTrailingWhitespaceLimit, + AllowTrailingComment: old.AllowTrailingComment, + AllowSeparatedLeadingComment: old.AllowSeparatedLeadingComment, + AllowCuddleDeclaration: old.AllowCuddleDeclaration, + AllowCuddleWithCalls: old.AllowCuddleWithCalls, + AllowCuddleWithRHS: old.AllowCuddleWithRHS, + ForceCuddleErrCheckAndAssign: old.ForceCuddleErrCheckAndAssign, + ErrorVariableNames: old.ErrorVariableNames, + ForceExclusiveShortDeclarations: old.ForceExclusiveShortDeclarations, + } +} + +func toCustom(old map[string]one.CustomLinterSettings) map[string]two.CustomLinterSettings { + if old == nil { + return nil + } + + settings := map[string]two.CustomLinterSettings{} + + for k, s := range old { + settings[k] = two.CustomLinterSettings{ + Type: s.Type, + Path: s.Path, + Description: s.Description, + OriginalURL: s.OriginalURL, + Settings: s.Settings, + } + } + + return settings +} diff --git a/pkg/commands/internal/migrate/migrate_output.go b/pkg/commands/internal/migrate/migrate_output.go new file mode 100644 index 000000000000..652c208c307e --- /dev/null +++ b/pkg/commands/internal/migrate/migrate_output.go @@ -0,0 +1,103 @@ +package migrate + +import ( + "slices" + + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" +) + +func toOutput(old *one.Config) two.Output { + formats := two.Formats{} + + oldFormats := cleanIncompatibleFormats(old.Output.Formats, "colored-line-number", "line-number") + oldFormats = cleanIncompatibleFormats(oldFormats, "colored-tab", "tab") + oldFormats = cleanIncompatibleFormats(oldFormats, "junit-xml-extended", "junit-xml") + + for _, format := range oldFormats { + switch ptr.Deref(format.Format) { + case "colored-line-number": + formats.Text.PrintLinterName = old.Output.PrintLinterName + formats.Text.PrintIssuedLine = old.Output.PrintIssuedLine + formats.Text.Colors = nil // color is true by default (flags). + formats.Text.Path = ptr.Pointer(defaultFormatPath(ptr.Deref(format.Path))) + + case "line-number": + formats.Text.PrintLinterName = old.Output.PrintLinterName + formats.Text.PrintIssuedLine = old.Output.PrintIssuedLine + formats.Text.Colors = ptr.Pointer(false) + formats.Text.Path = ptr.Pointer(defaultFormatPath(ptr.Deref(format.Path))) + + case "json": + formats.JSON.Path = ptr.Pointer(defaultFormatPath(ptr.Deref(format.Path))) + + case "colored-tab": + formats.Tab.PrintLinterName = old.Output.PrintLinterName + formats.Tab.Colors = nil // Colors is true by default (flags). + formats.Tab.Path = ptr.Pointer(defaultFormatPath(ptr.Deref(format.Path))) + + case "tab": + formats.Tab.PrintLinterName = old.Output.PrintLinterName + formats.Tab.Colors = ptr.Pointer(false) + formats.Tab.Path = ptr.Pointer(defaultFormatPath(ptr.Deref(format.Path))) + + case "html": + formats.HTML.Path = ptr.Pointer(defaultFormatPath(ptr.Deref(format.Path))) + + case "checkstyle": + formats.Checkstyle.Path = ptr.Pointer(defaultFormatPath(ptr.Deref(format.Path))) + + case "code-climate": + formats.CodeClimate.Path = ptr.Pointer(defaultFormatPath(ptr.Deref(format.Path))) + + case "junit-xml": + formats.JUnitXML.Extended = nil // Extended is false by default. + formats.JUnitXML.Path = ptr.Pointer(defaultFormatPath(ptr.Deref(format.Path))) + + case "junit-xml-extended": + formats.JUnitXML.Extended = ptr.Pointer(true) + formats.JUnitXML.Path = ptr.Pointer(defaultFormatPath(ptr.Deref(format.Path))) + + case "github-actions": + // Ignored + + case "teamcity": + formats.TeamCity.Path = ptr.Pointer(defaultFormatPath(ptr.Deref(format.Path))) + + case "sarif": + formats.Sarif.Path = ptr.Pointer(defaultFormatPath(ptr.Deref(format.Path))) + } + } + + return two.Output{ + Formats: formats, + SortOrder: old.Output.SortOrder, + PathPrefix: old.Output.PathPrefix, + ShowStats: nil, // Enforce the new default. (nil -> omitempty -> true) + } +} + +func defaultFormatPath(p string) string { + if p == "" { + return "stdout" + } + + return p +} + +func cleanIncompatibleFormats(old one.OutputFormats, f1, f2 string) one.OutputFormats { + index1 := slices.IndexFunc(old, func(format one.OutputFormat) bool { + return ptr.Deref(format.Format) == f1 + }) + + index2 := slices.IndexFunc(old, func(format one.OutputFormat) bool { + return ptr.Deref(format.Format) == f2 + }) + + if index1 >= 0 && index2 >= 0 { + return slices.Delete(old, index2, index2+1) + } + + return old +} diff --git a/pkg/commands/internal/migrate/migrate_run.go b/pkg/commands/internal/migrate/migrate_run.go new file mode 100644 index 000000000000..89dfe89148bf --- /dev/null +++ b/pkg/commands/internal/migrate/migrate_run.go @@ -0,0 +1,34 @@ +package migrate + +import ( + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" +) + +func toRun(old *one.Config) two.Run { + var relativePathMode *string + if ptr.Deref(old.Run.RelativePathMode) != "cfg" { + // cfg is the new default. + relativePathMode = old.Run.RelativePathMode + } + + var concurrency *int + if ptr.Deref(old.Run.Concurrency) != 0 { + // 0 is the new default + concurrency = old.Run.Concurrency + } + + return two.Run{ + Timeout: 0, // Enforce new default. + Concurrency: concurrency, + Go: old.Run.Go, + RelativePathMode: relativePathMode, + BuildTags: old.Run.BuildTags, + ModulesDownloadMode: old.Run.ModulesDownloadMode, + ExitCodeIfIssuesFound: old.Run.ExitCodeIfIssuesFound, + AnalyzeTests: old.Run.AnalyzeTests, + AllowParallelRunners: old.Run.AllowParallelRunners, + AllowSerialRunners: old.Run.AllowSerialRunners, + } +} diff --git a/pkg/commands/internal/migrate/migrate_severity.go b/pkg/commands/internal/migrate/migrate_severity.go new file mode 100644 index 000000000000..a283f4f9176e --- /dev/null +++ b/pkg/commands/internal/migrate/migrate_severity.go @@ -0,0 +1,28 @@ +package migrate + +import ( + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" +) + +func toSeverity(old *one.Config) two.Severity { + var rules []two.SeverityRule + + for _, rule := range old.Severity.Rules { + rules = append(rules, two.SeverityRule{ + BaseRule: two.BaseRule{ + Linters: convertStaticcheckLinterNames(convertAlternativeNames(rule.Linters)), + Path: rule.Path, + PathExcept: rule.PathExcept, + Text: rule.Text, + Source: rule.Source, + }, + Severity: rule.Severity, + }) + } + + return two.Severity{ + Default: old.Severity.Default, + Rules: rules, + } +} diff --git a/pkg/commands/internal/migrate/migrate_test.go b/pkg/commands/internal/migrate/migrate_test.go new file mode 100644 index 000000000000..eddbc2bcc0cb --- /dev/null +++ b/pkg/commands/internal/migrate/migrate_test.go @@ -0,0 +1,102 @@ +package migrate + +import ( + "bytes" + "io/fs" + "os" + "path/filepath" + "strings" + "testing" + + "github.com/spf13/viper" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "gopkg.in/yaml.v3" + + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" + "github.com/golangci/golangci-lint/pkg/config" + "github.com/golangci/golangci-lint/pkg/logutils" +) + +func TestToConfig(t *testing.T) { + var testFiles []string + + err := filepath.WalkDir("testdata", func(path string, d fs.DirEntry, err error) error { + if err != nil { + return err + } + + if d.IsDir() { + return nil + } + + if strings.HasSuffix(path, ".golden.yml") { + return nil + } + + testFiles = append(testFiles, path) + + return nil + }) + + require.NoError(t, err) + + for _, fileIn := range testFiles { + t.Run(fileIn, func(t *testing.T) { + t.Parallel() + + ext := filepath.Ext(fileIn) + fileGolden := strings.TrimSuffix(fileIn, ext) + ".golden.yml" + + testFile(t, fileIn, fileGolden, false) + }) + } +} + +func testFile(t *testing.T, in, golden string, update bool) { + t.Helper() + + old := one.NewConfig() + + options := config.LoaderOptions{Config: in} + + // Fake load of the configuration. + // IMPORTANT: The default values from flags are not set. + loader := config.NewBaseLoader(logutils.NewStderrLog("skip"), viper.New(), options, old, nil) + + err := loader.Load() + require.NoError(t, err) + + if update { + updateGolden(t, golden, old) + } + + expected, err := os.ReadFile(golden) + require.NoError(t, err) + + var buf bytes.Buffer + encoder := yaml.NewEncoder(&buf) + encoder.SetIndent(2) + + err = encoder.Encode(ToConfig(old)) + require.NoError(t, err) + + assert.YAMLEq(t, string(expected), buf.String()) +} + +func updateGolden(t *testing.T, golden string, old *one.Config) { + t.Helper() + + fileOut, err := os.Create(golden) + require.NoError(t, err) + + defer func() { + _ = fileOut.Close() + }() + + encoder := yaml.NewEncoder(fileOut) + encoder.SetIndent(2) + + err = encoder.Encode(ToConfig(old)) + require.NoError(t, err) +} diff --git a/pkg/commands/migrate.go b/pkg/commands/migrate.go new file mode 100644 index 000000000000..c9ef3259d903 --- /dev/null +++ b/pkg/commands/migrate.go @@ -0,0 +1,239 @@ +package commands + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "os" + "path/filepath" + "strings" + + "github.com/fatih/color" + "github.com/pelletier/go-toml/v2" + "github.com/santhosh-tekuri/jsonschema/v6" + "github.com/spf13/cobra" + "github.com/spf13/viper" + "gopkg.in/yaml.v3" + + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" + "github.com/golangci/golangci-lint/pkg/config" + "github.com/golangci/golangci-lint/pkg/exitcodes" + "github.com/golangci/golangci-lint/pkg/logutils" +) + +type migrateOptions struct { + config.LoaderOptions + + format string // Flag only. + skipValidation bool // Flag only. +} +type migrateCommand struct { + viper *viper.Viper + cmd *cobra.Command + + opts migrateOptions + + cfg *one.Config + + buildInfo BuildInfo + + log logutils.Log +} + +func newMigrateCommand(log logutils.Log, info BuildInfo) *migrateCommand { + c := &migrateCommand{ + viper: viper.New(), + cfg: one.NewConfig(), + buildInfo: info, + log: log, + } + + migrateCmd := &cobra.Command{ + Use: "migrate", + Short: "Migrate configuration file from v1 to v2", + SilenceUsage: true, + SilenceErrors: true, + Args: cobra.NoArgs, + RunE: c.execute, + PreRunE: c.preRunE, + PersistentPreRunE: c.persistentPreRunE, + } + + migrateCmd.SetOut(logutils.StdOut) // use custom output to properly color it in Windows terminals + migrateCmd.SetErr(logutils.StdErr) + + fs := migrateCmd.Flags() + fs.SortFlags = false // sort them as they are defined here + + setupConfigFileFlagSet(fs, &c.opts.LoaderOptions) + + fs.StringVar(&c.opts.format, "format", "", + color.GreenString("By default, the file format is based on the configuration file extension.\n"+ + "Overrides file format detection.\nIt can be 'yml', 'yaml', 'toml', 'json'.")) + + fs.BoolVar(&c.opts.skipValidation, "skip-validation", false, + color.GreenString("Skip validating the configuration file on the JSONSchema of the v1.")) + + c.cmd = migrateCmd + + return c +} + +func (c *migrateCommand) execute(_ *cobra.Command, _ []string) error { + if c.cfg.Version != "" { + return fmt.Errorf("configuration version is already set: %s", c.cfg.Version) + } + + srcPath := c.viper.ConfigFileUsed() + if srcPath == "" { + c.log.Warnf("No config file detected") + os.Exit(exitcodes.NoConfigFileDetected) + } + + err := c.backupConfigurationFile(srcPath) + if err != nil { + return err + } + + c.cmd.Println("Migrating v1 configuration file:", srcPath) + + ext := filepath.Ext(srcPath) + if strings.TrimSpace(c.opts.format) != "" { + ext = "." + strings.TrimPrefix(c.opts.format, ".") + } + + if !strings.EqualFold(filepath.Ext(srcPath), ext) { + defer func() { + _ = os.RemoveAll(srcPath) + }() + } + + newCfg := migrate.ToConfig(c.cfg) + + dstPath := strings.TrimSuffix(srcPath, filepath.Ext(srcPath)) + ext + + err = saveNewConfiguration(newCfg, dstPath) + if err != nil { + return fmt.Errorf("saving configuration file: %w", err) + } + + c.cmd.Println("Migration done:", dstPath) + + return nil +} + +func (c *migrateCommand) preRunE(cmd *cobra.Command, _ []string) error { + if c.opts.skipValidation { + return nil + } + + usedConfigFile := c.viper.ConfigFileUsed() + if usedConfigFile == "" { + c.log.Warnf("No config file detected") + os.Exit(exitcodes.NoConfigFileDetected) + } + + c.cmd.Println("Validating v1 configuration file:", usedConfigFile) + + err := validateConfiguration("https://golangci-lint.run/jsonschema/golangci.v1.jsonschema.json", usedConfigFile) + if err != nil { + var v *jsonschema.ValidationError + if !errors.As(err, &v) { + return fmt.Errorf("[%s] validate: %w", usedConfigFile, err) + } + + printValidationDetail(cmd, v.DetailedOutput()) + + return errors.New("the configuration contains invalid elements") + } + + return nil +} + +func (c *migrateCommand) persistentPreRunE(_ *cobra.Command, args []string) error { + c.log.Infof("%s", c.buildInfo.String()) + + loader := config.NewBaseLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, c.opts.LoaderOptions, c.cfg, args) + + err := loader.Load() + if err != nil { + return fmt.Errorf("can't load config: %w", err) + } + + return nil +} + +func (c *migrateCommand) backupConfigurationFile(srcPath string) error { + filename := strings.TrimSuffix(filepath.Base(srcPath), filepath.Ext(srcPath)) + ".bck" + filepath.Ext(srcPath) + dstPath := filepath.Join(filepath.Dir(srcPath), filename) + + c.cmd.Println("Saving the v1 configuration to:", dstPath) + + stat, err := os.Stat(srcPath) + if err != nil { + return err + } + + data, err := os.ReadFile(srcPath) + if err != nil { + return err + } + + err = os.WriteFile(dstPath, data, stat.Mode()) + if err != nil { + return err + } + + return nil +} + +func saveNewConfiguration(newCfg *two.Config, dstPath string) error { + dstFile, err := os.Create(dstPath) + if err != nil { + return err + } + + defer func() { _ = dstFile.Close() }() + + ext := filepath.Ext(dstPath) + + switch strings.ToLower(ext) { + case ".yml", ".yaml": + encoder := yaml.NewEncoder(dstFile) + encoder.SetIndent(2) + + return encoder.Encode(newCfg) + + case ".toml": + encoder := toml.NewEncoder(dstFile) + + return encoder.Encode(newCfg) + + case ".json": + // The JSON encoder converts empty struct to `{}` instead of nothing (even with omitempty JSON struct tags). + // So we need to use the YAML encoder as bridge to create JSON file. + + var buf bytes.Buffer + err := yaml.NewEncoder(&buf).Encode(newCfg) + if err != nil { + return err + } + + raw := map[string]any{} + err = yaml.NewDecoder(&buf).Decode(raw) + if err != nil { + return err + } + + encoder := json.NewEncoder(dstFile) + encoder.SetIndent("", " ") + + return encoder.Encode(raw) + + default: + return fmt.Errorf("unsupported file type: %s", ext) + } +} diff --git a/pkg/commands/root.go b/pkg/commands/root.go index 82b224446163..2544738ffea5 100644 --- a/pkg/commands/root.go +++ b/pkg/commands/root.go @@ -61,6 +61,7 @@ func newRootCommand(info BuildInfo) *rootCommand { newLintersCommand(log).cmd, newRunCommand(log, info).cmd, newFmtCommand(log, info).cmd, + newMigrateCommand(log, info).cmd, newCacheCommand().cmd, newConfigCommand(log, info).cmd, newVersionCommand(info).cmd, From 4ef8f4cd33c000453f28c8592b650d4deb566b14 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Sat, 1 Mar 2025 16:08:49 +0100 Subject: [PATCH 06/30] tests: configuration flles --- .../migrate/testdata/empty.golden.yml | 11 + .../internal/migrate/testdata/empty.yml | 0 .../migrate/testdata/issues_01_a.golden.yml | 8 + .../internal/migrate/testdata/issues_01_a.yml | 12 + .../migrate/testdata/issues_01_b.golden.yml | 17 + .../internal/migrate/testdata/issues_01_b.yml | 16 + .../migrate/testdata/issues_02_a.golden.yml | 6 + .../internal/migrate/testdata/issues_02_a.yml | 9 + .../migrate/testdata/issues_02_b.golden.yml | 6 + .../internal/migrate/testdata/issues_02_b.yml | 9 + .../migrate/testdata/issues_04_a.golden.yml | 32 ++ .../internal/migrate/testdata/issues_04_a.yml | 45 ++ .../migrate/testdata/issues_04_b.golden.yml | 32 ++ .../internal/migrate/testdata/issues_04_b.yml | 45 ++ .../migrate/testdata/issues_05_a.golden.yml | 1 + .../internal/migrate/testdata/issues_05_a.yml | 5 + .../migrate/testdata/issues_05_b.golden.yml | 7 + .../internal/migrate/testdata/issues_05_b.yml | 5 + .../migrate/testdata/issues_05_c.golden.yml | 7 + .../internal/migrate/testdata/issues_05_c.yml | 6 + .../migrate/testdata/issues_06_a.golden.yml | 1 + .../internal/migrate/testdata/issues_06_a.yml | 8 + .../migrate/testdata/issues_06_b.golden.yml | 8 + .../internal/migrate/testdata/issues_06_b.yml | 8 + .../migrate/testdata/issues_06_c.golden.yml | 1 + .../internal/migrate/testdata/issues_06_c.yml | 24 + .../migrate/testdata/issues_06_d.golden.yml | 7 + .../internal/migrate/testdata/issues_06_d.yml | 11 + .../migrate/testdata/issues_06_e.golden.yml | 7 + .../internal/migrate/testdata/issues_06_e.yml | 10 + .../migrate/testdata/issues_06_f.golden.yml | 7 + .../internal/migrate/testdata/issues_06_f.yml | 10 + .../migrate/testdata/issues_06_g.golden.yml | 7 + .../internal/migrate/testdata/issues_06_g.yml | 11 + .../migrate/testdata/issues_07.golden.yml | 7 + .../internal/migrate/testdata/issues_07.yml | 5 + .../migrate/testdata/issues_08_a.golden.yml | 5 + .../internal/migrate/testdata/issues_08_a.yml | 9 + .../migrate/testdata/issues_08_b.golden.yml | 4 + .../internal/migrate/testdata/issues_08_b.yml | 8 + .../migrate/testdata/issues_09_a.golden.yml | 8 + .../internal/migrate/testdata/issues_09_a.yml | 12 + .../migrate/testdata/issues_09_b.golden.yml | 8 + .../internal/migrate/testdata/issues_09_b.yml | 12 + .../linters-settings_asasalint.golden.yml | 13 + .../testdata/linters-settings_asasalint.yml | 13 + .../linters-settings_bidichk.golden.yml | 13 + .../testdata/linters-settings_bidichk.yml | 17 + .../linters-settings_copyloopvar.golden.yml | 5 + .../testdata/linters-settings_copyloopvar.yml | 10 + .../linters-settings_custom.golden.yml | 11 + .../testdata/linters-settings_custom.yml | 15 + .../linters-settings_cyclop.golden.yml | 11 + .../testdata/linters-settings_cyclop.yml | 11 + .../linters-settings_decorder.golden.yml | 16 + .../testdata/linters-settings_decorder.yml | 20 + .../linters-settings_depguard.golden.yml | 19 + .../testdata/linters-settings_depguard.yml | 23 + .../linters-settings_dogsled.golden.yml | 5 + .../testdata/linters-settings_dogsled.yml | 9 + .../testdata/linters-settings_dupl.golden.yml | 5 + .../testdata/linters-settings_dupl.yml | 9 + .../linters-settings_dupword.golden.yml | 10 + .../testdata/linters-settings_dupword.yml | 14 + .../linters-settings_errcheck.golden.yml | 11 + .../testdata/linters-settings_errcheck.yml | 15 + .../linters-settings_errchkjson.golden.yml | 6 + .../testdata/linters-settings_errchkjson.yml | 10 + .../linters-settings_errorlint.golden.yml | 14 + .../testdata/linters-settings_errorlint.yml | 18 + .../linters-settings_exhaustive.golden.yml | 14 + .../testdata/linters-settings_exhaustive.yml | 19 + .../linters-settings_exhaustruct.golden.yml | 9 + .../testdata/linters-settings_exhaustruct.yml | 13 + .../linters-settings_fatcontext.golden.yml | 5 + .../testdata/linters-settings_fatcontext.yml | 9 + .../linters-settings_forbidigo.golden.yml | 14 + .../testdata/linters-settings_forbidigo.yml | 18 + .../linters-settings_funlen.golden.yml | 7 + .../testdata/linters-settings_funlen.yml | 11 + .../testdata/linters-settings_gci.golden.yml | 16 + .../migrate/testdata/linters-settings_gci.yml | 21 + .../linters-settings_ginkgolinter.golden.yml | 16 + .../linters-settings_ginkgolinter.yml | 20 + ...linters-settings_gochecksumtype.golden.yml | 6 + .../linters-settings_gochecksumtype.yml | 10 + .../linters-settings_gocognit.golden.yml | 5 + .../testdata/linters-settings_gocognit.yml | 9 + .../linters-settings_goconst.golden.yml | 17 + .../testdata/linters-settings_goconst.yml | 17 + .../linters-settings_gocritic.golden.yml | 232 ++++++++ .../testdata/linters-settings_gocritic.yml | 269 +++++++++ .../linters-settings_gocyclo.golden.yml | 5 + .../testdata/linters-settings_gocyclo.yml | 9 + .../linters-settings_godot.golden.yml | 10 + .../testdata/linters-settings_godot.yml | 14 + .../linters-settings_godox.golden.yml | 8 + .../testdata/linters-settings_godox.yml | 12 + .../linters-settings_gofmt.golden.yml | 10 + .../testdata/linters-settings_gofmt.yml | 14 + .../linters-settings_gofumpt.golden.yml | 6 + .../testdata/linters-settings_gofumpt.yml | 10 + .../linters-settings_goheader.golden.yml | 29 + .../testdata/linters-settings_goheader.yml | 33 ++ .../linters-settings_goimports.golden.yml | 6 + .../testdata/linters-settings_goimports.yml | 9 + ...inters-settings_gomoddirectives.golden.yml | 14 + .../linters-settings_gomoddirectives.yml | 18 + .../linters-settings_gomodguard.golden.yml | 20 + .../testdata/linters-settings_gomodguard.yml | 24 + .../linters-settings_gosec.golden.yml | 109 ++++ .../testdata/linters-settings_gosec.yml | 114 ++++ .../linters-settings_gosimple.golden.yml | 40 ++ .../testdata/linters-settings_gosimple.yml | 44 ++ .../linters-settings_gosmopolitan.golden.yml | 17 + .../linters-settings_gosmopolitan.yml | 22 + .../linters-settings_govet.golden.yml | 108 ++++ .../testdata/linters-settings_govet.yml | 112 ++++ .../linters-settings_grouper.golden.yml | 12 + .../testdata/linters-settings_grouper.yml | 16 + .../linters-settings_iface.golden.yml | 12 + .../testdata/linters-settings_iface.yml | 16 + .../linters-settings_importas.golden.yml | 15 + .../testdata/linters-settings_importas.yml | 19 + .../linters-settings_inamedparam.golden.yml | 5 + .../testdata/linters-settings_inamedparam.yml | 9 + ...linters-settings_interfacebloat.golden.yml | 5 + .../linters-settings_interfacebloat.yml | 9 + .../linters-settings_ireturn.golden.yml | 9 + .../testdata/linters-settings_ireturn.yml | 13 + .../testdata/linters-settings_lll.golden.yml | 6 + .../migrate/testdata/linters-settings_lll.yml | 10 + .../linters-settings_loggercheck.golden.yml | 15 + .../testdata/linters-settings_loggercheck.yml | 19 + .../linters-settings_maintidx.golden.yml | 5 + .../testdata/linters-settings_maintidx.yml | 9 + .../linters-settings_makezero.golden.yml | 5 + .../testdata/linters-settings_makezero.yml | 9 + .../linters-settings_misspell.golden.yml | 13 + .../testdata/linters-settings_misspell.yml | 17 + .../testdata/linters-settings_mnd.golden.yml | 20 + .../migrate/testdata/linters-settings_mnd.yml | 24 + .../linters-settings_musttag.golden.yml | 8 + .../testdata/linters-settings_musttag.yml | 12 + .../linters-settings_nakedret.golden.yml | 5 + .../testdata/linters-settings_nakedret.yml | 9 + .../linters-settings_nestif.golden.yml | 5 + .../testdata/linters-settings_nestif.yml | 9 + .../linters-settings_nilnil.golden.yml | 13 + .../testdata/linters-settings_nilnil.yml | 17 + .../linters-settings_nlreturn.golden.yml | 5 + .../testdata/linters-settings_nlreturn.yml | 9 + .../linters-settings_nolintlint.golden.yml | 7 + .../testdata/linters-settings_nolintlint.yml | 12 + ...linters-settings_nonamedreturns.golden.yml | 5 + .../linters-settings_nonamedreturns.yml | 9 + .../linters-settings_paralleltest.golden.yml | 6 + .../linters-settings_paralleltest.yml | 10 + .../linters-settings_perfsprint.golden.yml | 14 + .../testdata/linters-settings_perfsprint.yml | 18 + .../linters-settings_prealloc.golden.yml | 7 + .../testdata/linters-settings_prealloc.yml | 11 + .../linters-settings_predeclared.golden.yml | 8 + .../testdata/linters-settings_predeclared.yml | 10 + .../linters-settings_promlinter.golden.yml | 14 + .../testdata/linters-settings_promlinter.yml | 18 + .../linters-settings_protogetter.golden.yml | 12 + .../testdata/linters-settings_protogetter.yml | 15 + .../linters-settings_reassign.golden.yml | 6 + .../testdata/linters-settings_reassign.yml | 10 + .../linters-settings_recvcheck.golden.yml | 7 + .../testdata/linters-settings_recvcheck.yml | 11 + .../linters-settings_revive.golden.yml | 525 ++++++++++++++++++ .../testdata/linters-settings_revive.yml | 433 +++++++++++++++ .../linters-settings_rowserrcheck.golden.yml | 6 + .../linters-settings_rowserrcheck.yml | 10 + .../linters-settings_sloglint.golden.yml | 19 + .../testdata/linters-settings_sloglint.yml | 23 + .../linters-settings_spancheck.golden.yml | 12 + .../testdata/linters-settings_spancheck.yml | 16 + .../linters-settings_staticcheck.golden.yml | 100 ++++ .../testdata/linters-settings_staticcheck.yml | 104 ++++ .../linters-settings_stylecheck.golden.yml | 73 +++ .../testdata/linters-settings_stylecheck.yml | 31 ++ .../linters-settings_tagalign.golden.yml | 15 + .../testdata/linters-settings_tagalign.yml | 19 + .../linters-settings_tagliatelle.golden.yml | 27 + .../testdata/linters-settings_tagliatelle.yml | 43 ++ .../testdata/linters-settings_tenv.golden.yml | 5 + .../testdata/linters-settings_tenv.yml | 9 + .../linters-settings_testifylint.golden.yml | 67 +++ .../testdata/linters-settings_testifylint.yml | 71 +++ .../linters-settings_testpackage.golden.yml | 8 + .../testdata/linters-settings_testpackage.yml | 12 + .../linters-settings_thelper.golden.yml | 20 + .../testdata/linters-settings_thelper.yml | 24 + .../linters-settings_unconvert.golden.yml | 6 + .../testdata/linters-settings_unconvert.yml | 10 + .../linters-settings_unparam.golden.yml | 5 + .../testdata/linters-settings_unparam.yml | 9 + .../linters-settings_unused.golden.yml | 10 + .../testdata/linters-settings_unused.yml | 14 + .../linters-settings_usestdlibvars.golden.yml | 14 + .../linters-settings_usestdlibvars.yml | 18 + .../linters-settings_usetesting.golden.yml | 11 + .../testdata/linters-settings_usetesting.yml | 15 + .../linters-settings_varnamelen.golden.yml | 23 + .../testdata/linters-settings_varnamelen.yml | 27 + .../linters-settings_whitespace.golden.yml | 6 + .../testdata/linters-settings_whitespace.yml | 10 + .../linters-settings_wrapcheck.golden.yml | 24 + .../testdata/linters-settings_wrapcheck.yml | 28 + .../testdata/linters-settings_wsl.golden.yml | 22 + .../migrate/testdata/linters-settings_wsl.yml | 21 + .../migrate/testdata/linters_01.golden.yml | 115 ++++ .../internal/migrate/testdata/linters_01.yml | 121 ++++ .../migrate/testdata/linters_02.golden.yml | 110 ++++ .../internal/migrate/testdata/linters_02.yml | 135 +++++ .../migrate/testdata/linters_03.golden.yml | 47 ++ .../internal/migrate/testdata/linters_03.yml | 67 +++ .../migrate/testdata/linters_04.golden.yml | 29 + .../internal/migrate/testdata/linters_04.yml | 31 ++ .../migrate/testdata/linters_05.golden.yml | 21 + .../internal/migrate/testdata/linters_05.yml | 31 ++ .../migrate/testdata/linters_06.golden.yml | 51 ++ .../internal/migrate/testdata/linters_06.yml | 71 +++ .../migrate/testdata/linters_07.golden.yml | 113 ++++ .../internal/migrate/testdata/linters_07.yml | 120 ++++ .../migrate/testdata/linters_08.golden.yml | 78 +++ .../internal/migrate/testdata/linters_08.yml | 46 ++ .../migrate/testdata/linters_09.golden.yml | 50 ++ .../internal/migrate/testdata/linters_09.yml | 68 +++ .../migrate/testdata/linters_10.golden.yml | 17 + .../internal/migrate/testdata/linters_10.yml | 15 + .../migrate/testdata/output_01_a.golden.yml | 22 + .../internal/migrate/testdata/output_01_a.yml | 23 + .../migrate/testdata/output_01_b.golden.yml | 25 + .../internal/migrate/testdata/output_01_b.yml | 26 + .../migrate/testdata/output_01_c.golden.yml | 25 + .../internal/migrate/testdata/output_01_c.yml | 26 + .../migrate/testdata/output_01_d.golden.yml | 25 + .../internal/migrate/testdata/output_01_d.yml | 26 + .../migrate/testdata/output_01_f.golden.yml | 25 + .../internal/migrate/testdata/output_01_f.yml | 26 + .../migrate/testdata/output_01_g.golden.yml | 5 + .../internal/migrate/testdata/output_01_g.yml | 10 + .../migrate/testdata/output_01_h.golden.yml | 6 + .../internal/migrate/testdata/output_01_h.yml | 9 + .../migrate/testdata/output_01_i.golden.yml | 5 + .../internal/migrate/testdata/output_01_i.yml | 9 + .../migrate/testdata/output_01_j.golden.yml | 5 + .../internal/migrate/testdata/output_01_j.yml | 10 + .../migrate/testdata/output_01_k.golden.yml | 6 + .../internal/migrate/testdata/output_01_k.yml | 9 + .../migrate/testdata/output_01_l.golden.yml | 5 + .../internal/migrate/testdata/output_01_l.yml | 9 + .../migrate/testdata/output_01_m.golden.yml | 6 + .../internal/migrate/testdata/output_01_m.yml | 10 + .../migrate/testdata/output_01_o.golden.yml | 6 + .../internal/migrate/testdata/output_01_o.yml | 9 + .../migrate/testdata/output_01_p.golden.yml | 5 + .../internal/migrate/testdata/output_01_p.yml | 9 + .../migrate/testdata/output_02.golden.yml | 1 + .../internal/migrate/testdata/output_02.yml | 10 + .../migrate/testdata/output_03.golden.yml | 6 + .../internal/migrate/testdata/output_03.yml | 12 + .../migrate/testdata/output_04.golden.yml | 3 + .../internal/migrate/testdata/output_04.yml | 8 + .../migrate/testdata/run_01.golden.yml | 1 + .../internal/migrate/testdata/run_01.yml | 8 + .../migrate/testdata/run_02_a.golden.yml | 1 + .../internal/migrate/testdata/run_02_a.yml | 9 + .../migrate/testdata/run_02_b.golden.yml | 3 + .../internal/migrate/testdata/run_02_b.yml | 9 + .../migrate/testdata/run_03_a.golden.yml | 3 + .../internal/migrate/testdata/run_03_a.yml | 8 + .../migrate/testdata/run_03_b.golden.yml | 3 + .../internal/migrate/testdata/run_03_b.yml | 8 + .../migrate/testdata/run_04_a.golden.yml | 3 + .../internal/migrate/testdata/run_04_a.yml | 8 + .../migrate/testdata/run_04_b.golden.yml | 3 + .../internal/migrate/testdata/run_04_b.yml | 8 + .../migrate/testdata/run_05.golden.yml | 4 + .../internal/migrate/testdata/run_05.yml | 9 + .../migrate/testdata/run_06.golden.yml | 3 + .../internal/migrate/testdata/run_06.yml | 8 + .../migrate/testdata/run_07.golden.yml | 4 + .../internal/migrate/testdata/run_07.yml | 10 + .../migrate/testdata/run_08.golden.yml | 3 + .../internal/migrate/testdata/run_08.yml | 8 + .../migrate/testdata/run_09_a.golden.yml | 3 + .../internal/migrate/testdata/run_09_a.yml | 8 + .../migrate/testdata/run_09_b.golden.yml | 1 + .../internal/migrate/testdata/run_09_b.yml | 8 + .../migrate/testdata/run_10.golden.yml | 12 + .../internal/migrate/testdata/run_10.yml | 18 + .../migrate/testdata/severity_01.golden.yml | 7 + .../internal/migrate/testdata/severity_01.yml | 13 + .../migrate/testdata/severity_02.golden.yml | 3 + .../internal/migrate/testdata/severity_02.yml | 9 + .../testdata/unknown-fields.golden.yml | 11 + .../migrate/testdata/unknown-fields.yml | 2 + 302 files changed, 6890 insertions(+) create mode 100644 pkg/commands/internal/migrate/testdata/empty.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/empty.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_01_a.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_01_a.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_01_b.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_01_b.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_02_a.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_02_a.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_02_b.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_02_b.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_04_a.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_04_a.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_04_b.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_04_b.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_05_a.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_05_a.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_05_b.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_05_b.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_05_c.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_05_c.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_06_a.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_06_a.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_06_b.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_06_b.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_06_c.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_06_c.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_06_d.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_06_d.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_06_e.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_06_e.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_06_f.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_06_f.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_06_g.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_06_g.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_07.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_07.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_08_a.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_08_a.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_08_b.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_08_b.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_09_a.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_09_a.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_09_b.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_09_b.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_asasalint.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_asasalint.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_bidichk.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_bidichk.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_copyloopvar.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_copyloopvar.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_custom.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_custom.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_cyclop.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_cyclop.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_decorder.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_decorder.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_depguard.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_depguard.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_dogsled.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_dogsled.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_dupl.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_dupl.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_dupword.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_dupword.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_errcheck.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_errcheck.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_errchkjson.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_errchkjson.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_errorlint.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_errorlint.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_exhaustive.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_exhaustive.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_exhaustruct.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_exhaustruct.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_fatcontext.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_fatcontext.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_forbidigo.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_forbidigo.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_funlen.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_funlen.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gci.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gci.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_ginkgolinter.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_ginkgolinter.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gochecksumtype.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gochecksumtype.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gocognit.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gocognit.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_goconst.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_goconst.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gocritic.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gocyclo.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gocyclo.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_godot.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_godot.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_godox.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_godox.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gofmt.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gofmt.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gofumpt.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gofumpt.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_goheader.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_goheader.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_goimports.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_goimports.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gomoddirectives.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gomoddirectives.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gomodguard.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gomodguard.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gosec.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gosec.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gosimple.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gosimple.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gosmopolitan.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_gosmopolitan.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_govet.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_govet.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_grouper.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_grouper.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_iface.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_iface.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_importas.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_importas.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_inamedparam.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_inamedparam.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_interfacebloat.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_interfacebloat.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_ireturn.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_ireturn.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_lll.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_lll.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_loggercheck.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_loggercheck.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_maintidx.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_maintidx.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_makezero.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_makezero.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_misspell.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_misspell.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_mnd.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_mnd.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_musttag.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_musttag.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_nakedret.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_nakedret.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_nestif.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_nestif.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_nilnil.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_nilnil.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_nlreturn.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_nlreturn.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_nolintlint.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_nolintlint.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_nonamedreturns.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_nonamedreturns.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_paralleltest.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_paralleltest.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_perfsprint.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_perfsprint.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_prealloc.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_prealloc.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_predeclared.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_predeclared.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_promlinter.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_promlinter.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_protogetter.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_protogetter.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_reassign.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_reassign.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_recvcheck.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_recvcheck.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_revive.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_revive.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_rowserrcheck.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_rowserrcheck.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_sloglint.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_sloglint.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_spancheck.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_spancheck.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_staticcheck.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_staticcheck.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_stylecheck.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_stylecheck.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_tagalign.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_tagalign.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_tagliatelle.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_tagliatelle.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_tenv.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_tenv.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_testifylint.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_testifylint.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_testpackage.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_testpackage.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_thelper.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_thelper.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_unconvert.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_unconvert.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_unparam.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_unparam.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_unused.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_unused.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_usestdlibvars.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_usestdlibvars.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_usetesting.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_usetesting.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_varnamelen.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_varnamelen.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_whitespace.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_whitespace.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_wrapcheck.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_wrapcheck.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_wsl.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_wsl.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_01.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_01.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_02.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_02.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_03.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_03.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_04.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_04.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_05.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_05.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_06.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_06.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_07.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_07.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_08.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_08.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_09.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_09.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_10.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_10.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_a.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_a.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_b.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_b.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_c.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_c.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_d.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_d.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_f.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_f.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_g.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_g.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_h.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_h.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_i.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_i.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_j.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_j.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_k.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_k.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_l.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_l.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_m.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_m.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_o.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_o.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_p.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_01_p.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_02.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_02.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_03.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_03.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_04.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/output_04.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_01.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_01.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_02_a.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_02_a.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_02_b.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_02_b.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_03_a.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_03_a.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_03_b.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_03_b.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_04_a.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_04_a.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_04_b.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_04_b.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_05.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_05.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_06.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_06.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_07.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_07.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_08.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_08.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_09_a.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_09_a.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_09_b.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_09_b.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_10.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/run_10.yml create mode 100644 pkg/commands/internal/migrate/testdata/severity_01.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/severity_01.yml create mode 100644 pkg/commands/internal/migrate/testdata/severity_02.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/severity_02.yml create mode 100644 pkg/commands/internal/migrate/testdata/unknown-fields.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/unknown-fields.yml diff --git a/pkg/commands/internal/migrate/testdata/empty.golden.yml b/pkg/commands/internal/migrate/testdata/empty.golden.yml new file mode 100644 index 000000000000..c467aae6ab1e --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/empty.golden.yml @@ -0,0 +1,11 @@ +version: "2" +linters: + exclusions: + generated: lax + paths: + - third_party$ + - builtin$ + - examples$ +formatters: + exclusions: + generated: lax diff --git a/pkg/commands/internal/migrate/testdata/empty.yml b/pkg/commands/internal/migrate/testdata/empty.yml new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/pkg/commands/internal/migrate/testdata/issues_01_a.golden.yml b/pkg/commands/internal/migrate/testdata/issues_01_a.golden.yml new file mode 100644 index 000000000000..fa86b75d3a00 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_01_a.golden.yml @@ -0,0 +1,8 @@ +version: "2" +linters: + exclusions: + paths: + - .*\.my\.go$ + - lib/bad.go + - src/external_libs + - autogenerated_by_my_lib diff --git a/pkg/commands/internal/migrate/testdata/issues_01_a.yml b/pkg/commands/internal/migrate/testdata/issues_01_a.yml new file mode 100644 index 000000000000..c4bbd5a572db --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_01_a.yml @@ -0,0 +1,12 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-dirs: + - src/external_libs + - autogenerated_by_my_lib + exclude-files: + - ".*\\.my\\.go$" + - lib/bad.go diff --git a/pkg/commands/internal/migrate/testdata/issues_01_b.golden.yml b/pkg/commands/internal/migrate/testdata/issues_01_b.golden.yml new file mode 100644 index 000000000000..51259f761a95 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_01_b.golden.yml @@ -0,0 +1,17 @@ +version: "2" +linters: + exclusions: + paths: + - .*\.my\.go$ + - lib/bad.go + - src/external_libs + - autogenerated_by_my_lib +formatters: + enable: + - gofmt + exclusions: + paths: + - .*\.my\.go$ + - lib/bad.go + - src/external_libs + - autogenerated_by_my_lib diff --git a/pkg/commands/internal/migrate/testdata/issues_01_b.yml b/pkg/commands/internal/migrate/testdata/issues_01_b.yml new file mode 100644 index 000000000000..6c12bbd21238 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_01_b.yml @@ -0,0 +1,16 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-dirs: + - src/external_libs + - autogenerated_by_my_lib + exclude-files: + - ".*\\.my\\.go$" + - lib/bad.go + +linters: + enable: + - gofmt diff --git a/pkg/commands/internal/migrate/testdata/issues_02_a.golden.yml b/pkg/commands/internal/migrate/testdata/issues_02_a.golden.yml new file mode 100644 index 000000000000..8a6c4ca0ca54 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_02_a.golden.yml @@ -0,0 +1,6 @@ +version: "2" +linters: + exclusions: + rules: + - path: (.+)\.go$ + text: abcdef diff --git a/pkg/commands/internal/migrate/testdata/issues_02_a.yml b/pkg/commands/internal/migrate/testdata/issues_02_a.yml new file mode 100644 index 000000000000..8818e353878b --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_02_a.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-case-sensitive: false + exclude: + - abcdef diff --git a/pkg/commands/internal/migrate/testdata/issues_02_b.golden.yml b/pkg/commands/internal/migrate/testdata/issues_02_b.golden.yml new file mode 100644 index 000000000000..ce913a1ef188 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_02_b.golden.yml @@ -0,0 +1,6 @@ +version: "2" +linters: + exclusions: + rules: + - path: (.+)\.go$ + text: (?i)abcdef diff --git a/pkg/commands/internal/migrate/testdata/issues_02_b.yml b/pkg/commands/internal/migrate/testdata/issues_02_b.yml new file mode 100644 index 000000000000..97e5f7f8914d --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_02_b.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-case-sensitive: true + exclude: + - abcdef diff --git a/pkg/commands/internal/migrate/testdata/issues_04_a.golden.yml b/pkg/commands/internal/migrate/testdata/issues_04_a.golden.yml new file mode 100644 index 000000000000..e0536ce14fe3 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_04_a.golden.yml @@ -0,0 +1,32 @@ +version: "2" +linters: + exclusions: + rules: + - linters: + - dupl + - errcheck + - gocyclo + - gosec + path: _test\.go + - linters: + - staticcheck + path-except: _test\.go + - linters: + - gosec + path: internal/hmac/ + text: weak cryptographic primitive + - linters: + - staticcheck + text: 'SA9003:' + - linters: + - staticcheck + text: 'ST1006:' + - linters: + - staticcheck + text: 'S1033:' + - linters: + - lll + source: '^//go:generate ' + - linters: + - err113 + source: foo diff --git a/pkg/commands/internal/migrate/testdata/issues_04_a.yml b/pkg/commands/internal/migrate/testdata/issues_04_a.yml new file mode 100644 index 000000000000..d412d8c6763c --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_04_a.yml @@ -0,0 +1,45 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-case-sensitive: false + exclude-rules: + - path: _test\.go + linters: + - gocyclo + - errcheck + - dupl + - gosec + + - path-except: _test\.go + linters: + - staticcheck + - stylecheck + - gosimple + + - path: internal/hmac/ + text: "weak cryptographic primitive" + linters: + - gosec + + - linters: + - staticcheck + text: "SA9003:" + + - linters: + - stylecheck + text: "ST1006:" + + - linters: + - gosimple + text: "S1033:" + + - linters: + - lll + source: "^//go:generate " + + - linters: + - goerr113 + source: "foo" diff --git a/pkg/commands/internal/migrate/testdata/issues_04_b.golden.yml b/pkg/commands/internal/migrate/testdata/issues_04_b.golden.yml new file mode 100644 index 000000000000..40d6d4967a45 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_04_b.golden.yml @@ -0,0 +1,32 @@ +version: "2" +linters: + exclusions: + rules: + - linters: + - dupl + - errcheck + - gocyclo + - gosec + path: _test\.go + - linters: + - staticcheck + path-except: _test\.go + - linters: + - gosec + path: internal/hmac/ + text: (?i)weak cryptographic primitive + - linters: + - staticcheck + text: '(?i)SA9003:' + - linters: + - staticcheck + text: '(?i)ST1006:' + - linters: + - staticcheck + text: '(?i)S1033:' + - linters: + - lll + source: '(?i)^//go:generate ' + - linters: + - err113 + source: (?i)foo diff --git a/pkg/commands/internal/migrate/testdata/issues_04_b.yml b/pkg/commands/internal/migrate/testdata/issues_04_b.yml new file mode 100644 index 000000000000..34e66b643b61 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_04_b.yml @@ -0,0 +1,45 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-case-sensitive: true + exclude-rules: + - path: _test\.go + linters: + - gocyclo + - errcheck + - dupl + - gosec + + - path-except: _test\.go + linters: + - staticcheck + - stylecheck + - gosimple + + - path: internal/hmac/ + text: "weak cryptographic primitive" + linters: + - gosec + + - linters: + - staticcheck + text: "SA9003:" + + - linters: + - stylecheck + text: "ST1006:" + + - linters: + - gosimple + text: "S1033:" + + - linters: + - lll + source: "^//go:generate " + + - linters: + - goerr113 + source: "foo" diff --git a/pkg/commands/internal/migrate/testdata/issues_05_a.golden.yml b/pkg/commands/internal/migrate/testdata/issues_05_a.golden.yml new file mode 100644 index 000000000000..26b4afdb1e3a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_05_a.golden.yml @@ -0,0 +1 @@ +version: "2" diff --git a/pkg/commands/internal/migrate/testdata/issues_05_a.yml b/pkg/commands/internal/migrate/testdata/issues_05_a.yml new file mode 100644 index 000000000000..0a53c34c3421 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_05_a.yml @@ -0,0 +1,5 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-generated: strict diff --git a/pkg/commands/internal/migrate/testdata/issues_05_b.golden.yml b/pkg/commands/internal/migrate/testdata/issues_05_b.golden.yml new file mode 100644 index 000000000000..cee0ce09d5ff --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_05_b.golden.yml @@ -0,0 +1,7 @@ +version: "2" +linters: + exclusions: + generated: disable +formatters: + exclusions: + generated: disable diff --git a/pkg/commands/internal/migrate/testdata/issues_05_b.yml b/pkg/commands/internal/migrate/testdata/issues_05_b.yml new file mode 100644 index 000000000000..ccc0e369f59a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_05_b.yml @@ -0,0 +1,5 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-generated: disable diff --git a/pkg/commands/internal/migrate/testdata/issues_05_c.golden.yml b/pkg/commands/internal/migrate/testdata/issues_05_c.golden.yml new file mode 100644 index 000000000000..6311bf640f4e --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_05_c.golden.yml @@ -0,0 +1,7 @@ +version: "2" +linters: + exclusions: + generated: lax +formatters: + exclusions: + generated: lax diff --git a/pkg/commands/internal/migrate/testdata/issues_05_c.yml b/pkg/commands/internal/migrate/testdata/issues_05_c.yml new file mode 100644 index 000000000000..6bf73ab6b257 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_05_c.yml @@ -0,0 +1,6 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-generated: lax + diff --git a/pkg/commands/internal/migrate/testdata/issues_06_a.golden.yml b/pkg/commands/internal/migrate/testdata/issues_06_a.golden.yml new file mode 100644 index 000000000000..26b4afdb1e3a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_06_a.golden.yml @@ -0,0 +1 @@ +version: "2" diff --git a/pkg/commands/internal/migrate/testdata/issues_06_a.yml b/pkg/commands/internal/migrate/testdata/issues_06_a.yml new file mode 100644 index 000000000000..a0a5729e555d --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_06_a.yml @@ -0,0 +1,8 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-use-default: false + diff --git a/pkg/commands/internal/migrate/testdata/issues_06_b.golden.yml b/pkg/commands/internal/migrate/testdata/issues_06_b.golden.yml new file mode 100644 index 000000000000..94d007dc75ef --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_06_b.golden.yml @@ -0,0 +1,8 @@ +version: "2" +linters: + exclusions: + presets: + - comments + - common-false-positives + - legacy + - std-error-handling diff --git a/pkg/commands/internal/migrate/testdata/issues_06_b.yml b/pkg/commands/internal/migrate/testdata/issues_06_b.yml new file mode 100644 index 000000000000..ab1278c33880 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_06_b.yml @@ -0,0 +1,8 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-use-default: true + diff --git a/pkg/commands/internal/migrate/testdata/issues_06_c.golden.yml b/pkg/commands/internal/migrate/testdata/issues_06_c.golden.yml new file mode 100644 index 000000000000..26b4afdb1e3a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_06_c.golden.yml @@ -0,0 +1 @@ +version: "2" diff --git a/pkg/commands/internal/migrate/testdata/issues_06_c.yml b/pkg/commands/internal/migrate/testdata/issues_06_c.yml new file mode 100644 index 000000000000..7c3480af1411 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_06_c.yml @@ -0,0 +1,24 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-use-default: true + # all + include: + - EXC0001 + - EXC0002 + - EXC0003 + - EXC0004 + - EXC0005 + - EXC0006 + - EXC0007 + - EXC0008 + - EXC0009 + - EXC0010 + - EXC0011 + - EXC0012 + - EXC0013 + - EXC0014 + - EXC0015 diff --git a/pkg/commands/internal/migrate/testdata/issues_06_d.golden.yml b/pkg/commands/internal/migrate/testdata/issues_06_d.golden.yml new file mode 100644 index 000000000000..b8a8f5d5968a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_06_d.golden.yml @@ -0,0 +1,7 @@ +version: "2" +linters: + exclusions: + presets: + - common-false-positives + - legacy + - std-error-handling diff --git a/pkg/commands/internal/migrate/testdata/issues_06_d.yml b/pkg/commands/internal/migrate/testdata/issues_06_d.yml new file mode 100644 index 000000000000..9cf6da3b1bee --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_06_d.yml @@ -0,0 +1,11 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-use-default: true + # Related to comments + include: + - EXC0014 + - EXC0015 diff --git a/pkg/commands/internal/migrate/testdata/issues_06_e.golden.yml b/pkg/commands/internal/migrate/testdata/issues_06_e.golden.yml new file mode 100644 index 000000000000..2c1012e31d59 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_06_e.golden.yml @@ -0,0 +1,7 @@ +version: "2" +linters: + exclusions: + presets: + - comments + - common-false-positives + - std-error-handling diff --git a/pkg/commands/internal/migrate/testdata/issues_06_e.yml b/pkg/commands/internal/migrate/testdata/issues_06_e.yml new file mode 100644 index 000000000000..b7efc196be66 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_06_e.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-use-default: true + # Related to legacy + include: + - EXC0005 diff --git a/pkg/commands/internal/migrate/testdata/issues_06_f.golden.yml b/pkg/commands/internal/migrate/testdata/issues_06_f.golden.yml new file mode 100644 index 000000000000..f4cccdc57f2a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_06_f.golden.yml @@ -0,0 +1,7 @@ +version: "2" +linters: + exclusions: + presets: + - comments + - common-false-positives + - legacy diff --git a/pkg/commands/internal/migrate/testdata/issues_06_f.yml b/pkg/commands/internal/migrate/testdata/issues_06_f.yml new file mode 100644 index 000000000000..d8da54941afd --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_06_f.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-use-default: true + # Related to std-error-handling + include: + - EXC0001 diff --git a/pkg/commands/internal/migrate/testdata/issues_06_g.golden.yml b/pkg/commands/internal/migrate/testdata/issues_06_g.golden.yml new file mode 100644 index 000000000000..a158cf917b1e --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_06_g.golden.yml @@ -0,0 +1,7 @@ +version: "2" +linters: + exclusions: + presets: + - comments + - legacy + - std-error-handling diff --git a/pkg/commands/internal/migrate/testdata/issues_06_g.yml b/pkg/commands/internal/migrate/testdata/issues_06_g.yml new file mode 100644 index 000000000000..9a4477568633 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_06_g.yml @@ -0,0 +1,11 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-use-default: true + # Related to common-false-positives + include: + - EXC0006 + - EXC0007 diff --git a/pkg/commands/internal/migrate/testdata/issues_07.golden.yml b/pkg/commands/internal/migrate/testdata/issues_07.golden.yml new file mode 100644 index 000000000000..47b381a5c8ff --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_07.golden.yml @@ -0,0 +1,7 @@ +version: "2" +linters: + exclusions: + paths: + - third_party$ + - builtin$ + - examples$ diff --git a/pkg/commands/internal/migrate/testdata/issues_07.yml b/pkg/commands/internal/migrate/testdata/issues_07.yml new file mode 100644 index 000000000000..bb4db4c7e89a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_07.yml @@ -0,0 +1,5 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + + exclude-dirs-use-default: true diff --git a/pkg/commands/internal/migrate/testdata/issues_08_a.golden.yml b/pkg/commands/internal/migrate/testdata/issues_08_a.golden.yml new file mode 100644 index 000000000000..4c02e020fe5e --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_08_a.golden.yml @@ -0,0 +1,5 @@ +version: "2" +issues: + max-issues-per-linter: 0 + max-same-issues: 0 + uniq-by-line: true diff --git a/pkg/commands/internal/migrate/testdata/issues_08_a.yml b/pkg/commands/internal/migrate/testdata/issues_08_a.yml new file mode 100644 index 000000000000..8335b6c1e28a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_08_a.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + max-issues-per-linter: 0 + max-same-issues: 0 + uniq-by-line: true diff --git a/pkg/commands/internal/migrate/testdata/issues_08_b.golden.yml b/pkg/commands/internal/migrate/testdata/issues_08_b.golden.yml new file mode 100644 index 000000000000..86f88f7d71bf --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_08_b.golden.yml @@ -0,0 +1,4 @@ +version: "2" +issues: + max-issues-per-linter: 66 + uniq-by-line: false diff --git a/pkg/commands/internal/migrate/testdata/issues_08_b.yml b/pkg/commands/internal/migrate/testdata/issues_08_b.yml new file mode 100644 index 000000000000..c35b42fc8709 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_08_b.yml @@ -0,0 +1,8 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + max-issues-per-linter: 66 + uniq-by-line: false diff --git a/pkg/commands/internal/migrate/testdata/issues_09_a.golden.yml b/pkg/commands/internal/migrate/testdata/issues_09_a.golden.yml new file mode 100644 index 000000000000..f2490438953c --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_09_a.golden.yml @@ -0,0 +1,8 @@ +version: "2" +issues: + new-from-rev: HEAD + new-from-merge-base: main + new-from-patch: path/to/patch/file + whole-files: true + new: true + fix: true diff --git a/pkg/commands/internal/migrate/testdata/issues_09_a.yml b/pkg/commands/internal/migrate/testdata/issues_09_a.yml new file mode 100644 index 000000000000..9b2e0dbcd47f --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_09_a.yml @@ -0,0 +1,12 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + new: true + new-from-merge-base: main + new-from-rev: HEAD + new-from-patch: path/to/patch/file + whole-files: true + fix: true diff --git a/pkg/commands/internal/migrate/testdata/issues_09_b.golden.yml b/pkg/commands/internal/migrate/testdata/issues_09_b.golden.yml new file mode 100644 index 000000000000..f5422097b369 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_09_b.golden.yml @@ -0,0 +1,8 @@ +version: "2" +issues: + new-from-rev: "" + new-from-merge-base: "" + new-from-patch: "" + whole-files: false + new: false + fix: false diff --git a/pkg/commands/internal/migrate/testdata/issues_09_b.yml b/pkg/commands/internal/migrate/testdata/issues_09_b.yml new file mode 100644 index 000000000000..119aef20847c --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_09_b.yml @@ -0,0 +1,12 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + new: false + new-from-merge-base: '' + new-from-rev: '' + new-from-patch: '' + whole-files: false + fix: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_asasalint.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_asasalint.golden.yml new file mode 100644 index 000000000000..cfe1da194828 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_asasalint.golden.yml @@ -0,0 +1,13 @@ +version: "2" +linters: + settings: + asasalint: + exclude: + - Append + - \.Wrapf + use-builtin-exclusions: false + exclusions: + rules: + - linters: + - asasalint + path: (.+)_test\.go diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_asasalint.yml b/pkg/commands/internal/migrate/testdata/linters-settings_asasalint.yml new file mode 100644 index 000000000000..e83095cb50d0 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_asasalint.yml @@ -0,0 +1,13 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + asasalint: + exclude: + - Append + - \.Wrapf + use-builtin-exclusions: false + ignore-test: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_bidichk.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_bidichk.golden.yml new file mode 100644 index 000000000000..3283f461ae1d --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_bidichk.golden.yml @@ -0,0 +1,13 @@ +version: "2" +linters: + settings: + bidichk: + left-to-right-embedding: true + right-to-left-embedding: false + pop-directional-formatting: false + left-to-right-override: false + right-to-left-override: false + left-to-right-isolate: false + right-to-left-isolate: false + first-strong-isolate: false + pop-directional-isolate: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_bidichk.yml b/pkg/commands/internal/migrate/testdata/linters-settings_bidichk.yml new file mode 100644 index 000000000000..11d53b2ca6bc --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_bidichk.yml @@ -0,0 +1,17 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + bidichk: + left-to-right-embedding: true + right-to-left-embedding: false + pop-directional-formatting: false + left-to-right-override: false + right-to-left-override: false + left-to-right-isolate: false + right-to-left-isolate: false + first-strong-isolate: false + pop-directional-isolate: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_copyloopvar.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_copyloopvar.golden.yml new file mode 100644 index 000000000000..85e8883c6991 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_copyloopvar.golden.yml @@ -0,0 +1,5 @@ +version: "2" +linters: + settings: + copyloopvar: + check-alias: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_copyloopvar.yml b/pkg/commands/internal/migrate/testdata/linters-settings_copyloopvar.yml new file mode 100644 index 000000000000..f761c15cab65 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_copyloopvar.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + copyloopvar: + check-alias: true + diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_custom.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_custom.golden.yml new file mode 100644 index 000000000000..a8bffb497b3c --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_custom.golden.yml @@ -0,0 +1,11 @@ +version: "2" +linters: + settings: + custom: + example: + type: module + path: /path/to/example.so + description: This is an example usage of a plugin linter. + original-url: github.com/golangci/example-linter + settings: + foo: bar diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_custom.yml b/pkg/commands/internal/migrate/testdata/linters-settings_custom.yml new file mode 100644 index 000000000000..17c83d92a4a2 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_custom.yml @@ -0,0 +1,15 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + custom: + example: + type: module + path: /path/to/example.so + description: This is an example usage of a plugin linter. + original-url: github.com/golangci/example-linter + settings: + foo: bar diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_cyclop.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_cyclop.golden.yml new file mode 100644 index 000000000000..c2a3d2e838e1 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_cyclop.golden.yml @@ -0,0 +1,11 @@ +version: "2" +linters: + settings: + cyclop: + max-complexity: 10 + package-average: 0.5 + exclusions: + rules: + - linters: + - cyclop + path: (.+)_test\.go diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_cyclop.yml b/pkg/commands/internal/migrate/testdata/linters-settings_cyclop.yml new file mode 100644 index 000000000000..3be559180f26 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_cyclop.yml @@ -0,0 +1,11 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + cyclop: + max-complexity: 10 + package-average: 0.5 + skip-tests: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_decorder.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_decorder.golden.yml new file mode 100644 index 000000000000..f4881fedeb58 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_decorder.golden.yml @@ -0,0 +1,16 @@ +version: "2" +linters: + settings: + decorder: + dec-order: + - type + - const + - var + - func + ignore-underscore-vars: false + disable-dec-num-check: false + disable-type-dec-num-check: false + disable-const-dec-num-check: false + disable-var-dec-num-check: false + disable-dec-order-check: false + disable-init-func-first-check: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_decorder.yml b/pkg/commands/internal/migrate/testdata/linters-settings_decorder.yml new file mode 100644 index 000000000000..f5d0ef7f4dbb --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_decorder.yml @@ -0,0 +1,20 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + decorder: + dec-order: + - type + - const + - var + - func + ignore-underscore-vars: false + disable-dec-order-check: false + disable-init-func-first-check: false + disable-dec-num-check: false + disable-type-dec-num-check: false + disable-const-dec-num-check: false + disable-var-dec-num-check: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_depguard.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_depguard.golden.yml new file mode 100644 index 000000000000..168f02012f3f --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_depguard.golden.yml @@ -0,0 +1,19 @@ +version: "2" +linters: + settings: + depguard: + rules: + main: + list-mode: lax + files: + - '!**/*_a _file.go' + allow: + - $gostd + - github.com/OpenPeeDeeP + deny: + - pkg: math/rand$ + desc: use math/rand/v2 + - pkg: github.com/sirupsen/logrus + desc: not allowed + - pkg: github.com/pkg/errors + desc: Should be replaced by standard lib errors package diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_depguard.yml b/pkg/commands/internal/migrate/testdata/linters-settings_depguard.yml new file mode 100644 index 000000000000..beab87e5fec8 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_depguard.yml @@ -0,0 +1,23 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + depguard: + rules: + main: + list-mode: lax + files: + - "!**/*_a _file.go" + allow: + - $gostd + - github.com/OpenPeeDeeP + deny: + - pkg: "math/rand$" + desc: use math/rand/v2 + - pkg: "github.com/sirupsen/logrus" + desc: not allowed + - pkg: "github.com/pkg/errors" + desc: Should be replaced by standard lib errors package diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_dogsled.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_dogsled.golden.yml new file mode 100644 index 000000000000..c75baa803659 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_dogsled.golden.yml @@ -0,0 +1,5 @@ +version: "2" +linters: + settings: + dogsled: + max-blank-identifiers: 3 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_dogsled.yml b/pkg/commands/internal/migrate/testdata/linters-settings_dogsled.yml new file mode 100644 index 000000000000..4a958b4081d8 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_dogsled.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + dogsled: + max-blank-identifiers: 3 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_dupl.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_dupl.golden.yml new file mode 100644 index 000000000000..db94665fb25d --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_dupl.golden.yml @@ -0,0 +1,5 @@ +version: "2" +linters: + settings: + dupl: + threshold: 100 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_dupl.yml b/pkg/commands/internal/migrate/testdata/linters-settings_dupl.yml new file mode 100644 index 000000000000..9e8ef55a0094 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_dupl.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + dupl: + threshold: 100 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_dupword.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_dupword.golden.yml new file mode 100644 index 000000000000..3c80ae3c409d --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_dupword.golden.yml @@ -0,0 +1,10 @@ +version: "2" +linters: + settings: + dupword: + keywords: + - the + - and + - a + ignore: + - 0C0C diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_dupword.yml b/pkg/commands/internal/migrate/testdata/linters-settings_dupword.yml new file mode 100644 index 000000000000..ad3818ec1fd4 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_dupword.yml @@ -0,0 +1,14 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + dupword: + keywords: + - "the" + - "and" + - "a" + ignore: + - "0C0C" diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_errcheck.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_errcheck.golden.yml new file mode 100644 index 000000000000..8e2dbdc8326d --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_errcheck.golden.yml @@ -0,0 +1,11 @@ +version: "2" +linters: + settings: + errcheck: + disable-default-exclusions: true + check-type-assertions: true + check-blank: true + exclude-functions: + - io/ioutil.ReadFile + - io.Copy(*bytes.Buffer) + - io.Copy(os.Stdout) diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_errcheck.yml b/pkg/commands/internal/migrate/testdata/linters-settings_errcheck.yml new file mode 100644 index 000000000000..2e313a570407 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_errcheck.yml @@ -0,0 +1,15 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + errcheck: + check-type-assertions: true + check-blank: true + disable-default-exclusions: true + exclude-functions: + - io/ioutil.ReadFile + - io.Copy(*bytes.Buffer) + - io.Copy(os.Stdout) diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_errchkjson.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_errchkjson.golden.yml new file mode 100644 index 000000000000..c04921dc9c61 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_errchkjson.golden.yml @@ -0,0 +1,6 @@ +version: "2" +linters: + settings: + errchkjson: + check-error-free-encoding: true + report-no-exported: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_errchkjson.yml b/pkg/commands/internal/migrate/testdata/linters-settings_errchkjson.yml new file mode 100644 index 000000000000..4553e2d76211 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_errchkjson.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + errchkjson: + check-error-free-encoding: true + report-no-exported: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_errorlint.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_errorlint.golden.yml new file mode 100644 index 000000000000..eccd711c22c5 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_errorlint.golden.yml @@ -0,0 +1,14 @@ +version: "2" +linters: + settings: + errorlint: + errorf: false + errorf-multi: false + asserts: false + comparison: false + allowed-errors: + - err: io.EOF + fun: example.com/pkg.Read + allowed-errors-wildcard: + - err: example.com/pkg.ErrMagic + fun: example.com/pkg.Magic diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_errorlint.yml b/pkg/commands/internal/migrate/testdata/linters-settings_errorlint.yml new file mode 100644 index 000000000000..a265301b84e7 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_errorlint.yml @@ -0,0 +1,18 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + errorlint: + errorf: false + errorf-multi: false + asserts: false + comparison: false + allowed-errors: + - err: "io.EOF" + fun: "example.com/pkg.Read" + allowed-errors-wildcard: + - err: "example.com/pkg.ErrMagic" + fun: "example.com/pkg.Magic" diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_exhaustive.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_exhaustive.golden.yml new file mode 100644 index 000000000000..3501def2a73a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_exhaustive.golden.yml @@ -0,0 +1,14 @@ +version: "2" +linters: + settings: + exhaustive: + check: + - switch + - map + default-signifies-exhaustive: true + ignore-enum-members: Example.+ + ignore-enum-types: Example.+ + package-scope-only: true + explicit-exhaustive-map: true + explicit-exhaustive-switch: true + default-case-required: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_exhaustive.yml b/pkg/commands/internal/migrate/testdata/linters-settings_exhaustive.yml new file mode 100644 index 000000000000..4a05693a1c4c --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_exhaustive.yml @@ -0,0 +1,19 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + exhaustive: + check: + - switch + - map + check-generated: true + default-signifies-exhaustive: true + ignore-enum-members: "Example.+" + ignore-enum-types: "Example.+" + package-scope-only: true + explicit-exhaustive-switch: true + explicit-exhaustive-map: true + default-case-required: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_exhaustruct.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_exhaustruct.golden.yml new file mode 100644 index 000000000000..d8d052435696 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_exhaustruct.golden.yml @@ -0,0 +1,9 @@ +version: "2" +linters: + settings: + exhaustruct: + include: + - .+\.Test + - example\.com/package\.ExampleStruct[\d]{1,2} + exclude: + - .+/cobra\.Command$ diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_exhaustruct.yml b/pkg/commands/internal/migrate/testdata/linters-settings_exhaustruct.yml new file mode 100644 index 000000000000..caa1c48caa3a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_exhaustruct.yml @@ -0,0 +1,13 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + exhaustruct: + include: + - '.+\.Test' + - 'example\.com/package\.ExampleStruct[\d]{1,2}' + exclude: + - '.+/cobra\.Command$' diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_fatcontext.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_fatcontext.golden.yml new file mode 100644 index 000000000000..9c29f6183468 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_fatcontext.golden.yml @@ -0,0 +1,5 @@ +version: "2" +linters: + settings: + fatcontext: + check-struct-pointers: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_fatcontext.yml b/pkg/commands/internal/migrate/testdata/linters-settings_fatcontext.yml new file mode 100644 index 000000000000..93d808a6ccc2 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_fatcontext.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + fatcontext: + check-struct-pointers: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_forbidigo.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_forbidigo.golden.yml new file mode 100644 index 000000000000..24813752807b --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_forbidigo.golden.yml @@ -0,0 +1,14 @@ +version: "2" +linters: + settings: + forbidigo: + forbid: + - pattern: ^print(ln)?$ + - pattern: ^fmt\.Print.*$ + msg: Do not commit print statements. + - pattern: fmt\.Print.*(# Do not commit print statements\.)? + - pattern: ^spew\.(ConfigState\.)?Dump$ + - pattern: ^v1.Dump$ + pkg: ^example.com/pkg/api/v1$ + exclude-godoc-examples: false + analyze-types: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_forbidigo.yml b/pkg/commands/internal/migrate/testdata/linters-settings_forbidigo.yml new file mode 100644 index 000000000000..6dcf5104afe0 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_forbidigo.yml @@ -0,0 +1,18 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + forbidigo: + forbid: + - ^print(ln)?$ + - p: ^fmt\.Print.*$ + msg: Do not commit print statements. + - 'fmt\.Print.*(# Do not commit print statements\.)?' + - ^spew\.(ConfigState\.)?Dump$ + - p: ^v1.Dump$ + pkg: ^example.com/pkg/api/v1$ + exclude-godoc-examples: false + analyze-types: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_funlen.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_funlen.golden.yml new file mode 100644 index 000000000000..68f6f15fb907 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_funlen.golden.yml @@ -0,0 +1,7 @@ +version: "2" +linters: + settings: + funlen: + lines: -1 + statements: -1 + ignore-comments: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_funlen.yml b/pkg/commands/internal/migrate/testdata/linters-settings_funlen.yml new file mode 100644 index 000000000000..19e5b38c7fa2 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_funlen.yml @@ -0,0 +1,11 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + funlen: + lines: -1 + statements: -1 + ignore-comments: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gci.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gci.golden.yml new file mode 100644 index 000000000000..b419c5835ae7 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gci.golden.yml @@ -0,0 +1,16 @@ +version: "2" +formatters: + settings: + gci: + sections: + - standard + - default + - prefix(github.com/org/project) + - blank + - dot + - alias + - localmodule + no-inline-comments: true + no-prefix-comments: true + custom-order: true + no-lex-order: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gci.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gci.yml new file mode 100644 index 000000000000..7ca1f98de659 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gci.yml @@ -0,0 +1,21 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + gci: + sections: + - standard + - default + - prefix(github.com/org/project) + - blank + - dot + - alias + - localmodule + no-inline-comments: true + no-prefix-comments: true + skip-generated: false + custom-order: true + no-lex-order: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_ginkgolinter.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_ginkgolinter.golden.yml new file mode 100644 index 000000000000..f4c591a3b24d --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_ginkgolinter.golden.yml @@ -0,0 +1,16 @@ +version: "2" +linters: + settings: + ginkgolinter: + suppress-len-assertion: true + suppress-nil-assertion: true + suppress-err-assertion: true + suppress-compare-assertion: true + suppress-async-assertion: true + suppress-type-compare-assertion: true + forbid-focus-container: true + allow-havelen-zero: true + force-expect-to: true + validate-async-intervals: true + forbid-spec-pollution: true + force-succeed: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_ginkgolinter.yml b/pkg/commands/internal/migrate/testdata/linters-settings_ginkgolinter.yml new file mode 100644 index 000000000000..422926ba05e7 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_ginkgolinter.yml @@ -0,0 +1,20 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + ginkgolinter: + suppress-len-assertion: true + suppress-nil-assertion: true + suppress-err-assertion: true + suppress-compare-assertion: true + suppress-async-assertion: true + suppress-type-compare-assertion: true + forbid-focus-container: true + allow-havelen-zero: true + force-expect-to: true + validate-async-intervals: true + forbid-spec-pollution: true + force-succeed: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gochecksumtype.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gochecksumtype.golden.yml new file mode 100644 index 000000000000..37601424796f --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gochecksumtype.golden.yml @@ -0,0 +1,6 @@ +version: "2" +linters: + settings: + gochecksumtype: + default-signifies-exhaustive: false + include-shared-interfaces: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gochecksumtype.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gochecksumtype.yml new file mode 100644 index 000000000000..abf53dfc0f5a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gochecksumtype.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + gochecksumtype: + default-signifies-exhaustive: false + include-shared-interfaces: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gocognit.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gocognit.golden.yml new file mode 100644 index 000000000000..a14fe93fc4ae --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gocognit.golden.yml @@ -0,0 +1,5 @@ +version: "2" +linters: + settings: + gocognit: + min-complexity: 10 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gocognit.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gocognit.yml new file mode 100644 index 000000000000..aa52abc3f60b --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gocognit.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + gocognit: + min-complexity: 10 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_goconst.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_goconst.golden.yml new file mode 100644 index 000000000000..5f43c5e799e5 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_goconst.golden.yml @@ -0,0 +1,17 @@ +version: "2" +linters: + settings: + goconst: + ignore-strings: foo.+ + match-constant: false + min-len: 2 + min-occurrences: 2 + numbers: true + min: 2 + max: 2 + ignore-calls: false + exclusions: + rules: + - linters: + - goconst + path: (.+)_test\.go diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_goconst.yml b/pkg/commands/internal/migrate/testdata/linters-settings_goconst.yml new file mode 100644 index 000000000000..178cf6e45165 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_goconst.yml @@ -0,0 +1,17 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + goconst: + min-len: 2 + min-occurrences: 2 + ignore-tests: true + match-constant: false + numbers: true + min: 2 + max: 2 + ignore-calls: false + ignore-strings: 'foo.+' diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml new file mode 100644 index 000000000000..b061ef0b6538 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml @@ -0,0 +1,232 @@ +version: "2" +linters: + settings: + gocritic: + disable-all: true + enabled-checks: + - appendAssign + - appendCombine + - argOrder + - assignOp + - badCall + - badCond + - badLock + - badRegexp + - badSorting + - badSyncOnceFunc + - boolExprSimplify + - builtinShadow + - builtinShadowDecl + - captLocal + - caseOrder + - codegenComment + - commentFormatting + - commentedOutCode + - commentedOutImport + - defaultCaseOrder + - deferInLoop + - deferUnlambda + - deprecatedComment + - docStub + - dupArg + - dupBranchBody + - dupCase + - dupImport + - dupSubExpr + - dynamicFmtString + - elseif + - emptyDecl + - emptyFallthrough + - emptyStringTest + - equalFold + - evalOrder + - exitAfterDefer + - exposedSyncMutex + - externalErrorReassign + - filepathJoin + - flagDeref + - flagName + - hexLiteral + - httpNoBody + - hugeParam + - ifElseChain + - importShadow + - indexAlloc + - initClause + - mapKey + - methodExprCall + - nestingReduce + - newDeref + - nilValReturn + - octalLiteral + - offBy1 + - paramTypeCombine + - preferDecodeRune + - preferFilepathJoin + - preferFprint + - preferStringWriter + - preferWriteByte + - ptrToRefParam + - rangeAppendAll + - rangeExprCopy + - rangeValCopy + - redundantSprint + - regexpMust + - regexpPattern + - regexpSimplify + - returnAfterHttpError + - ruleguard + - singleCaseSwitch + - sliceClear + - sloppyLen + - sloppyReassign + - sloppyTypeAssert + - sortSlice + - sprintfQuotedString + - sqlQuery + - stringConcatSimplify + - stringXbytes + - stringsCompare + - switchTrue + - syncMapLoadAndDelete + - timeExprSimplify + - todoCommentWithoutDetail + - tooManyResultsChecker + - truncateCmp + - typeAssertChain + - typeDefFirst + - typeSwitchVar + - typeUnparen + - uncheckedInlineErr + - underef + - unlabelStmt + - unlambda + - unnamedResult + - unnecessaryBlock + - unnecessaryDefer + - unslice + - valSwap + - weakCond + - whyNoLint + - wrapperFunc + - yodaStyleExpr + enable-all: true + disabled-checks: + - appendAssign + - appendCombine + - argOrder + - assignOp + - badCall + - badCond + - badLock + - badRegexp + - badSorting + - badSyncOnceFunc + - boolExprSimplify + - builtinShadow + - builtinShadowDecl + - captLocal + - caseOrder + - codegenComment + - commentFormatting + - commentedOutCode + - commentedOutImport + - defaultCaseOrder + - deferInLoop + - deferUnlambda + - deprecatedComment + - docStub + - dupArg + - dupBranchBody + - dupCase + - dupImport + - dupSubExpr + - dynamicFmtString + - elseif + - emptyDecl + - emptyFallthrough + - emptyStringTest + - equalFold + - evalOrder + - exitAfterDefer + - exposedSyncMutex + - externalErrorReassign + - filepathJoin + - flagDeref + - flagName + - hexLiteral + - httpNoBody + - hugeParam + - ifElseChain + - importShadow + - indexAlloc + - initClause + - mapKey + - methodExprCall + - nestingReduce + - newDeref + - nilValReturn + - octalLiteral + - offBy1 + - paramTypeCombine + - preferDecodeRune + - preferFilepathJoin + - preferFprint + - preferStringWriter + - preferWriteByte + - ptrToRefParam + - rangeAppendAll + - rangeExprCopy + - rangeValCopy + - redundantSprint + - regexpMust + - regexpPattern + - regexpSimplify + - returnAfterHttpError + - ruleguard + - singleCaseSwitch + - sliceClear + - sloppyLen + - sloppyReassign + - sloppyTypeAssert + - sortSlice + - sprintfQuotedString + - sqlQuery + - stringConcatSimplify + - stringXbytes + - stringsCompare + - switchTrue + - syncMapLoadAndDelete + - timeExprSimplify + - todoCommentWithoutDetail + - tooManyResultsChecker + - truncateCmp + - typeAssertChain + - typeDefFirst + - typeSwitchVar + - typeUnparen + - uncheckedInlineErr + - underef + - unlabelStmt + - unlambda + - unnamedResult + - unnecessaryBlock + - unnecessaryDefer + - unslice + - valSwap + - weakCond + - whyNoLint + - wrapperFunc + - yodaStyleExpr + enabled-tags: + - diagnostic + - style + - performance + - experimental + - opinionated + disabled-tags: + - diagnostic + - style + - performance + - experimental + - opinionated diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.yml new file mode 100644 index 000000000000..985f044f539a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.yml @@ -0,0 +1,269 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + gocritic: + disable-all: true + enabled-checks: + - appendAssign + - appendCombine + - argOrder + - assignOp + - badCall + - badCond + - badLock + - badRegexp + - badSorting + - badSyncOnceFunc + - boolExprSimplify + - builtinShadow + - builtinShadowDecl + - captLocal + - caseOrder + - codegenComment + - commentFormatting + - commentedOutCode + - commentedOutImport + - defaultCaseOrder + - deferInLoop + - deferUnlambda + - deprecatedComment + - docStub + - dupArg + - dupBranchBody + - dupCase + - dupImport + - dupSubExpr + - dynamicFmtString + - elseif + - emptyDecl + - emptyFallthrough + - emptyStringTest + - equalFold + - evalOrder + - exitAfterDefer + - exposedSyncMutex + - externalErrorReassign + - filepathJoin + - flagDeref + - flagName + - hexLiteral + - httpNoBody + - hugeParam + - ifElseChain + - importShadow + - indexAlloc + - initClause + - mapKey + - methodExprCall + - nestingReduce + - newDeref + - nilValReturn + - octalLiteral + - offBy1 + - paramTypeCombine + - preferDecodeRune + - preferFilepathJoin + - preferFprint + - preferStringWriter + - preferWriteByte + - ptrToRefParam + - rangeAppendAll + - rangeExprCopy + - rangeValCopy + - redundantSprint + - regexpMust + - regexpPattern + - regexpSimplify + - returnAfterHttpError + - ruleguard + - singleCaseSwitch + - sliceClear + - sloppyLen + - sloppyReassign + - sloppyTypeAssert + - sortSlice + - sprintfQuotedString + - sqlQuery + - stringConcatSimplify + - stringXbytes + - stringsCompare + - switchTrue + - syncMapLoadAndDelete + - timeExprSimplify + - todoCommentWithoutDetail + - tooManyResultsChecker + - truncateCmp + - typeAssertChain + - typeDefFirst + - typeSwitchVar + - typeUnparen + - uncheckedInlineErr + - underef + - unlabelStmt + - unlambda + - unnamedResult + - unnecessaryBlock + - unnecessaryDefer + - unslice + - valSwap + - weakCond + - whyNoLint + - wrapperFunc + - yodaStyleExpr + enable-all: true + disabled-checks: + - appendAssign + - appendCombine + - argOrder + - assignOp + - badCall + - badCond + - badLock + - badRegexp + - badSorting + - badSyncOnceFunc + - boolExprSimplify + - builtinShadow + - builtinShadowDecl + - captLocal + - caseOrder + - codegenComment + - commentFormatting + - commentedOutCode + - commentedOutImport + - defaultCaseOrder + - deferInLoop + - deferUnlambda + - deprecatedComment + - docStub + - dupArg + - dupBranchBody + - dupCase + - dupImport + - dupSubExpr + - dynamicFmtString + - elseif + - emptyDecl + - emptyFallthrough + - emptyStringTest + - equalFold + - evalOrder + - exitAfterDefer + - exposedSyncMutex + - externalErrorReassign + - filepathJoin + - flagDeref + - flagName + - hexLiteral + - httpNoBody + - hugeParam + - ifElseChain + - importShadow + - indexAlloc + - initClause + - mapKey + - methodExprCall + - nestingReduce + - newDeref + - nilValReturn + - octalLiteral + - offBy1 + - paramTypeCombine + - preferDecodeRune + - preferFilepathJoin + - preferFprint + - preferStringWriter + - preferWriteByte + - ptrToRefParam + - rangeAppendAll + - rangeExprCopy + - rangeValCopy + - redundantSprint + - regexpMust + - regexpPattern + - regexpSimplify + - returnAfterHttpError + - ruleguard + - singleCaseSwitch + - sliceClear + - sloppyLen + - sloppyReassign + - sloppyTypeAssert + - sortSlice + - sprintfQuotedString + - sqlQuery + - stringConcatSimplify + - stringXbytes + - stringsCompare + - switchTrue + - syncMapLoadAndDelete + - timeExprSimplify + - todoCommentWithoutDetail + - tooManyResultsChecker + - truncateCmp + - typeAssertChain + - typeDefFirst + - typeSwitchVar + - typeUnparen + - uncheckedInlineErr + - underef + - unlabelStmt + - unlambda + - unnamedResult + - unnecessaryBlock + - unnecessaryDefer + - unslice + - valSwap + - weakCond + - whyNoLint + - wrapperFunc + - yodaStyleExpr + enabled-tags: + - diagnostic + - style + - performance + - experimental + - opinionated + disabled-tags: + - diagnostic + - style + - performance + - experimental + - opinionated + settings: + captLocal: + paramsOnly: false + commentedOutCode: + minLength: 50 + elseif: + skipBalanced: false + hugeParam: + sizeThreshold: 70 + ifElseChain: + minThreshold: 4 + nestingReduce: + bodyWidth: 4 + rangeExprCopy: + sizeThreshold: 516 + skipTestFuncs: false + rangeValCopy: + sizeThreshold: 32 + skipTestFuncs: false + ruleguard: + debug: 'emptyDecl' + failOn: dsl,import + rules: '${configDir}/ruleguard/rules-*.go,${configDir}/myrule1.go' + enable: "myGroupName,#myTagName" + disable: "myGroupName,#myTagName" + tooManyResultsChecker: + maxResults: 10 + truncateCmp: + skipArchDependent: false + underef: + skipRecvDeref: false + unnamedResult: + checkExported: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gocyclo.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gocyclo.golden.yml new file mode 100644 index 000000000000..a7c848793964 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gocyclo.golden.yml @@ -0,0 +1,5 @@ +version: "2" +linters: + settings: + gocyclo: + min-complexity: 10 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gocyclo.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gocyclo.yml new file mode 100644 index 000000000000..19af03c2bc4b --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gocyclo.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + gocyclo: + min-complexity: 10 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_godot.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_godot.golden.yml new file mode 100644 index 000000000000..8b209b751a7b --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_godot.golden.yml @@ -0,0 +1,10 @@ +version: "2" +linters: + settings: + godot: + scope: toplevel + exclude: + - '^fixme:' + - '^todo:' + capital: true + period: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_godot.yml b/pkg/commands/internal/migrate/testdata/linters-settings_godot.yml new file mode 100644 index 000000000000..caa0f2807624 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_godot.yml @@ -0,0 +1,14 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + godot: + scope: toplevel + exclude: + - "^fixme:" + - "^todo:" + period: false + capital: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_godox.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_godox.golden.yml new file mode 100644 index 000000000000..f85840b569ca --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_godox.golden.yml @@ -0,0 +1,8 @@ +version: "2" +linters: + settings: + godox: + keywords: + - NOTE + - OPTIMIZE + - HACK diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_godox.yml b/pkg/commands/internal/migrate/testdata/linters-settings_godox.yml new file mode 100644 index 000000000000..a7f2bdb8bc8e --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_godox.yml @@ -0,0 +1,12 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + godox: + keywords: + - NOTE + - OPTIMIZE + - HACK diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gofmt.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gofmt.golden.yml new file mode 100644 index 000000000000..06d10d2c4425 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gofmt.golden.yml @@ -0,0 +1,10 @@ +version: "2" +formatters: + settings: + gofmt: + simplify: false + rewrite-rules: + - pattern: interface{} + replacement: any + - pattern: a[b:len(a)] + replacement: a[b:] diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gofmt.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gofmt.yml new file mode 100644 index 000000000000..038c96f1d0cb --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gofmt.yml @@ -0,0 +1,14 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + gofmt: + simplify: false + rewrite-rules: + - pattern: 'interface{}' + replacement: 'any' + - pattern: 'a[b:len(a)]' + replacement: 'a[b:]' diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gofumpt.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gofumpt.golden.yml new file mode 100644 index 000000000000..841772f34ce4 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gofumpt.golden.yml @@ -0,0 +1,6 @@ +version: "2" +formatters: + settings: + gofumpt: + module-path: github.com/org/project + extra-rules: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gofumpt.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gofumpt.yml new file mode 100644 index 000000000000..f79c2d320662 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gofumpt.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + gofumpt: + module-path: github.com/org/project + extra-rules: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_goheader.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_goheader.golden.yml new file mode 100644 index 000000000000..e8bdd5319dff --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_goheader.golden.yml @@ -0,0 +1,29 @@ +version: "2" +linters: + settings: + goheader: + values: + const: + company: MY COMPANY + regexp: + author: .*@mycompany\.com + template: |- + Put here copyright header template for source code files + For example: + Note: {{ YEAR }} is a builtin value that returns the year relative to the current machine time. + + {{ AUTHOR }} {{ COMPANY }} {{ YEAR }} + SPDX-License-Identifier: Apache-2.0 + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at: + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + template-path: /path/to/my/template.tmpl diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_goheader.yml b/pkg/commands/internal/migrate/testdata/linters-settings_goheader.yml new file mode 100644 index 000000000000..51e3adde474a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_goheader.yml @@ -0,0 +1,33 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + goheader: + values: + const: + COMPANY: MY COMPANY + regexp: + AUTHOR: .*@mycompany\.com + template: |- + Put here copyright header template for source code files + For example: + Note: {{ YEAR }} is a builtin value that returns the year relative to the current machine time. + + {{ AUTHOR }} {{ COMPANY }} {{ YEAR }} + SPDX-License-Identifier: Apache-2.0 + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at: + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + template-path: /path/to/my/template.tmpl diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_goimports.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_goimports.golden.yml new file mode 100644 index 000000000000..fe7094da9030 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_goimports.golden.yml @@ -0,0 +1,6 @@ +version: "2" +formatters: + settings: + goimports: + local-prefixes: + - github.com/org/project diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_goimports.yml b/pkg/commands/internal/migrate/testdata/linters-settings_goimports.yml new file mode 100644 index 000000000000..3156179fca06 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_goimports.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + goimports: + local-prefixes: github.com/org/project diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gomoddirectives.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gomoddirectives.golden.yml new file mode 100644 index 000000000000..aba97f8f54fc --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gomoddirectives.golden.yml @@ -0,0 +1,14 @@ +version: "2" +linters: + settings: + gomoddirectives: + replace-allow-list: + - launchpad.net/gocheck + replace-local: true + exclude-forbidden: true + retract-allow-no-explanation: true + toolchain-forbidden: true + toolchain-pattern: go1\.23\.\d+$ + tool-forbidden: true + go-debug-forbidden: true + go-version-pattern: \d\.\d+(\.0)? diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gomoddirectives.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gomoddirectives.yml new file mode 100644 index 000000000000..a07210239d29 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gomoddirectives.yml @@ -0,0 +1,18 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + gomoddirectives: + replace-local: true + replace-allow-list: + - launchpad.net/gocheck + retract-allow-no-explanation: true + exclude-forbidden: true + toolchain-forbidden: true + toolchain-pattern: 'go1\.23\.\d+$' + tool-forbidden: true + go-debug-forbidden: true + go-version-pattern: '\d\.\d+(\.0)?' diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gomodguard.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gomodguard.golden.yml new file mode 100644 index 000000000000..6755b101d5be --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gomodguard.golden.yml @@ -0,0 +1,20 @@ +version: "2" +linters: + settings: + gomodguard: + allowed: + modules: + - gopkg.in/yaml.v2 + domains: + - golang.org + blocked: + modules: + - github.com/uudashr/go-module: + recommendations: + - golang.org/x/mod + reason: '`mod` is the official go.mod parser library.' + versions: + - github.com/mitchellh/go-homedir: + version: < 1.1.0 + reason: testing if blocked version constraint works. + local-replace-directives: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gomodguard.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gomodguard.yml new file mode 100644 index 000000000000..c17eeae05840 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gomodguard.yml @@ -0,0 +1,24 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + gomodguard: + allowed: + modules: + - gopkg.in/yaml.v2 + domains: + - golang.org + blocked: + modules: + - github.com/uudashr/go-module: + recommendations: + - golang.org/x/mod + reason: "`mod` is the official go.mod parser library." + versions: + - github.com/mitchellh/go-homedir: + version: "< 1.1.0" + reason: "testing if blocked version constraint works." + local_replace_directives: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gosec.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gosec.golden.yml new file mode 100644 index 000000000000..4cd3e5478fa9 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gosec.golden.yml @@ -0,0 +1,109 @@ +version: "2" +linters: + settings: + gosec: + includes: + - G101 + - G102 + - G103 + - G104 + - G106 + - G107 + - G108 + - G109 + - G110 + - G111 + - G112 + - G113 + - G114 + - G115 + - G201 + - G202 + - G203 + - G204 + - G301 + - G302 + - G303 + - G304 + - G305 + - G306 + - G307 + - G401 + - G402 + - G403 + - G404 + - G405 + - G406 + - G501 + - G502 + - G503 + - G504 + - G505 + - G506 + - G507 + - G601 + - G602 + excludes: + - G101 + - G102 + - G103 + - G104 + - G106 + - G107 + - G108 + - G109 + - G110 + - G111 + - G112 + - G113 + - G114 + - G115 + - G201 + - G202 + - G203 + - G204 + - G301 + - G302 + - G303 + - G304 + - G305 + - G306 + - G307 + - G401 + - G402 + - G403 + - G404 + - G405 + - G406 + - G501 + - G502 + - G503 + - G504 + - G505 + - G506 + - G507 + - G601 + - G602 + severity: medium + confidence: medium + config: + g101: + entropy_threshold: "80.0" + ignore_entropy: false + pattern: (?i)example + per_char_threshold: "3.0" + truncate: "32" + g104: + fmt: + - Fscanf + g111: + pattern: custom\.Dir\(\) + g301: "0750" + g302: "0600" + g306: "0600" + global: + '#nosec': '#my-custom-nosec' + audit: true + nosec: true + show-ignored: true + concurrency: 12 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gosec.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gosec.yml new file mode 100644 index 000000000000..0456faefedcf --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gosec.yml @@ -0,0 +1,114 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + gosec: + includes: + - G101 + - G102 + - G103 + - G104 + - G106 + - G107 + - G108 + - G109 + - G110 + - G111 + - G112 + - G113 + - G114 + - G115 + - G201 + - G202 + - G203 + - G204 + - G301 + - G302 + - G303 + - G304 + - G305 + - G306 + - G307 + - G401 + - G402 + - G403 + - G404 + - G405 + - G406 + - G501 + - G502 + - G503 + - G504 + - G505 + - G506 + - G507 + - G601 + - G602 + excludes: + - G101 + - G102 + - G103 + - G104 + - G106 + - G107 + - G108 + - G109 + - G110 + - G111 + - G112 + - G113 + - G114 + - G115 + - G201 + - G202 + - G203 + - G204 + - G301 + - G302 + - G303 + - G304 + - G305 + - G306 + - G307 + - G401 + - G402 + - G403 + - G404 + - G405 + - G406 + - G501 + - G502 + - G503 + - G504 + - G505 + - G506 + - G507 + - G601 + - G602 + exclude-generated: true + severity: medium + confidence: medium + concurrency: 12 + config: + global: + nosec: true + "#nosec": "#my-custom-nosec" + show-ignored: true + audit: true + G101: + pattern: "(?i)example" + ignore_entropy: false + entropy_threshold: "80.0" + per_char_threshold: "3.0" + truncate: "32" + G104: + fmt: + - Fscanf + G111: + pattern: "custom\\.Dir\\(\\)" + G301: "0750" + G302: "0600" + G306: "0600" diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gosimple.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gosimple.golden.yml new file mode 100644 index 000000000000..db5042d5f63f --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gosimple.golden.yml @@ -0,0 +1,40 @@ +version: "2" +linters: + settings: + staticcheck: + checks: + - S1000 + - S1001 + - S1002 + - S1003 + - S1004 + - S1005 + - S1006 + - S1007 + - S1008 + - S1009 + - S1010 + - S1011 + - S1012 + - S1016 + - S1017 + - S1018 + - S1019 + - S1020 + - S1021 + - S1023 + - S1024 + - S1025 + - S1028 + - S1029 + - S1030 + - S1031 + - S1032 + - S1033 + - S1034 + - S1035 + - S1036 + - S1037 + - S1038 + - S1039 + - S1040 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gosimple.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gosimple.yml new file mode 100644 index 000000000000..d93192ae55b3 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gosimple.yml @@ -0,0 +1,44 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + gosimple: + checks: + - S1000 + - S1001 + - S1002 + - S1003 + - S1004 + - S1005 + - S1006 + - S1007 + - S1008 + - S1009 + - S1010 + - S1011 + - S1012 + - S1016 + - S1017 + - S1018 + - S1019 + - S1020 + - S1021 + - S1023 + - S1024 + - S1025 + - S1028 + - S1029 + - S1030 + - S1031 + - S1032 + - S1033 + - S1034 + - S1035 + - S1036 + - S1037 + - S1038 + - S1039 + - S1040 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gosmopolitan.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gosmopolitan.golden.yml new file mode 100644 index 000000000000..86e51bebbfe6 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gosmopolitan.golden.yml @@ -0,0 +1,17 @@ +version: "2" +linters: + settings: + gosmopolitan: + allow-time-local: true + escape-hatches: + - github.com/nicksnyder/go-i18n/v2/i18n.Message + - example.com/your/project/i18n/markers.Raw + - example.com/your/project/i18n/markers.OK + - example.com/your/project/i18n/markers.TODO + - command-line-arguments.Simple + watch-for-scripts: + - Devanagari + - Han + - Hangul + - Hiragana + - Katakana diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gosmopolitan.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gosmopolitan.yml new file mode 100644 index 000000000000..27c48ed7d8cf --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gosmopolitan.yml @@ -0,0 +1,22 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + gosmopolitan: + allow-time-local: true + escape-hatches: + - 'github.com/nicksnyder/go-i18n/v2/i18n.Message' + - 'example.com/your/project/i18n/markers.Raw' + - 'example.com/your/project/i18n/markers.OK' + - 'example.com/your/project/i18n/markers.TODO' + - 'command-line-arguments.Simple' + ignore-tests: false + watch-for-scripts: + - Devanagari + - Han + - Hangul + - Hiragana + - Katakana diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_govet.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_govet.golden.yml new file mode 100644 index 000000000000..cad000b4b3e8 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_govet.golden.yml @@ -0,0 +1,108 @@ +version: "2" +linters: + settings: + govet: + enable: + - appends + - asmdecl + - assign + - atomic + - atomicalign + - bools + - buildtag + - cgocall + - composites + - copylocks + - deepequalerrors + - defers + - directive + - errorsas + - fieldalignment + - findcall + - framepointer + - httpresponse + - ifaceassert + - loopclosure + - lostcancel + - nilfunc + - nilness + - printf + - reflectvaluecompare + - shadow + - shift + - sigchanyzer + - slog + - sortslice + - stdmethods + - stdversion + - stringintconv + - structtag + - testinggoroutine + - tests + - timeformat + - unmarshal + - unreachable + - unsafeptr + - unusedresult + - unusedwrite + - waitgroup + disable: + - appends + - asmdecl + - assign + - atomic + - atomicalign + - bools + - buildtag + - cgocall + - composites + - copylocks + - deepequalerrors + - defers + - directive + - errorsas + - fieldalignment + - findcall + - framepointer + - httpresponse + - ifaceassert + - loopclosure + - lostcancel + - nilfunc + - nilness + - printf + - reflectvaluecompare + - shadow + - shift + - sigchanyzer + - slog + - sortslice + - stdmethods + - stdversion + - stringintconv + - structtag + - testinggoroutine + - tests + - timeformat + - unmarshal + - unreachable + - unsafeptr + - unusedresult + - unusedwrite + - waitgroup + enable-all: true + disable-all: true + settings: + printf: + funcs: + - (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof + - (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf + - (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf + - (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf + shadow: + strict: true + unusedresult: + funcs: + - pkg.MyFunc + stringmethods: + - MyMethod diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_govet.yml b/pkg/commands/internal/migrate/testdata/linters-settings_govet.yml new file mode 100644 index 000000000000..a71199490d14 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_govet.yml @@ -0,0 +1,112 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + govet: + disable-all: true + enable: + - appends + - asmdecl + - assign + - atomic + - atomicalign + - bools + - buildtag + - cgocall + - composites + - copylocks + - deepequalerrors + - defers + - directive + - errorsas + - fieldalignment + - findcall + - framepointer + - httpresponse + - ifaceassert + - loopclosure + - lostcancel + - nilfunc + - nilness + - printf + - reflectvaluecompare + - shadow + - shift + - sigchanyzer + - slog + - sortslice + - stdmethods + - stdversion + - stringintconv + - structtag + - testinggoroutine + - tests + - timeformat + - unmarshal + - unreachable + - unsafeptr + - unusedresult + - unusedwrite + - waitgroup + enable-all: true + disable: + - appends + - asmdecl + - assign + - atomic + - atomicalign + - bools + - buildtag + - cgocall + - composites + - copylocks + - deepequalerrors + - defers + - directive + - errorsas + - fieldalignment + - findcall + - framepointer + - httpresponse + - ifaceassert + - loopclosure + - lostcancel + - nilfunc + - nilness + - printf + - reflectvaluecompare + - shadow + - shift + - sigchanyzer + - slog + - sortslice + - stdmethods + - stdversion + - stringintconv + - structtag + - testinggoroutine + - tests + - timeformat + - unmarshal + - unreachable + - unsafeptr + - unusedresult + - unusedwrite + - waitgroup + settings: + printf: + funcs: + - (github.com/golangci/golangci-lint/pkg/logutils.Log).Infof + - (github.com/golangci/golangci-lint/pkg/logutils.Log).Warnf + - (github.com/golangci/golangci-lint/pkg/logutils.Log).Errorf + - (github.com/golangci/golangci-lint/pkg/logutils.Log).Fatalf + shadow: + strict: true + unusedresult: + funcs: + - pkg.MyFunc + stringmethods: + - MyMethod diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_grouper.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_grouper.golden.yml new file mode 100644 index 000000000000..2d9a0e620b20 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_grouper.golden.yml @@ -0,0 +1,12 @@ +version: "2" +linters: + settings: + grouper: + const-require-single-const: true + const-require-grouping: true + import-require-single-import: true + import-require-grouping: true + type-require-single-type: true + type-require-grouping: true + var-require-single-var: true + var-require-grouping: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_grouper.yml b/pkg/commands/internal/migrate/testdata/linters-settings_grouper.yml new file mode 100644 index 000000000000..04562b91ecca --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_grouper.yml @@ -0,0 +1,16 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + grouper: + const-require-single-const: true + const-require-grouping: true + import-require-single-import: true + import-require-grouping: true + type-require-single-type: true + type-require-grouping: true + var-require-single-var: true + var-require-grouping: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_iface.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_iface.golden.yml new file mode 100644 index 000000000000..938b4af35d3f --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_iface.golden.yml @@ -0,0 +1,12 @@ +version: "2" +linters: + settings: + iface: + enable: + - identical + - unused + - opaque + settings: + unused: + exclude: + - github.com/example/log diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_iface.yml b/pkg/commands/internal/migrate/testdata/linters-settings_iface.yml new file mode 100644 index 000000000000..8c12c4c3733a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_iface.yml @@ -0,0 +1,16 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + iface: + enable: + - identical + - unused + - opaque + settings: + unused: + exclude: + - github.com/example/log diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_importas.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_importas.golden.yml new file mode 100644 index 000000000000..28c180a76ebd --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_importas.golden.yml @@ -0,0 +1,15 @@ +version: "2" +linters: + settings: + importas: + alias: + - pkg: knative.dev/serving/pkg/apis/serving/v1 + alias: servingv1 + - pkg: knative.dev/serving/pkg/apis/autoscaling/v1alpha1 + alias: autoscalingv1alpha1 + - pkg: knative.dev/serving/pkg/apis/(\w+)/(v[\w\d]+) + alias: $1$2 + - pkg: errors + alias: "" + no-unaliased: true + no-extra-aliases: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_importas.yml b/pkg/commands/internal/migrate/testdata/linters-settings_importas.yml new file mode 100644 index 000000000000..378784f01c7b --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_importas.yml @@ -0,0 +1,19 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + importas: + no-unaliased: true + no-extra-aliases: true + alias: + - pkg: knative.dev/serving/pkg/apis/serving/v1 + alias: servingv1 + - pkg: knative.dev/serving/pkg/apis/autoscaling/v1alpha1 + alias: autoscalingv1alpha1 + - pkg: knative.dev/serving/pkg/apis/(\w+)/(v[\w\d]+) + alias: $1$2 + - pkg: errors + alias: "" diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_inamedparam.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_inamedparam.golden.yml new file mode 100644 index 000000000000..e58d8245ba1a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_inamedparam.golden.yml @@ -0,0 +1,5 @@ +version: "2" +linters: + settings: + inamedparam: + skip-single-param: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_inamedparam.yml b/pkg/commands/internal/migrate/testdata/linters-settings_inamedparam.yml new file mode 100644 index 000000000000..1832427438cf --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_inamedparam.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + inamedparam: + skip-single-param: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_interfacebloat.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_interfacebloat.golden.yml new file mode 100644 index 000000000000..fbc0e91339b8 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_interfacebloat.golden.yml @@ -0,0 +1,5 @@ +version: "2" +linters: + settings: + interfacebloat: + max: 5 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_interfacebloat.yml b/pkg/commands/internal/migrate/testdata/linters-settings_interfacebloat.yml new file mode 100644 index 000000000000..ab33e05d793d --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_interfacebloat.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + interfacebloat: + max: 5 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_ireturn.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_ireturn.golden.yml new file mode 100644 index 000000000000..d169f90fec19 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_ireturn.golden.yml @@ -0,0 +1,9 @@ +version: "2" +linters: + settings: + ireturn: + allow: + - anon + - (or|er)$ + reject: + - github.com\/user\/package\/v4\.Type diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_ireturn.yml b/pkg/commands/internal/migrate/testdata/linters-settings_ireturn.yml new file mode 100644 index 000000000000..f1a133ee0299 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_ireturn.yml @@ -0,0 +1,13 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + ireturn: + allow: + - anon + - (or|er)$ + reject: + - github.com\/user\/package\/v4\.Type diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_lll.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_lll.golden.yml new file mode 100644 index 000000000000..78be6a91b37a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_lll.golden.yml @@ -0,0 +1,6 @@ +version: "2" +linters: + settings: + lll: + line-length: 120 + tab-width: 1 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_lll.yml b/pkg/commands/internal/migrate/testdata/linters-settings_lll.yml new file mode 100644 index 000000000000..3b46bb87a561 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_lll.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + lll: + line-length: 120 + tab-width: 1 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_loggercheck.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_loggercheck.golden.yml new file mode 100644 index 000000000000..0734f003c15b --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_loggercheck.golden.yml @@ -0,0 +1,15 @@ +version: "2" +linters: + settings: + loggercheck: + kitlog: false + klog: false + logr: false + slog: false + zap: false + require-string-key: true + no-printf-like: true + rules: + - k8s.io/klog/v2.InfoS + - (github.com/go-logr/logr.Logger).Error + - (*go.uber.org/zap.SugaredLogger).With diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_loggercheck.yml b/pkg/commands/internal/migrate/testdata/linters-settings_loggercheck.yml new file mode 100644 index 000000000000..71ea1b9e4a60 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_loggercheck.yml @@ -0,0 +1,19 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + loggercheck: + kitlog: false + klog: false + logr: false + slog: false + zap: false + require-string-key: true + no-printf-like: true + rules: + - k8s.io/klog/v2.InfoS + - (github.com/go-logr/logr.Logger).Error + - (*go.uber.org/zap.SugaredLogger).With diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_maintidx.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_maintidx.golden.yml new file mode 100644 index 000000000000..97f413c8c5ef --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_maintidx.golden.yml @@ -0,0 +1,5 @@ +version: "2" +linters: + settings: + maintidx: + under: 100 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_maintidx.yml b/pkg/commands/internal/migrate/testdata/linters-settings_maintidx.yml new file mode 100644 index 000000000000..06905bc1651e --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_maintidx.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + maintidx: + under: 100 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_makezero.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_makezero.golden.yml new file mode 100644 index 000000000000..2d08fd07a20f --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_makezero.golden.yml @@ -0,0 +1,5 @@ +version: "2" +linters: + settings: + makezero: + always: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_makezero.yml b/pkg/commands/internal/migrate/testdata/linters-settings_makezero.yml new file mode 100644 index 000000000000..9d4b01e35fe4 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_makezero.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + makezero: + always: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_misspell.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_misspell.golden.yml new file mode 100644 index 000000000000..b0600a875b72 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_misspell.golden.yml @@ -0,0 +1,13 @@ +version: "2" +linters: + settings: + misspell: + mode: restricted + locale: US + extra-words: + - typo: iff + correction: if + - typo: cancelation + correction: cancellation + ignore-rules: + - someword diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_misspell.yml b/pkg/commands/internal/migrate/testdata/linters-settings_misspell.yml new file mode 100644 index 000000000000..cce5b2c746ae --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_misspell.yml @@ -0,0 +1,17 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + misspell: + locale: US + ignore-words: + - someword + extra-words: + - typo: "iff" + correction: "if" + - typo: "cancelation" + correction: "cancellation" + mode: restricted diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_mnd.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_mnd.golden.yml new file mode 100644 index 000000000000..5f10379e2119 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_mnd.golden.yml @@ -0,0 +1,20 @@ +version: "2" +linters: + settings: + mnd: + checks: + - argument + - case + - condition + - operation + - return + - assign + ignored-numbers: + - "0666" + - "0755" + - "42" + ignored-files: + - magic1_.+\.go$ + ignored-functions: + - ^math\. + - ^http\.StatusText$ diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_mnd.yml b/pkg/commands/internal/migrate/testdata/linters-settings_mnd.yml new file mode 100644 index 000000000000..a744a684cfff --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_mnd.yml @@ -0,0 +1,24 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + mnd: + checks: + - argument + - case + - condition + - operation + - return + - assign + ignored-numbers: + - '0666' + - '0755' + - '42' + ignored-files: + - 'magic1_.+\.go$' + ignored-functions: + - '^math\.' + - '^http\.StatusText$' diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_musttag.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_musttag.golden.yml new file mode 100644 index 000000000000..227fd072bd0a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_musttag.golden.yml @@ -0,0 +1,8 @@ +version: "2" +linters: + settings: + musttag: + functions: + - name: github.com/hashicorp/hcl/v2/hclsimple.DecodeFile + tag: hcl + arg-pos: 2 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_musttag.yml b/pkg/commands/internal/migrate/testdata/linters-settings_musttag.yml new file mode 100644 index 000000000000..b4614784b622 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_musttag.yml @@ -0,0 +1,12 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + musttag: + functions: + - name: github.com/hashicorp/hcl/v2/hclsimple.DecodeFile + tag: hcl + arg-pos: 2 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nakedret.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_nakedret.golden.yml new file mode 100644 index 000000000000..a0fdcb55bc28 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_nakedret.golden.yml @@ -0,0 +1,5 @@ +version: "2" +linters: + settings: + nakedret: + max-func-lines: 31 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nakedret.yml b/pkg/commands/internal/migrate/testdata/linters-settings_nakedret.yml new file mode 100644 index 000000000000..9e5ba33db58a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_nakedret.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + nakedret: + max-func-lines: 31 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nestif.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_nestif.golden.yml new file mode 100644 index 000000000000..df82198c74a9 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_nestif.golden.yml @@ -0,0 +1,5 @@ +version: "2" +linters: + settings: + nestif: + min-complexity: 4 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nestif.yml b/pkg/commands/internal/migrate/testdata/linters-settings_nestif.yml new file mode 100644 index 000000000000..ffef36b23bc3 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_nestif.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + nestif: + min-complexity: 4 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nilnil.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_nilnil.golden.yml new file mode 100644 index 000000000000..da47371d5712 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_nilnil.golden.yml @@ -0,0 +1,13 @@ +version: "2" +linters: + settings: + nilnil: + detect-opposite: true + checked-types: + - chan + - func + - iface + - map + - ptr + - uintptr + - unsafeptr diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nilnil.yml b/pkg/commands/internal/migrate/testdata/linters-settings_nilnil.yml new file mode 100644 index 000000000000..8bcee8eb36ee --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_nilnil.yml @@ -0,0 +1,17 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + nilnil: + detect-opposite: true + checked-types: + - chan + - func + - iface + - map + - ptr + - uintptr + - unsafeptr diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nlreturn.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_nlreturn.golden.yml new file mode 100644 index 000000000000..964bc1c5a12f --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_nlreturn.golden.yml @@ -0,0 +1,5 @@ +version: "2" +linters: + settings: + nlreturn: + block-size: 2 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nlreturn.yml b/pkg/commands/internal/migrate/testdata/linters-settings_nlreturn.yml new file mode 100644 index 000000000000..511b6a8f95c3 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_nlreturn.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + nlreturn: + block-size: 2 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nolintlint.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_nolintlint.golden.yml new file mode 100644 index 000000000000..95aa95dbb92f --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_nolintlint.golden.yml @@ -0,0 +1,7 @@ +version: "2" +linters: + settings: + nolintlint: + require-explanation: true + require-specific: true + allow-unused: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nolintlint.yml b/pkg/commands/internal/migrate/testdata/linters-settings_nolintlint.yml new file mode 100644 index 000000000000..c02c3851f873 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_nolintlint.yml @@ -0,0 +1,12 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + nolintlint: + allow-unused: true + allow-no-explanation: [ ] + require-explanation: true + require-specific: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nonamedreturns.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_nonamedreturns.golden.yml new file mode 100644 index 000000000000..6b33435d686e --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_nonamedreturns.golden.yml @@ -0,0 +1,5 @@ +version: "2" +linters: + settings: + nonamedreturns: + report-error-in-defer: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nonamedreturns.yml b/pkg/commands/internal/migrate/testdata/linters-settings_nonamedreturns.yml new file mode 100644 index 000000000000..c253327d3b99 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_nonamedreturns.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + nonamedreturns: + report-error-in-defer: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_paralleltest.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_paralleltest.golden.yml new file mode 100644 index 000000000000..2d37f645ee56 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_paralleltest.golden.yml @@ -0,0 +1,6 @@ +version: "2" +linters: + settings: + paralleltest: + ignore-missing: true + ignore-missing-subtests: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_paralleltest.yml b/pkg/commands/internal/migrate/testdata/linters-settings_paralleltest.yml new file mode 100644 index 000000000000..c32330d89d18 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_paralleltest.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + paralleltest: + ignore-missing: true + ignore-missing-subtests: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_perfsprint.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_perfsprint.golden.yml new file mode 100644 index 000000000000..46ac04301bdc --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_perfsprint.golden.yml @@ -0,0 +1,14 @@ +version: "2" +linters: + settings: + perfsprint: + integer-format: false + int-conversion: false + error-format: false + err-error: true + errorf: false + string-format: false + sprintf1: false + strconcat: false + bool-format: false + hex-format: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_perfsprint.yml b/pkg/commands/internal/migrate/testdata/linters-settings_perfsprint.yml new file mode 100644 index 000000000000..e1167e8baad6 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_perfsprint.yml @@ -0,0 +1,18 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + perfsprint: + integer-format: false + int-conversion: false + error-format: false + err-error: true + errorf: false + string-format: false + sprintf1: false + strconcat: false + bool-format: false + hex-format: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_prealloc.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_prealloc.golden.yml new file mode 100644 index 000000000000..dc093a6f7a9f --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_prealloc.golden.yml @@ -0,0 +1,7 @@ +version: "2" +linters: + settings: + prealloc: + simple: false + range-loops: false + for-loops: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_prealloc.yml b/pkg/commands/internal/migrate/testdata/linters-settings_prealloc.yml new file mode 100644 index 000000000000..950d14032f83 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_prealloc.yml @@ -0,0 +1,11 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + prealloc: + simple: false + range-loops: false + for-loops: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_predeclared.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_predeclared.golden.yml new file mode 100644 index 000000000000..be7f2826d14c --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_predeclared.golden.yml @@ -0,0 +1,8 @@ +version: "2" +linters: + settings: + predeclared: + ignore: + - new + - int + qualified-name: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_predeclared.yml b/pkg/commands/internal/migrate/testdata/linters-settings_predeclared.yml new file mode 100644 index 000000000000..b321671d39a4 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_predeclared.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + predeclared: + ignore: "new,int" + q: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_promlinter.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_promlinter.golden.yml new file mode 100644 index 000000000000..7eb009939ac7 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_promlinter.golden.yml @@ -0,0 +1,14 @@ +version: "2" +linters: + settings: + promlinter: + strict: true + disabled-linters: + - Help + - MetricUnits + - Counter + - HistogramSummaryReserved + - MetricTypeInName + - ReservedChars + - CamelCase + - UnitAbbreviations diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_promlinter.yml b/pkg/commands/internal/migrate/testdata/linters-settings_promlinter.yml new file mode 100644 index 000000000000..2b7ef739bb50 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_promlinter.yml @@ -0,0 +1,18 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + promlinter: + strict: true + disabled-linters: + - Help + - MetricUnits + - Counter + - HistogramSummaryReserved + - MetricTypeInName + - ReservedChars + - CamelCase + - UnitAbbreviations diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_protogetter.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_protogetter.golden.yml new file mode 100644 index 000000000000..af8b285875de --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_protogetter.golden.yml @@ -0,0 +1,12 @@ +version: "2" +linters: + settings: + protogetter: + skip-generated-by: + - protoc-gen-go-my-own-generator + skip-files: + - '*.pb.go' + - '*/vendor/*' + - /full/path/to/file.go + skip-any-generated: true + replace-first-arg-in-append: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_protogetter.yml b/pkg/commands/internal/migrate/testdata/linters-settings_protogetter.yml new file mode 100644 index 000000000000..d464f0e399b5 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_protogetter.yml @@ -0,0 +1,15 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + protogetter: + skip-generated-by: ["protoc-gen-go-my-own-generator"] + skip-files: + - "*.pb.go" + - "*/vendor/*" + - "/full/path/to/file.go" + skip-any-generated: true + replace-first-arg-in-append: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_reassign.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_reassign.golden.yml new file mode 100644 index 000000000000..0b16808bc5cd --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_reassign.golden.yml @@ -0,0 +1,6 @@ +version: "2" +linters: + settings: + reassign: + patterns: + - .* diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_reassign.yml b/pkg/commands/internal/migrate/testdata/linters-settings_reassign.yml new file mode 100644 index 000000000000..2ba4ec4dcd60 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_reassign.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + reassign: + patterns: + - ".*" diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_recvcheck.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_recvcheck.golden.yml new file mode 100644 index 000000000000..e9483b139eb8 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_recvcheck.golden.yml @@ -0,0 +1,7 @@ +version: "2" +linters: + settings: + recvcheck: + disable-builtin: true + exclusions: + - '*.Value' diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_recvcheck.yml b/pkg/commands/internal/migrate/testdata/linters-settings_recvcheck.yml new file mode 100644 index 000000000000..0f299a919b09 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_recvcheck.yml @@ -0,0 +1,11 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + recvcheck: + disable-builtin: true + exclusions: + - "*.Value" diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_revive.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_revive.golden.yml new file mode 100644 index 000000000000..f9daab227bca --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_revive.golden.yml @@ -0,0 +1,525 @@ +version: "2" +linters: + settings: + revive: + max-open-files: 2048 + confidence: 0.1 + severity: error + enable-all-rules: true + rules: + - name: add-constant + arguments: + - allowFloats: 0.0,0.,1.0,1.,2.0,2. + allowInts: 0,1,2 + allowStrs: '""' + maxLitCount: "3" + severity: warning + disabled: false + exclude: + - "" + - name: argument-limit + arguments: + - 4 + severity: warning + disabled: false + exclude: + - "" + - name: atomic + severity: warning + disabled: false + exclude: + - "" + - name: banned-characters + arguments: + - Ω + - Σ + - σ + - "7" + severity: warning + disabled: false + exclude: + - "" + - name: bare-return + severity: warning + disabled: false + exclude: + - "" + - name: blank-imports + severity: warning + disabled: false + exclude: + - "" + - name: bool-literal-in-expr + severity: warning + disabled: false + exclude: + - "" + - name: call-to-gc + severity: warning + disabled: false + exclude: + - "" + - name: cognitive-complexity + arguments: + - 7 + severity: warning + disabled: false + exclude: + - "" + - name: comment-spacings + arguments: + - mypragma + - otherpragma + severity: warning + disabled: false + exclude: + - "" + - name: comments-density + arguments: + - 15 + severity: warning + disabled: false + exclude: + - "" + - name: confusing-naming + severity: warning + disabled: false + exclude: + - "" + - name: confusing-results + severity: warning + disabled: false + exclude: + - "" + - name: constant-logical-expr + severity: warning + disabled: false + exclude: + - "" + - name: context-as-argument + arguments: + - allowTypesBefore: '*testing.T,*github.com/user/repo/testing.Harness' + severity: warning + disabled: false + exclude: + - "" + - name: context-keys-type + severity: warning + disabled: false + exclude: + - "" + - name: cyclomatic + arguments: + - 3 + severity: warning + disabled: false + exclude: + - "" + - name: datarace + severity: warning + disabled: false + exclude: + - "" + - name: deep-exit + severity: warning + disabled: false + exclude: + - "" + - name: defer + arguments: + - - call-chain + - loop + severity: warning + disabled: false + exclude: + - "" + - name: dot-imports + severity: warning + disabled: false + exclude: + - "" + - name: duplicated-imports + severity: warning + disabled: false + exclude: + - "" + - name: early-return + arguments: + - preserveScope + - allowJump + severity: warning + disabled: false + exclude: + - "" + - name: empty-block + severity: warning + disabled: false + exclude: + - "" + - name: empty-lines + severity: warning + disabled: false + exclude: + - "" + - name: enforce-map-style + arguments: + - make + severity: warning + disabled: false + exclude: + - "" + - name: enforce-repeated-arg-type-style + arguments: + - short + severity: warning + disabled: false + exclude: + - "" + - name: enforce-slice-style + arguments: + - make + severity: warning + disabled: false + exclude: + - "" + - name: error-naming + severity: warning + disabled: false + exclude: + - "" + - name: error-return + severity: warning + disabled: false + exclude: + - "" + - name: error-strings + arguments: + - xerrors.New + severity: warning + disabled: false + exclude: + - "" + - name: errorf + severity: warning + disabled: false + exclude: + - "" + - name: exported + arguments: + - checkPrivateReceivers + - disableStutteringCheck + - checkPublicInterface + - disableChecksOnFunctions + severity: warning + disabled: false + exclude: + - "" + - name: file-header + arguments: + - This is the text that must appear at the top of source files. + severity: warning + disabled: false + exclude: + - "" + - name: file-length-limit + arguments: + - max: 100 + skipBlankLines: true + skipComments: true + severity: warning + disabled: false + exclude: + - "" + - name: filename-format + arguments: + - ^[_a-z][_a-z0-9]*\.go$ + severity: warning + disabled: false + exclude: + - "" + - name: flag-parameter + severity: warning + disabled: false + exclude: + - "" + - name: function-length + arguments: + - 10 + - 0 + severity: warning + disabled: false + exclude: + - "" + - name: function-result-limit + arguments: + - 3 + severity: warning + disabled: false + exclude: + - "" + - name: get-return + severity: warning + disabled: false + exclude: + - "" + - name: identical-branches + severity: warning + disabled: false + exclude: + - "" + - name: if-return + severity: warning + disabled: false + exclude: + - "" + - name: import-alias-naming + arguments: + - ^[a-z][a-z0-9]{0,}$ + severity: warning + disabled: false + exclude: + - "" + - name: import-shadowing + severity: warning + disabled: false + exclude: + - "" + - name: imports-blocklist + arguments: + - crypto/md5 + - crypto/sha1 + severity: warning + disabled: false + exclude: + - "" + - name: increment-decrement + severity: warning + disabled: false + exclude: + - "" + - name: indent-error-flow + arguments: + - preserveScope + severity: warning + disabled: false + exclude: + - "" + - name: line-length-limit + arguments: + - 80 + severity: warning + disabled: false + exclude: + - "" + - name: max-control-nesting + arguments: + - 3 + severity: warning + disabled: false + exclude: + - "" + - name: max-public-structs + arguments: + - 3 + severity: warning + disabled: false + exclude: + - "" + - name: modifies-parameter + severity: warning + disabled: false + exclude: + - "" + - name: modifies-value-receiver + severity: warning + disabled: false + exclude: + - "" + - name: nested-structs + severity: warning + disabled: false + exclude: + - "" + - name: optimize-operands-order + severity: warning + disabled: false + exclude: + - "" + - name: package-comments + severity: warning + disabled: false + exclude: + - "" + - name: range + severity: warning + disabled: false + exclude: + - "" + - name: range-val-address + severity: warning + disabled: false + exclude: + - "" + - name: range-val-in-closure + severity: warning + disabled: false + exclude: + - "" + - name: receiver-naming + arguments: + - maxLength: 2 + severity: warning + disabled: false + exclude: + - "" + - name: redefines-builtin-id + severity: warning + disabled: false + exclude: + - "" + - name: redundant-build-tag + severity: warning + disabled: false + exclude: + - "" + - name: redundant-import-alias + severity: warning + disabled: false + exclude: + - "" + - name: string-format + arguments: + - - core.WriteError[1].Message + - /^([^A-Z]|$)/ + - must not start with a capital letter + - - fmt.Errorf[0] + - /(^|[^\.!?])$/ + - must not end in punctuation + - - panic + - /^[^\n]*$/ + - must not contain line breaks + severity: warning + disabled: false + exclude: + - "" + - name: string-of-int + severity: warning + disabled: false + exclude: + - "" + - name: struct-tag + arguments: + - json,inline + - bson,outline,gnu + severity: warning + disabled: false + exclude: + - "" + - name: superfluous-else + arguments: + - preserveScope + severity: warning + disabled: false + exclude: + - "" + - name: time-equal + severity: warning + disabled: false + exclude: + - "" + - name: time-naming + severity: warning + disabled: false + exclude: + - "" + - name: unchecked-type-assertion + arguments: + - acceptIgnoredAssertionResult: true + severity: warning + disabled: false + exclude: + - "" + - name: unconditional-recursion + severity: warning + disabled: false + exclude: + - "" + - name: unexported-naming + severity: warning + disabled: false + exclude: + - "" + - name: unexported-return + severity: warning + disabled: false + exclude: + - "" + - name: unhandled-error + arguments: + - fmt.Printf + - myFunction + severity: warning + disabled: false + exclude: + - "" + - name: unnecessary-stmt + severity: warning + disabled: false + exclude: + - "" + - name: unreachable-code + severity: warning + disabled: false + exclude: + - "" + - name: unused-parameter + arguments: + - allowRegex: ^_ + severity: warning + disabled: false + exclude: + - "" + - name: unused-receiver + arguments: + - allowRegex: ^_ + severity: warning + disabled: false + exclude: + - "" + - name: use-any + severity: warning + disabled: false + exclude: + - "" + - name: use-errors-new + severity: warning + disabled: false + exclude: + - "" + - name: useless-break + severity: warning + disabled: false + exclude: + - "" + - name: var-declaration + severity: warning + disabled: false + exclude: + - "" + - name: var-naming + arguments: + - - ID + - - VM + - - upperCaseConst: true + severity: warning + disabled: false + exclude: + - "" + - name: waitgroup-by-value + severity: warning + disabled: false + exclude: + - "" + directives: + - name: specify-disable-reason + severity: error diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_revive.yml b/pkg/commands/internal/migrate/testdata/linters-settings_revive.yml new file mode 100644 index 000000000000..755e684976e9 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_revive.yml @@ -0,0 +1,433 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + revive: + max-open-files: 2048 + ignore-generated-header: true + severity: error + enable-all-rules: true + directives: + - name: specify-disable-reason + severity: error + confidence: 0.1 + rules: + - name: add-constant + severity: warning + disabled: false + exclude: [""] + arguments: + - maxLitCount: "3" + allowStrs: '""' + allowInts: "0,1,2" + allowFloats: "0.0,0.,1.0,1.,2.0,2." + - name: argument-limit + severity: warning + disabled: false + exclude: [""] + arguments: [ 4 ] + - name: atomic + severity: warning + disabled: false + exclude: [""] + - name: banned-characters + severity: warning + disabled: false + exclude: [""] + arguments: [ "Ω","Σ","σ", "7" ] + - name: bare-return + severity: warning + disabled: false + exclude: [""] + - name: blank-imports + severity: warning + disabled: false + exclude: [""] + - name: bool-literal-in-expr + severity: warning + disabled: false + exclude: [""] + - name: call-to-gc + severity: warning + disabled: false + exclude: [""] + - name: cognitive-complexity + severity: warning + disabled: false + exclude: [""] + arguments: [ 7 ] + - name: comment-spacings + severity: warning + disabled: false + exclude: [""] + arguments: + - mypragma + - otherpragma + - name: comments-density + severity: warning + disabled: false + exclude: [""] + arguments: [ 15 ] + - name: confusing-naming + severity: warning + disabled: false + exclude: [""] + - name: confusing-results + severity: warning + disabled: false + exclude: [""] + - name: constant-logical-expr + severity: warning + disabled: false + exclude: [""] + - name: context-as-argument + severity: warning + disabled: false + exclude: [""] + arguments: + - allowTypesBefore: "*testing.T,*github.com/user/repo/testing.Harness" + - name: context-keys-type + severity: warning + disabled: false + exclude: [""] + - name: cyclomatic + severity: warning + disabled: false + exclude: [""] + arguments: [ 3 ] + - name: datarace + severity: warning + disabled: false + exclude: [""] + - name: deep-exit + severity: warning + disabled: false + exclude: [""] + - name: defer + severity: warning + disabled: false + exclude: [""] + arguments: + - [ "call-chain", "loop" ] + - name: dot-imports + severity: warning + disabled: false + exclude: [""] + arguments: [ ] + - name: duplicated-imports + severity: warning + disabled: false + exclude: [""] + - name: early-return + severity: warning + disabled: false + exclude: [""] + arguments: + - "preserveScope" + - "allowJump" + - name: empty-block + severity: warning + disabled: false + exclude: [""] + - name: empty-lines + severity: warning + disabled: false + exclude: [""] + - name: enforce-map-style + severity: warning + disabled: false + exclude: [""] + arguments: + - "make" + - name: enforce-repeated-arg-type-style + severity: warning + disabled: false + exclude: [""] + arguments: + - "short" + - name: enforce-slice-style + severity: warning + disabled: false + exclude: [""] + arguments: + - "make" + - name: error-naming + severity: warning + disabled: false + exclude: [""] + - name: error-return + severity: warning + disabled: false + exclude: [""] + - name: error-strings + severity: warning + disabled: false + exclude: [""] + arguments: + - "xerrors.New" + - name: errorf + severity: warning + disabled: false + exclude: [""] + - name: exported + severity: warning + disabled: false + exclude: [""] + arguments: + - "checkPrivateReceivers" + - "disableStutteringCheck" + - "checkPublicInterface" + - "disableChecksOnFunctions" + - name: file-header + severity: warning + disabled: false + exclude: [""] + arguments: + - This is the text that must appear at the top of source files. + - name: file-length-limit + severity: warning + disabled: false + exclude: [""] + arguments: + - max: 100 + skipComments: true + skipBlankLines: true + - name: filename-format + severity: warning + disabled: false + exclude: [""] + arguments: + - "^[_a-z][_a-z0-9]*\\.go$" + - name: flag-parameter + severity: warning + disabled: false + exclude: [""] + - name: function-length + severity: warning + disabled: false + exclude: [""] + arguments: [ 10, 0 ] + - name: function-result-limit + severity: warning + disabled: false + exclude: [""] + arguments: [ 3 ] + - name: get-return + severity: warning + disabled: false + exclude: [""] + - name: identical-branches + severity: warning + disabled: false + exclude: [""] + - name: if-return + severity: warning + disabled: false + exclude: [""] + - name: import-alias-naming + severity: warning + disabled: false + exclude: [""] + arguments: + - "^[a-z][a-z0-9]{0,}$" + - name: import-shadowing + severity: warning + disabled: false + exclude: [""] + - name: imports-blocklist + severity: warning + disabled: false + exclude: [""] + arguments: + - "crypto/md5" + - "crypto/sha1" + - name: increment-decrement + severity: warning + disabled: false + exclude: [""] + - name: indent-error-flow + severity: warning + disabled: false + exclude: [""] + arguments: + - "preserveScope" + - name: line-length-limit + severity: warning + disabled: false + exclude: [""] + arguments: [ 80 ] + - name: max-control-nesting + severity: warning + disabled: false + exclude: [""] + arguments: [ 3 ] + - name: max-public-structs + severity: warning + disabled: false + exclude: [""] + arguments: [ 3 ] + - name: modifies-parameter + severity: warning + disabled: false + exclude: [""] + - name: modifies-value-receiver + severity: warning + disabled: false + exclude: [""] + - name: nested-structs + severity: warning + disabled: false + exclude: [""] + - name: optimize-operands-order + severity: warning + disabled: false + exclude: [""] + - name: package-comments + severity: warning + disabled: false + exclude: [""] + - name: range + severity: warning + disabled: false + exclude: [""] + - name: range-val-address + severity: warning + disabled: false + exclude: [""] + - name: range-val-in-closure + severity: warning + disabled: false + exclude: [""] + - name: receiver-naming + severity: warning + disabled: false + exclude: [""] + arguments: + - maxLength: 2 + - name: redefines-builtin-id + severity: warning + disabled: false + exclude: [""] + - name: redundant-build-tag + severity: warning + disabled: false + exclude: [""] + - name: redundant-import-alias + severity: warning + disabled: false + exclude: [""] + - name: string-format + severity: warning + disabled: false + exclude: [""] + arguments: + - - 'core.WriteError[1].Message' + - '/^([^A-Z]|$)/' + - must not start with a capital letter + - - 'fmt.Errorf[0]' + - '/(^|[^\.!?])$/' + - must not end in punctuation + - - panic + - '/^[^\n]*$/' + - must not contain line breaks + - name: string-of-int + severity: warning + disabled: false + exclude: [""] + - name: struct-tag + severity: warning + disabled: false + exclude: [""] + arguments: + - "json,inline" + - "bson,outline,gnu" + - name: superfluous-else + severity: warning + disabled: false + exclude: [""] + arguments: + - "preserveScope" + - name: time-equal + severity: warning + disabled: false + exclude: [""] + - name: time-naming + severity: warning + disabled: false + exclude: [""] + - name: unchecked-type-assertion + severity: warning + disabled: false + exclude: [""] + arguments: + - acceptIgnoredAssertionResult: true + - name: unconditional-recursion + severity: warning + disabled: false + exclude: [""] + - name: unexported-naming + severity: warning + disabled: false + exclude: [""] + - name: unexported-return + severity: warning + disabled: false + exclude: [""] + - name: unhandled-error + severity: warning + disabled: false + exclude: [""] + arguments: + - "fmt.Printf" + - "myFunction" + - name: unnecessary-stmt + severity: warning + disabled: false + exclude: [""] + - name: unreachable-code + severity: warning + disabled: false + exclude: [""] + - name: unused-parameter + severity: warning + disabled: false + exclude: [""] + arguments: + - allowRegex: "^_" + - name: unused-receiver + severity: warning + disabled: false + exclude: [""] + arguments: + - allowRegex: "^_" + - name: use-any + severity: warning + disabled: false + exclude: [""] + - name: use-errors-new + severity: warning + disabled: false + exclude: [""] + - name: useless-break + severity: warning + disabled: false + exclude: [""] + - name: var-declaration + severity: warning + disabled: false + exclude: [""] + - name: var-naming + severity: warning + disabled: false + exclude: [""] + arguments: + - [ "ID" ] + - [ "VM" ] + - - upperCaseConst: true + - name: waitgroup-by-value + severity: warning + disabled: false + exclude: [""] diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_rowserrcheck.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_rowserrcheck.golden.yml new file mode 100644 index 000000000000..700ee72801d6 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_rowserrcheck.golden.yml @@ -0,0 +1,6 @@ +version: "2" +linters: + settings: + rowserrcheck: + packages: + - github.com/jmoiron/sqlx diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_rowserrcheck.yml b/pkg/commands/internal/migrate/testdata/linters-settings_rowserrcheck.yml new file mode 100644 index 000000000000..cb59ee824158 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_rowserrcheck.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + rowserrcheck: + packages: + - github.com/jmoiron/sqlx diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_sloglint.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_sloglint.golden.yml new file mode 100644 index 000000000000..e18739406e38 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_sloglint.golden.yml @@ -0,0 +1,19 @@ +version: "2" +linters: + settings: + sloglint: + no-mixed-args: false + kv-only: true + attr-only: true + no-global: all + context: all + static-msg: true + no-raw-keys: true + key-naming-case: snake + forbidden-keys: + - time + - level + - msg + - source + - foo + args-on-sep-lines: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_sloglint.yml b/pkg/commands/internal/migrate/testdata/linters-settings_sloglint.yml new file mode 100644 index 000000000000..3f28ff0e4cf9 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_sloglint.yml @@ -0,0 +1,23 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + sloglint: + no-mixed-args: false + kv-only: true + attr-only: true + no-global: "all" + context: "all" + static-msg: true + no-raw-keys: true + key-naming-case: snake + forbidden-keys: + - time + - level + - msg + - source + - foo + args-on-sep-lines: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_spancheck.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_spancheck.golden.yml new file mode 100644 index 000000000000..89812e5254ae --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_spancheck.golden.yml @@ -0,0 +1,12 @@ +version: "2" +linters: + settings: + spancheck: + checks: + - end + - record-error + - set-status + ignore-check-signatures: + - telemetry.RecordError + extra-start-span-signatures: + - github.com/user/repo/telemetry/trace.Start:opentelemetry diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_spancheck.yml b/pkg/commands/internal/migrate/testdata/linters-settings_spancheck.yml new file mode 100644 index 000000000000..8ee331d4f3ea --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_spancheck.yml @@ -0,0 +1,16 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + spancheck: + checks: + - end + - record-error + - set-status + ignore-check-signatures: + - "telemetry.RecordError" + extra-start-span-signatures: + - "github.com/user/repo/telemetry/trace.Start:opentelemetry" diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_staticcheck.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_staticcheck.golden.yml new file mode 100644 index 000000000000..a78fade87454 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_staticcheck.golden.yml @@ -0,0 +1,100 @@ +version: "2" +linters: + settings: + staticcheck: + checks: + - SA1000 + - SA1001 + - SA1002 + - SA1003 + - SA1004 + - SA1005 + - SA1006 + - SA1007 + - SA1008 + - SA1010 + - SA1011 + - SA1012 + - SA1013 + - SA1014 + - SA1015 + - SA1016 + - SA1017 + - SA1018 + - SA1019 + - SA1020 + - SA1021 + - SA1023 + - SA1024 + - SA1025 + - SA1026 + - SA1027 + - SA1028 + - SA1029 + - SA1030 + - SA1031 + - SA1032 + - SA2000 + - SA2001 + - SA2002 + - SA2003 + - SA3000 + - SA3001 + - SA4000 + - SA4001 + - SA4003 + - SA4004 + - SA4005 + - SA4006 + - SA4008 + - SA4009 + - SA4010 + - SA4011 + - SA4012 + - SA4013 + - SA4014 + - SA4015 + - SA4016 + - SA4017 + - SA4018 + - SA4019 + - SA4020 + - SA4021 + - SA4022 + - SA4023 + - SA4024 + - SA4025 + - SA4026 + - SA4027 + - SA4028 + - SA4029 + - SA4030 + - SA4031 + - SA4032 + - SA5000 + - SA5001 + - SA5002 + - SA5003 + - SA5004 + - SA5005 + - SA5007 + - SA5008 + - SA5009 + - SA5010 + - SA5011 + - SA5012 + - SA6000 + - SA6001 + - SA6002 + - SA6003 + - SA6005 + - SA6006 + - SA9001 + - SA9002 + - SA9003 + - SA9004 + - SA9005 + - SA9006 + - SA9007 + - SA9008 + - SA9009 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_staticcheck.yml b/pkg/commands/internal/migrate/testdata/linters-settings_staticcheck.yml new file mode 100644 index 000000000000..bb43168ac2f2 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_staticcheck.yml @@ -0,0 +1,104 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + staticcheck: + checks: + - SA1000 + - SA1001 + - SA1002 + - SA1003 + - SA1004 + - SA1005 + - SA1006 + - SA1007 + - SA1008 + - SA1010 + - SA1011 + - SA1012 + - SA1013 + - SA1014 + - SA1015 + - SA1016 + - SA1017 + - SA1018 + - SA1019 + - SA1020 + - SA1021 + - SA1023 + - SA1024 + - SA1025 + - SA1026 + - SA1027 + - SA1028 + - SA1029 + - SA1030 + - SA1031 + - SA1032 + - SA2000 + - SA2001 + - SA2002 + - SA2003 + - SA3000 + - SA3001 + - SA4000 + - SA4001 + - SA4003 + - SA4004 + - SA4005 + - SA4006 + - SA4008 + - SA4009 + - SA4010 + - SA4011 + - SA4012 + - SA4013 + - SA4014 + - SA4015 + - SA4016 + - SA4017 + - SA4018 + - SA4019 + - SA4020 + - SA4021 + - SA4022 + - SA4023 + - SA4024 + - SA4025 + - SA4026 + - SA4027 + - SA4028 + - SA4029 + - SA4030 + - SA4031 + - SA4032 + - SA5000 + - SA5001 + - SA5002 + - SA5003 + - SA5004 + - SA5005 + - SA5007 + - SA5008 + - SA5009 + - SA5010 + - SA5011 + - SA5012 + - SA6000 + - SA6001 + - SA6002 + - SA6003 + - SA6005 + - SA6006 + - SA9001 + - SA9002 + - SA9003 + - SA9004 + - SA9005 + - SA9006 + - SA9007 + - SA9008 + - SA9009 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_stylecheck.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_stylecheck.golden.yml new file mode 100644 index 000000000000..26656198786d --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_stylecheck.golden.yml @@ -0,0 +1,73 @@ +version: "2" +linters: + settings: + staticcheck: + checks: + - ST1000 + - ST1001 + - ST1003 + - ST1005 + - ST1006 + - ST1008 + - ST1011 + - ST1012 + - ST1013 + - ST1015 + - ST1016 + - ST1017 + - ST1018 + - ST1019 + - ST1020 + - ST1021 + - ST1022 + - ST1023 + initialisms: + - ACL + - API + - ASCII + - CPU + - CSS + - DNS + - EOF + - GUID + - HTML + - HTTP + - HTTPS + - ID + - IP + - JSON + - QPS + - RAM + - RPC + - SLA + - SMTP + - SQL + - SSH + - TCP + - TLS + - TTL + - UDP + - UI + - GID + - UID + - UUID + - URI + - URL + - UTF8 + - VM + - XML + - XMPP + - XSRF + - XSS + - SIP + - RTP + - AMQP + - DB + - TS + dot-import-whitelist: + - fmt + http-status-code-whitelist: + - "200" + - "400" + - "404" + - "500" diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_stylecheck.yml b/pkg/commands/internal/migrate/testdata/linters-settings_stylecheck.yml new file mode 100644 index 000000000000..8e1af1e22808 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_stylecheck.yml @@ -0,0 +1,31 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + stylecheck: + dot-import-whitelist: + - fmt + initialisms: [ "ACL", "API", "ASCII", "CPU", "CSS", "DNS", "EOF", "GUID", "HTML", "HTTP", "HTTPS", "ID", "IP", "JSON", "QPS", "RAM", "RPC", "SLA", "SMTP", "SQL", "SSH", "TCP", "TLS", "TTL", "UDP", "UI", "GID", "UID", "UUID", "URI", "URL", "UTF8", "VM", "XML", "XMPP", "XSRF", "XSS", "SIP", "RTP", "AMQP", "DB", "TS" ] + http-status-code-whitelist: [ "200", "400", "404", "500" ] + checks: + - ST1000 + - ST1001 + - ST1003 + - ST1005 + - ST1006 + - ST1008 + - ST1011 + - ST1012 + - ST1013 + - ST1015 + - ST1016 + - ST1017 + - ST1018 + - ST1019 + - ST1020 + - ST1021 + - ST1022 + - ST1023 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_tagalign.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_tagalign.golden.yml new file mode 100644 index 000000000000..012d798bd2d8 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_tagalign.golden.yml @@ -0,0 +1,15 @@ +version: "2" +linters: + settings: + tagalign: + align: false + sort: false + order: + - json + - yaml + - yml + - toml + - mapstructure + - binding + - validate + strict: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_tagalign.yml b/pkg/commands/internal/migrate/testdata/linters-settings_tagalign.yml new file mode 100644 index 000000000000..b3e2fe9e3f15 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_tagalign.yml @@ -0,0 +1,19 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + tagalign: + align: false + sort: false + order: + - json + - yaml + - yml + - toml + - mapstructure + - binding + - validate + strict: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_tagliatelle.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_tagliatelle.golden.yml new file mode 100644 index 000000000000..f53ddec0d5d5 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_tagliatelle.golden.yml @@ -0,0 +1,27 @@ +version: "2" +linters: + settings: + tagliatelle: + case: + rules: + avro: snake + bson: camel + env: upperSnake + envconfig: upperSnake + json: camel + mapstructure: kebab + toml: camel + whatever: snake + xml: camel + yaml: camel + extended-rules: + json: + case: camel + extra-initialisms: true + initialism-overrides: + db: true + lhs: false + use-field-name: true + ignored-fields: + - Bar + - Foo diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_tagliatelle.yml b/pkg/commands/internal/migrate/testdata/linters-settings_tagliatelle.yml new file mode 100644 index 000000000000..56ce68704b39 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_tagliatelle.yml @@ -0,0 +1,43 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + tagliatelle: + case: + rules: + json: camel + yaml: camel + xml: camel + toml: camel + bson: camel + avro: snake + mapstructure: kebab + env: upperSnake + envconfig: upperSnake + whatever: snake + extended-rules: + json: + case: camel + extra-initialisms: true + initialism-overrides: + DB: true + LHS: false + use-field-name: true + ignored-fields: + - Bar + - Foo + overrides: + - + pkg: foo/bar + rules: + json: snake + xml: pascal + extended-rules: + use-field-name: true + ignored-fields: + - Bar + - Foo + ignore: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_tenv.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_tenv.golden.yml new file mode 100644 index 000000000000..86fc037862fa --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_tenv.golden.yml @@ -0,0 +1,5 @@ +version: "2" +linters: + settings: + tenv: + all: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_tenv.yml b/pkg/commands/internal/migrate/testdata/linters-settings_tenv.yml new file mode 100644 index 000000000000..4dfe2d567852 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_tenv.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + tenv: + all: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_testifylint.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_testifylint.golden.yml new file mode 100644 index 000000000000..dbae40e35c5d --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_testifylint.golden.yml @@ -0,0 +1,67 @@ +version: "2" +linters: + settings: + testifylint: + enable-all: true + disable-all: true + enable: + - blank-import + - bool-compare + - compares + - contains + - empty + - encoded-compare + - error-is-as + - error-nil + - expected-actual + - float-compare + - formatter + - go-require + - len + - negative-positive + - nil-compare + - regexp + - require-error + - suite-broken-parallel + - suite-dont-use-pkg + - suite-extra-assert-call + - suite-subtest-run + - suite-thelper + - useless-assert + disable: + - blank-import + - bool-compare + - compares + - contains + - empty + - encoded-compare + - error-is-as + - error-nil + - expected-actual + - float-compare + - formatter + - go-require + - len + - negative-positive + - nil-compare + - regexp + - require-error + - suite-broken-parallel + - suite-dont-use-pkg + - suite-extra-assert-call + - suite-subtest-run + - suite-thelper + - useless-assert + bool-compare: + ignore-custom-types: true + expected-actual: + pattern: ^expected + formatter: + check-format-string: false + require-f-funcs: true + go-require: + ignore-http-handlers: true + require-error: + fn-pattern: ^(Errorf?|NoErrorf?)$ + suite-extra-assert-call: + mode: require diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_testifylint.yml b/pkg/commands/internal/migrate/testdata/linters-settings_testifylint.yml new file mode 100644 index 000000000000..267c4ac2f122 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_testifylint.yml @@ -0,0 +1,71 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + testifylint: + enable-all: true + disable: + - blank-import + - bool-compare + - compares + - contains + - empty + - encoded-compare + - error-is-as + - error-nil + - expected-actual + - float-compare + - formatter + - go-require + - len + - negative-positive + - nil-compare + - regexp + - require-error + - suite-broken-parallel + - suite-dont-use-pkg + - suite-extra-assert-call + - suite-subtest-run + - suite-thelper + - useless-assert + disable-all: true + enable: + - blank-import + - bool-compare + - compares + - contains + - empty + - encoded-compare + - error-is-as + - error-nil + - expected-actual + - float-compare + - formatter + - go-require + - len + - negative-positive + - nil-compare + - regexp + - require-error + - suite-broken-parallel + - suite-dont-use-pkg + - suite-extra-assert-call + - suite-subtest-run + - suite-thelper + - useless-assert + bool-compare: + ignore-custom-types: true + expected-actual: + pattern: ^expected + formatter: + check-format-string: false + require-f-funcs: true + go-require: + ignore-http-handlers: true + require-error: + fn-pattern: ^(Errorf?|NoErrorf?)$ + suite-extra-assert-call: + mode: require diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_testpackage.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_testpackage.golden.yml new file mode 100644 index 000000000000..1d993011cfd6 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_testpackage.golden.yml @@ -0,0 +1,8 @@ +version: "2" +linters: + settings: + testpackage: + skip-regexp: (export|internal)_test\.go + allow-packages: + - example + - main diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_testpackage.yml b/pkg/commands/internal/migrate/testdata/linters-settings_testpackage.yml new file mode 100644 index 000000000000..91d1a222e754 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_testpackage.yml @@ -0,0 +1,12 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + testpackage: + skip-regexp: (export|internal)_test\.go + allow-packages: + - example + - main diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_thelper.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_thelper.golden.yml new file mode 100644 index 000000000000..0fc94b5d43b8 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_thelper.golden.yml @@ -0,0 +1,20 @@ +version: "2" +linters: + settings: + thelper: + test: + first: false + name: false + begin: false + fuzz: + first: false + name: false + begin: false + benchmark: + first: false + name: false + begin: false + tb: + first: false + name: false + begin: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_thelper.yml b/pkg/commands/internal/migrate/testdata/linters-settings_thelper.yml new file mode 100644 index 000000000000..b2fa9ebb488d --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_thelper.yml @@ -0,0 +1,24 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + thelper: + test: + first: false + name: false + begin: false + benchmark: + first: false + name: false + begin: false + tb: + first: false + name: false + begin: false + fuzz: + first: false + name: false + begin: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_unconvert.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_unconvert.golden.yml new file mode 100644 index 000000000000..698466dcb44a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_unconvert.golden.yml @@ -0,0 +1,6 @@ +version: "2" +linters: + settings: + unconvert: + fast-math: true + safe: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_unconvert.yml b/pkg/commands/internal/migrate/testdata/linters-settings_unconvert.yml new file mode 100644 index 000000000000..16bf3ee05c91 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_unconvert.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + unconvert: + fast-math: true + safe: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_unparam.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_unparam.golden.yml new file mode 100644 index 000000000000..6b82a3776c0f --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_unparam.golden.yml @@ -0,0 +1,5 @@ +version: "2" +linters: + settings: + unparam: + check-exported: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_unparam.yml b/pkg/commands/internal/migrate/testdata/linters-settings_unparam.yml new file mode 100644 index 000000000000..f0f1eedf5d0c --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_unparam.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + unparam: + check-exported: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_unused.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_unused.golden.yml new file mode 100644 index 000000000000..9cd72d9690b8 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_unused.golden.yml @@ -0,0 +1,10 @@ +version: "2" +linters: + settings: + unused: + field-writes-are-uses: false + post-statements-are-reads: true + exported-fields-are-used: false + parameters-are-used: false + local-variables-are-used: false + generated-is-used: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_unused.yml b/pkg/commands/internal/migrate/testdata/linters-settings_unused.yml new file mode 100644 index 000000000000..3ba9786d3bfe --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_unused.yml @@ -0,0 +1,14 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + unused: + field-writes-are-uses: false + post-statements-are-reads: true + exported-fields-are-used: false + parameters-are-used: false + local-variables-are-used: false + generated-is-used: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_usestdlibvars.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_usestdlibvars.golden.yml new file mode 100644 index 000000000000..901e7ff1bc5d --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_usestdlibvars.golden.yml @@ -0,0 +1,14 @@ +version: "2" +linters: + settings: + usestdlibvars: + http-method: false + http-status-code: false + time-weekday: true + time-month: true + time-layout: true + crypto-hash: true + default-rpc-path: true + sql-isolation-level: true + tls-signature-scheme: true + constant-kind: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_usestdlibvars.yml b/pkg/commands/internal/migrate/testdata/linters-settings_usestdlibvars.yml new file mode 100644 index 000000000000..10fac32abb71 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_usestdlibvars.yml @@ -0,0 +1,18 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + usestdlibvars: + http-method: false + http-status-code: false + time-weekday: true + time-month: true + time-layout: true + crypto-hash: true + default-rpc-path: true + sql-isolation-level: true + tls-signature-scheme: true + constant-kind: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_usetesting.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_usetesting.golden.yml new file mode 100644 index 000000000000..e309adfab13a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_usetesting.golden.yml @@ -0,0 +1,11 @@ +version: "2" +linters: + settings: + usetesting: + context-background: false + context-todo: false + os-chdir: false + os-mkdir-temp: false + os-setenv: false + os-temp-dir: true + os-create-temp: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_usetesting.yml b/pkg/commands/internal/migrate/testdata/linters-settings_usetesting.yml new file mode 100644 index 000000000000..01fd23f586cf --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_usetesting.yml @@ -0,0 +1,15 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + usetesting: + os-create-temp: false + os-mkdir-temp: false + os-setenv: false + os-temp-dir: true + os-chdir: false + context-background: false + context-todo: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_varnamelen.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_varnamelen.golden.yml new file mode 100644 index 000000000000..dcfe0c357ad5 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_varnamelen.golden.yml @@ -0,0 +1,23 @@ +version: "2" +linters: + settings: + varnamelen: + max-distance: 6 + min-name-length: 2 + check-receiver: true + check-return: true + check-type-param: true + ignore-names: + - err + ignore-type-assert-ok: true + ignore-map-index-ok: true + ignore-chan-recv-ok: true + ignore-decls: + - c echo.Context + - t testing.T + - f *foo.Bar + - e error + - i int + - const C + - T any + - m map[string]int diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_varnamelen.yml b/pkg/commands/internal/migrate/testdata/linters-settings_varnamelen.yml new file mode 100644 index 000000000000..f182ec6b427f --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_varnamelen.yml @@ -0,0 +1,27 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + varnamelen: + max-distance: 6 + min-name-length: 2 + check-receiver: true + check-return: true + check-type-param: true + ignore-type-assert-ok: true + ignore-map-index-ok: true + ignore-chan-recv-ok: true + ignore-names: + - err + ignore-decls: + - c echo.Context + - t testing.T + - f *foo.Bar + - e error + - i int + - const C + - T any + - m map[string]int diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_whitespace.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_whitespace.golden.yml new file mode 100644 index 000000000000..956381df4d7b --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_whitespace.golden.yml @@ -0,0 +1,6 @@ +version: "2" +linters: + settings: + whitespace: + multi-if: true + multi-func: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_whitespace.yml b/pkg/commands/internal/migrate/testdata/linters-settings_whitespace.yml new file mode 100644 index 000000000000..50b301d73760 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_whitespace.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + whitespace: + multi-if: true + multi-func: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_wrapcheck.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_wrapcheck.golden.yml new file mode 100644 index 000000000000..cd706f1c8969 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_wrapcheck.golden.yml @@ -0,0 +1,24 @@ +version: "2" +linters: + settings: + wrapcheck: + extra-ignore-sigs: + - .CustomError( + - .SpecificWrap( + ignore-sigs: + - .Errorf( + - errors.New( + - errors.Unwrap( + - errors.Join( + - .Wrap( + - .Wrapf( + - .WithMessage( + - .WithMessagef( + - .WithStack( + ignore-sig-regexps: + - \.New.*Error\( + ignore-package-globs: + - encoding/* + - github.com/pkg/* + ignore-interface-regexps: + - ^(?i)c(?-i)ach(ing|e) diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_wrapcheck.yml b/pkg/commands/internal/migrate/testdata/linters-settings_wrapcheck.yml new file mode 100644 index 000000000000..2ccb1e439059 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_wrapcheck.yml @@ -0,0 +1,28 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + wrapcheck: + extra-ignore-sigs: + - .CustomError( + - .SpecificWrap( + ignoreSigs: + - .Errorf( + - errors.New( + - errors.Unwrap( + - errors.Join( + - .Wrap( + - .Wrapf( + - .WithMessage( + - .WithMessagef( + - .WithStack( + ignoreSigRegexps: + - \.New.*Error\( + ignorePackageGlobs: + - encoding/* + - github.com/pkg/* + ignoreInterfaceRegexps: + - ^(?i)c(?-i)ach(ing|e) diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_wsl.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_wsl.golden.yml new file mode 100644 index 000000000000..aba22c31e21b --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_wsl.golden.yml @@ -0,0 +1,22 @@ +version: "2" +linters: + settings: + wsl: + strict-append: false + allow-assign-and-call: false + allow-assign-and-anything: true + allow-multiline-assign: false + force-case-trailing-whitespace: 1 + allow-trailing-comment: true + allow-separated-leading-comment: true + allow-cuddle-declarations: true + allow-cuddle-with-calls: + - Foo + - Bar + allow-cuddle-with-rhs: + - Foo + - Bar + force-err-cuddling: true + error-variable-names: + - foo + force-short-decl-cuddling: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_wsl.yml b/pkg/commands/internal/migrate/testdata/linters-settings_wsl.yml new file mode 100644 index 000000000000..8e2d46fbcf68 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_wsl.yml @@ -0,0 +1,21 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters-settings: + wsl: + strict-append: false + allow-assign-and-call: false + allow-assign-and-anything: true + allow-multiline-assign: false + force-case-trailing-whitespace: 1 + allow-trailing-comment: true + allow-separated-leading-comment: true + allow-cuddle-declarations: true + allow-cuddle-with-calls: [ "Foo", "Bar" ] + allow-cuddle-with-rhs: [ "Foo", "Bar" ] + force-err-cuddling: true + error-variable-names: [ "foo" ] + force-short-decl-cuddling: true diff --git a/pkg/commands/internal/migrate/testdata/linters_01.golden.yml b/pkg/commands/internal/migrate/testdata/linters_01.golden.yml new file mode 100644 index 000000000000..a226c8f1cea0 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_01.golden.yml @@ -0,0 +1,115 @@ +version: "2" +linters: + default: none + enable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - err113 + - errcheck + - errchkjson + - errname + - errorlint + - exhaustive + - exhaustruct + - exptostd + - fatcontext + - forbidigo + - forcetypeassert + - funlen + - ginkgolinter + - gocheckcompilerdirectives + - gochecknoglobals + - gochecknoinits + - gochecksumtype + - gocognit + - goconst + - gocritic + - gocyclo + - godot + - godox + - goheader + - gomoddirectives + - gomodguard + - goprintffuncname + - gosec + - gosmopolitan + - govet + - grouper + - iface + - importas + - inamedparam + - ineffassign + - interfacebloat + - intrange + - ireturn + - lll + - loggercheck + - maintidx + - makezero + - mirror + - misspell + - mnd + - musttag + - mycustomlinter1 + - mycustomlinter2 + - nakedret + - nestif + - nilerr + - nilnesserr + - nilnil + - nlreturn + - noctx + - nolintlint + - nonamedreturns + - nosprintfhostport + - paralleltest + - perfsprint + - prealloc + - predeclared + - promlinter + - protogetter + - reassign + - recvcheck + - revive + - rowserrcheck + - sloglint + - spancheck + - sqlclosecheck + - staticcheck + - tagalign + - tagliatelle + - testableexamples + - testifylint + - testpackage + - thelper + - tparallel + - unconvert + - unparam + - unused + - usestdlibvars + - usetesting + - varnamelen + - wastedassign + - whitespace + - wrapcheck + - wsl + - zerologlint +formatters: + enable: + - gci + - gofmt + - gofumpt + - goimports diff --git a/pkg/commands/internal/migrate/testdata/linters_01.yml b/pkg/commands/internal/migrate/testdata/linters_01.yml new file mode 100644 index 000000000000..8eec017ea93f --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_01.yml @@ -0,0 +1,121 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +# case: disable-all + enable +linters: + disable-all: true + enable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - err113 + - errcheck + - errchkjson + - errname + - errorlint + - exhaustive + - exhaustruct + - exptostd + - fatcontext + - forbidigo + - forcetypeassert + - funlen + - gci + - ginkgolinter + - gocheckcompilerdirectives + - gochecknoglobals + - gochecknoinits + - gochecksumtype + - gocognit + - goconst + - gocritic + - gocyclo + - godot + - godox + - gofmt + - gofumpt + - goheader + - goimports + - gomoddirectives + - gomodguard + - goprintffuncname + - gosec + - gosimple + - gosmopolitan + - govet + - grouper + - iface + - importas + - inamedparam + - ineffassign + - interfacebloat + - intrange + - ireturn + - lll + - loggercheck + - maintidx + - makezero + - mirror + - misspell + - mnd + - musttag + - nakedret + - nestif + - nilerr + - nilnesserr + - nilnil + - nlreturn + - noctx + - nolintlint + - nonamedreturns + - nosprintfhostport + - paralleltest + - perfsprint + - prealloc + - predeclared + - promlinter + - protogetter + - reassign + - recvcheck + - revive + - rowserrcheck + - sloglint + - spancheck + - sqlclosecheck + - staticcheck + - stylecheck + - tagalign + - tagliatelle + - testableexamples + - testifylint + - testpackage + - thelper + - tparallel + - unconvert + - unparam + - unused + - usestdlibvars + - usetesting + - varnamelen + - wastedassign + - whitespace + - wrapcheck + - wsl + - zerologlint + - mycustomlinter1 + - mycustomlinter2 diff --git a/pkg/commands/internal/migrate/testdata/linters_02.golden.yml b/pkg/commands/internal/migrate/testdata/linters_02.golden.yml new file mode 100644 index 000000000000..884441141183 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_02.golden.yml @@ -0,0 +1,110 @@ +version: "2" +linters: + default: all + disable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - err113 + - errcheck + - errchkjson + - errname + - errorlint + - exhaustive + - exhaustruct + - exptostd + - fatcontext + - forbidigo + - forcetypeassert + - funlen + - ginkgolinter + - gocheckcompilerdirectives + - gochecknoglobals + - gochecknoinits + - gochecksumtype + - gocognit + - goconst + - gocritic + - gocyclo + - godot + - godox + - goheader + - gomoddirectives + - gomodguard + - goprintffuncname + - gosec + - gosmopolitan + - govet + - grouper + - iface + - importas + - inamedparam + - ineffassign + - interfacebloat + - intrange + - ireturn + - lll + - loggercheck + - maintidx + - makezero + - mirror + - misspell + - mnd + - musttag + - mycustomlinter1 + - mycustomlinter2 + - nakedret + - nestif + - nilerr + - nilnesserr + - nilnil + - nlreturn + - noctx + - nolintlint + - nonamedreturns + - nosprintfhostport + - paralleltest + - perfsprint + - prealloc + - predeclared + - promlinter + - protogetter + - reassign + - recvcheck + - revive + - rowserrcheck + - sloglint + - spancheck + - sqlclosecheck + - staticcheck + - tagalign + - tagliatelle + - tenv + - testableexamples + - testifylint + - testpackage + - thelper + - tparallel + - unconvert + - unparam + - unused + - usestdlibvars + - usetesting + - varnamelen + - wastedassign + - whitespace + - wrapcheck + - wsl + - zerologlint diff --git a/pkg/commands/internal/migrate/testdata/linters_02.yml b/pkg/commands/internal/migrate/testdata/linters_02.yml new file mode 100644 index 000000000000..874329665358 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_02.yml @@ -0,0 +1,135 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +# case: enable-all + disable +linters: + enable-all: true + disable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - err113 + - errcheck + - errchkjson + - errname + - errorlint + - exhaustive + - exhaustruct + - exptostd + - fatcontext + - forbidigo + - forcetypeassert + - funlen + - gci + - ginkgolinter + - gocheckcompilerdirectives + - gochecknoglobals + - gochecknoinits + - gochecksumtype + - gocognit + - goconst + - gocritic + - gocyclo + - godot + - godox + - gofmt + - gofumpt + - goheader + - goimports + - gomoddirectives + - gomodguard + - goprintffuncname + - gosec + - gosimple + - gosmopolitan + - govet + - grouper + - iface + - importas + - inamedparam + - ineffassign + - interfacebloat + - intrange + - ireturn + - lll + - loggercheck + - maintidx + - makezero + - mirror + - misspell + - mnd + - musttag + - nakedret + - nestif + - nilerr + - nilnesserr + - nilnil + - nlreturn + - noctx + - nolintlint + - nonamedreturns + - nosprintfhostport + - paralleltest + - perfsprint + - prealloc + - predeclared + - promlinter + - protogetter + - reassign + - recvcheck + - revive + - rowserrcheck + - sloglint + - spancheck + - sqlclosecheck + - staticcheck + - stylecheck + - tagalign + - tagliatelle + - testableexamples + - testifylint + - testpackage + - thelper + - tparallel + - unconvert + - unparam + - unused + - usestdlibvars + - usetesting + - varnamelen + - wastedassign + - whitespace + - wrapcheck + - wsl + - zerologlint + - deadcode # Deprecated + - execinquery # Deprecated + - exhaustivestruct # Deprecated + - exportloopref # Deprecated + - golint # Deprecated + - gomnd # Deprecated + - ifshort # Deprecated + - interfacer # Deprecated + - maligned # Deprecated + - nosnakecase # Deprecated + - scopelint # Deprecated + - structcheck # Deprecated + - tenv # Deprecated + - varcheck # Deprecated + - mycustomlinter1 + - mycustomlinter2 diff --git a/pkg/commands/internal/migrate/testdata/linters_03.golden.yml b/pkg/commands/internal/migrate/testdata/linters_03.golden.yml new file mode 100644 index 000000000000..e47c3147b104 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_03.golden.yml @@ -0,0 +1,47 @@ +version: "2" +linters: + enable: + - mycustomlinter1 + - mycustomlinter2 + - sqlclosecheck + - staticcheck + - tagalign + - tagliatelle + - testableexamples + - testifylint + - testpackage + - thelper + - tparallel + - unconvert + - unparam + - usestdlibvars + - usetesting + - varnamelen + - wastedassign + - whitespace + - wrapcheck + - wsl + - zerologlint + disable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - mnd + - mycustomlinter3 + - mycustomlinter4 + - tenv +formatters: + enable: + - gofmt diff --git a/pkg/commands/internal/migrate/testdata/linters_03.yml b/pkg/commands/internal/migrate/testdata/linters_03.yml new file mode 100644 index 000000000000..e5cbf8b986c4 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_03.yml @@ -0,0 +1,67 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +# case: enable + disable +linters: + enable: + - gofmt + - sqlclosecheck + - staticcheck + - stylecheck + - tagalign + - tagliatelle + - testableexamples + - testifylint + - testpackage + - thelper + - tparallel + - unconvert + - unparam + - unused + - usestdlibvars + - usetesting + - varnamelen + - wastedassign + - whitespace + - wrapcheck + - wsl + - zerologlint + - mycustomlinter1 + - mycustomlinter2 + + disable: + - goimports + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - deadcode # Deprecated + - execinquery # Deprecated + - exhaustivestruct # Deprecated + - exportloopref # Deprecated + - golint # Deprecated + - gomnd # Deprecated + - ifshort # Deprecated + - interfacer # Deprecated + - maligned # Deprecated + - nosnakecase # Deprecated + - scopelint # Deprecated + - structcheck # Deprecated + - tenv # Deprecated + - varcheck # Deprecated + - mycustomlinter3 + - mycustomlinter4 diff --git a/pkg/commands/internal/migrate/testdata/linters_04.golden.yml b/pkg/commands/internal/migrate/testdata/linters_04.golden.yml new file mode 100644 index 000000000000..ab3c9daa1dc5 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_04.golden.yml @@ -0,0 +1,29 @@ +version: "2" +linters: + default: none + enable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - err113 + - errcheck + - gomoddirectives + - gomodguard +formatters: + enable: + - gci + - gofmt + - gofumpt + - goimports diff --git a/pkg/commands/internal/migrate/testdata/linters_04.yml b/pkg/commands/internal/migrate/testdata/linters_04.yml new file mode 100644 index 000000000000..ab488c928739 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_04.yml @@ -0,0 +1,31 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +# case: disable-all + enable + presets +linters: + disable-all: true + enable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - err113 + - errcheck + + presets: + - format + - module diff --git a/pkg/commands/internal/migrate/testdata/linters_05.golden.yml b/pkg/commands/internal/migrate/testdata/linters_05.golden.yml new file mode 100644 index 000000000000..30be0c2ac631 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_05.golden.yml @@ -0,0 +1,21 @@ +version: "2" +linters: + default: all + disable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - err113 + - errcheck diff --git a/pkg/commands/internal/migrate/testdata/linters_05.yml b/pkg/commands/internal/migrate/testdata/linters_05.yml new file mode 100644 index 000000000000..81782cfddf2a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_05.yml @@ -0,0 +1,31 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +# case: enable-all + disable + presets +linters: + enable-all: true + disable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - err113 + - errcheck + + presets: + - format + - module diff --git a/pkg/commands/internal/migrate/testdata/linters_06.golden.yml b/pkg/commands/internal/migrate/testdata/linters_06.golden.yml new file mode 100644 index 000000000000..3993d9059bb3 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_06.golden.yml @@ -0,0 +1,51 @@ +version: "2" +linters: + enable: + - gomoddirectives + - gomodguard + - mycustomlinter1 + - mycustomlinter2 + - sqlclosecheck + - staticcheck + - tagalign + - tagliatelle + - testableexamples + - testifylint + - testpackage + - thelper + - tparallel + - unconvert + - unparam + - usestdlibvars + - usetesting + - varnamelen + - wastedassign + - whitespace + - wrapcheck + - wsl + - zerologlint + disable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - mnd + - mycustomlinter3 + - mycustomlinter4 + - tenv +formatters: + enable: + - gci + - gofmt + - gofumpt diff --git a/pkg/commands/internal/migrate/testdata/linters_06.yml b/pkg/commands/internal/migrate/testdata/linters_06.yml new file mode 100644 index 000000000000..335eaa6f2cc9 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_06.yml @@ -0,0 +1,71 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +# case: enable + disable + presets +linters: + enable: + - gofmt + - sqlclosecheck + - staticcheck + - stylecheck + - tagalign + - tagliatelle + - testableexamples + - testifylint + - testpackage + - thelper + - tparallel + - unconvert + - unparam + - unused + - usestdlibvars + - usetesting + - varnamelen + - wastedassign + - whitespace + - wrapcheck + - wsl + - zerologlint + - mycustomlinter1 + - mycustomlinter2 + + disable: + - goimports + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - deadcode # Deprecated + - execinquery # Deprecated + - exhaustivestruct # Deprecated + - exportloopref # Deprecated + - golint # Deprecated + - gomnd # Deprecated + - ifshort # Deprecated + - interfacer # Deprecated + - maligned # Deprecated + - nosnakecase # Deprecated + - scopelint # Deprecated + - structcheck # Deprecated + - tenv # Deprecated + - varcheck # Deprecated + - mycustomlinter3 + - mycustomlinter4 + + presets: + - format + - module diff --git a/pkg/commands/internal/migrate/testdata/linters_07.golden.yml b/pkg/commands/internal/migrate/testdata/linters_07.golden.yml new file mode 100644 index 000000000000..9d6ae59f2ba0 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_07.golden.yml @@ -0,0 +1,113 @@ +version: "2" +linters: + default: none + enable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - err113 + - errcheck + - errchkjson + - errname + - errorlint + - exhaustive + - exhaustruct + - exptostd + - fatcontext + - forbidigo + - forcetypeassert + - funlen + - ginkgolinter + - gocheckcompilerdirectives + - gochecknoglobals + - gochecknoinits + - gochecksumtype + - gocognit + - goconst + - gocritic + - gocyclo + - godot + - godox + - goheader + - gomoddirectives + - gomodguard + - goprintffuncname + - gosec + - gosmopolitan + - govet + - grouper + - iface + - importas + - inamedparam + - ineffassign + - interfacebloat + - intrange + - ireturn + - lll + - loggercheck + - maintidx + - makezero + - mirror + - misspell + - mnd + - musttag + - nakedret + - nestif + - nilerr + - nilnesserr + - nilnil + - nlreturn + - noctx + - nolintlint + - nonamedreturns + - nosprintfhostport + - paralleltest + - perfsprint + - prealloc + - predeclared + - promlinter + - protogetter + - reassign + - recvcheck + - revive + - rowserrcheck + - sloglint + - spancheck + - sqlclosecheck + - staticcheck + - tagalign + - tagliatelle + - testableexamples + - testifylint + - testpackage + - thelper + - tparallel + - unconvert + - unparam + - unused + - usestdlibvars + - usetesting + - varnamelen + - wastedassign + - whitespace + - wrapcheck + - wsl + - zerologlint +formatters: + enable: + - gci + - gofmt + - gofumpt + - goimports diff --git a/pkg/commands/internal/migrate/testdata/linters_07.yml b/pkg/commands/internal/migrate/testdata/linters_07.yml new file mode 100644 index 000000000000..f10a36e3c90e --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_07.yml @@ -0,0 +1,120 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +# case: disable-all + enable + fast +linters: + fast: true + disable-all: true + enable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - err113 + - errcheck + - errchkjson + - errname + - errorlint + - exhaustive + - exhaustruct + - exptostd + - fatcontext + - forbidigo + - forcetypeassert + - funlen + - gci + - ginkgolinter + - gocheckcompilerdirectives + - gochecknoglobals + - gochecknoinits + - gochecksumtype + - gocognit + - goconst + - gocritic + - gocyclo + - godot + - godox + - gofmt + - gofumpt + - goheader + - goimports + - gomoddirectives + - gomodguard + - goprintffuncname + - gosec + - gosimple + - gosmopolitan + - govet + - grouper + - iface + - importas + - inamedparam + - ineffassign + - interfacebloat + - intrange + - ireturn + - lll + - loggercheck + - maintidx + - makezero + - mirror + - misspell + - mnd + - musttag + - nakedret + - nestif + - nilerr + - nilnesserr + - nilnil + - nlreturn + - noctx + - nolintlint + - nonamedreturns + - nosprintfhostport + - paralleltest + - perfsprint + - prealloc + - predeclared + - promlinter + - protogetter + - reassign + - recvcheck + - revive + - rowserrcheck + - sloglint + - spancheck + - sqlclosecheck + - staticcheck + - stylecheck + - tagalign + - tagliatelle + - testableexamples + - testifylint + - testpackage + - thelper + - tparallel + - unconvert + - unparam + - unused + - usestdlibvars + - usetesting + - varnamelen + - wastedassign + - whitespace + - wrapcheck + - wsl + - zerologlint diff --git a/pkg/commands/internal/migrate/testdata/linters_08.golden.yml b/pkg/commands/internal/migrate/testdata/linters_08.golden.yml new file mode 100644 index 000000000000..fea9f8bac857 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_08.golden.yml @@ -0,0 +1,78 @@ +version: "2" +linters: + default: all + disable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - err113 + - errcheck + - errchkjson + - errname + - errorlint + - exhaustive + - exhaustruct + - exptostd + - fatcontext + - forbidigo + - forcetypeassert + - funlen + - ginkgolinter + - gocheckcompilerdirectives + - gochecknoglobals + - gochecknoinits + - gochecksumtype + - gocognit + - gocritic + - gosec + - gosmopolitan + - govet + - iface + - importas + - intrange + - ireturn + - loggercheck + - makezero + - mirror + - musttag + - nilerr + - nilnesserr + - nilnil + - noctx + - nonamedreturns + - paralleltest + - perfsprint + - protogetter + - reassign + - recvcheck + - revive + - rowserrcheck + - sloglint + - spancheck + - sqlclosecheck + - staticcheck + - tagliatelle + - tenv + - testifylint + - thelper + - tparallel + - unconvert + - unparam + - unused + - usetesting + - varnamelen + - wastedassign + - wrapcheck + - zerologlint diff --git a/pkg/commands/internal/migrate/testdata/linters_08.yml b/pkg/commands/internal/migrate/testdata/linters_08.yml new file mode 100644 index 000000000000..4432b25c24e0 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_08.yml @@ -0,0 +1,46 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +# case: enable-all + disable + fast +linters: + fast: true + enable-all: true + disable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - err113 + - errcheck + - errchkjson + - errname + - errorlint + - exhaustive + - exhaustruct + - exptostd + - fatcontext + - forbidigo + - forcetypeassert + - funlen + - gci + - ginkgolinter + - gocheckcompilerdirectives + - gochecknoglobals + - gochecknoinits + - gochecksumtype + - gocognit + diff --git a/pkg/commands/internal/migrate/testdata/linters_09.golden.yml b/pkg/commands/internal/migrate/testdata/linters_09.golden.yml new file mode 100644 index 000000000000..fde4cc822620 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_09.golden.yml @@ -0,0 +1,50 @@ +version: "2" +linters: + enable: + - mycustomlinter1 + - mycustomlinter2 + - sqlclosecheck + - staticcheck + - tagalign + - tagliatelle + - testableexamples + - testifylint + - testpackage + - thelper + - tparallel + - unconvert + - unparam + - usestdlibvars + - usetesting + - varnamelen + - wastedassign + - whitespace + - wrapcheck + - wsl + - zerologlint + disable: + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - errcheck + - govet + - mnd + - mycustomlinter3 + - mycustomlinter4 + - staticcheck + - tenv +formatters: + enable: + - gofmt diff --git a/pkg/commands/internal/migrate/testdata/linters_09.yml b/pkg/commands/internal/migrate/testdata/linters_09.yml new file mode 100644 index 000000000000..4ff55329ca2b --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_09.yml @@ -0,0 +1,68 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +# case: enable + disable + fast +linters: + fast: true + enable: + - gofmt + - sqlclosecheck + - staticcheck + - stylecheck + - tagalign + - tagliatelle + - testableexamples + - testifylint + - testpackage + - thelper + - tparallel + - unconvert + - unparam + - unused + - usestdlibvars + - usetesting + - varnamelen + - wastedassign + - whitespace + - wrapcheck + - wsl + - zerologlint + - mycustomlinter1 + - mycustomlinter2 + + disable: + - goimports + - asasalint + - asciicheck + - bidichk + - bodyclose + - canonicalheader + - containedctx + - contextcheck + - copyloopvar + - cyclop + - decorder + - depguard + - dogsled + - dupl + - dupword + - durationcheck + - deadcode # Deprecated + - execinquery # Deprecated + - exhaustivestruct # Deprecated + - exportloopref # Deprecated + - golint # Deprecated + - gomnd # Deprecated + - ifshort # Deprecated + - interfacer # Deprecated + - maligned # Deprecated + - nosnakecase # Deprecated + - scopelint # Deprecated + - structcheck # Deprecated + - tenv # Deprecated + - varcheck # Deprecated + - mycustomlinter3 + - mycustomlinter4 diff --git a/pkg/commands/internal/migrate/testdata/linters_10.golden.yml b/pkg/commands/internal/migrate/testdata/linters_10.golden.yml new file mode 100644 index 000000000000..559458ea366b --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_10.golden.yml @@ -0,0 +1,17 @@ +version: "2" +linters: + enable: + - depguard + - gomoddirectives + - gomodguard + disable: + - errcheck + - govet + - staticcheck + - unused +formatters: + enable: + - gci + - gofmt + - gofumpt + - goimports diff --git a/pkg/commands/internal/migrate/testdata/linters_10.yml b/pkg/commands/internal/migrate/testdata/linters_10.yml new file mode 100644 index 000000000000..d540af0f7660 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_10.yml @@ -0,0 +1,15 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +# case: presets + fast +linters: + fast: true + + presets: + - format + - metalinter + - module + diff --git a/pkg/commands/internal/migrate/testdata/output_01_a.golden.yml b/pkg/commands/internal/migrate/testdata/output_01_a.golden.yml new file mode 100644 index 000000000000..01a217688135 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_a.golden.yml @@ -0,0 +1,22 @@ +version: "2" +output: + formats: + text: + path: stdout + json: + path: stderr + tab: + path: stdout + html: + path: stdout + checkstyle: + path: report.xml + code-climate: + path: stdout + junit-xml: + path: stdout + extended: true + teamcity: + path: stdout + sarif: + path: stdout diff --git a/pkg/commands/internal/migrate/testdata/output_01_a.yml b/pkg/commands/internal/migrate/testdata/output_01_a.yml new file mode 100644 index 000000000000..8ed349ea3291 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_a.yml @@ -0,0 +1,23 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +output: + formats: + - format: colored-line-number + - format: line-number + - format: json + path: stderr + - format: colored-tab + - format: tab + - format: html + - format: checkstyle + path: report.xml + - format: code-climate + - format: junit-xml + - format: junit-xml-extended + - format: github-actions + - format: teamcity + - format: sarif diff --git a/pkg/commands/internal/migrate/testdata/output_01_b.golden.yml b/pkg/commands/internal/migrate/testdata/output_01_b.golden.yml new file mode 100644 index 000000000000..3238590337c5 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_b.golden.yml @@ -0,0 +1,25 @@ +version: "2" +output: + formats: + text: + path: stdout + print-linter-name: true + print-issued-lines: true + json: + path: stderr + tab: + path: stdout + print-linter-name: true + html: + path: stdout + checkstyle: + path: report.xml + code-climate: + path: stdout + junit-xml: + path: stdout + extended: true + teamcity: + path: stdout + sarif: + path: stdout diff --git a/pkg/commands/internal/migrate/testdata/output_01_b.yml b/pkg/commands/internal/migrate/testdata/output_01_b.yml new file mode 100644 index 000000000000..84d538fab61f --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_b.yml @@ -0,0 +1,26 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +output: + formats: + - format: colored-line-number + - format: line-number + - format: json + path: stderr + - format: colored-tab + - format: tab + - format: html + - format: checkstyle + path: report.xml + - format: code-climate + - format: junit-xml + - format: junit-xml-extended + - format: github-actions + - format: teamcity + - format: sarif + + print-issued-lines: true + print-linter-name: true diff --git a/pkg/commands/internal/migrate/testdata/output_01_c.golden.yml b/pkg/commands/internal/migrate/testdata/output_01_c.golden.yml new file mode 100644 index 000000000000..a3a7bb1a791b --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_c.golden.yml @@ -0,0 +1,25 @@ +version: "2" +output: + formats: + text: + path: stdout + print-linter-name: false + print-issued-lines: false + json: + path: stderr + tab: + path: stdout + print-linter-name: false + html: + path: stdout + checkstyle: + path: report.xml + code-climate: + path: stdout + junit-xml: + path: stdout + extended: true + teamcity: + path: stdout + sarif: + path: stdout diff --git a/pkg/commands/internal/migrate/testdata/output_01_c.yml b/pkg/commands/internal/migrate/testdata/output_01_c.yml new file mode 100644 index 000000000000..6793899afabb --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_c.yml @@ -0,0 +1,26 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +output: + formats: + - format: colored-line-number + - format: line-number + - format: json + path: stderr + - format: colored-tab + - format: tab + - format: html + - format: checkstyle + path: report.xml + - format: code-climate + - format: junit-xml + - format: junit-xml-extended + - format: github-actions + - format: teamcity + - format: sarif + + print-issued-lines: false + print-linter-name: false diff --git a/pkg/commands/internal/migrate/testdata/output_01_d.golden.yml b/pkg/commands/internal/migrate/testdata/output_01_d.golden.yml new file mode 100644 index 000000000000..74a667b5bf62 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_d.golden.yml @@ -0,0 +1,25 @@ +version: "2" +output: + formats: + text: + path: stdout + print-linter-name: false + print-issued-lines: true + json: + path: stderr + tab: + path: stdout + print-linter-name: false + html: + path: stdout + checkstyle: + path: report.xml + code-climate: + path: stdout + junit-xml: + path: stdout + extended: true + teamcity: + path: stdout + sarif: + path: stdout diff --git a/pkg/commands/internal/migrate/testdata/output_01_d.yml b/pkg/commands/internal/migrate/testdata/output_01_d.yml new file mode 100644 index 000000000000..05f582d50934 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_d.yml @@ -0,0 +1,26 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +output: + formats: + - format: colored-line-number + - format: line-number + - format: json + path: stderr + - format: colored-tab + - format: tab + - format: html + - format: checkstyle + path: report.xml + - format: code-climate + - format: junit-xml + - format: junit-xml-extended + - format: github-actions + - format: teamcity + - format: sarif + + print-issued-lines: true + print-linter-name: false diff --git a/pkg/commands/internal/migrate/testdata/output_01_f.golden.yml b/pkg/commands/internal/migrate/testdata/output_01_f.golden.yml new file mode 100644 index 000000000000..4b9cce2039cc --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_f.golden.yml @@ -0,0 +1,25 @@ +version: "2" +output: + formats: + text: + path: stdout + print-linter-name: true + print-issued-lines: false + json: + path: stderr + tab: + path: stdout + print-linter-name: true + html: + path: stdout + checkstyle: + path: report.xml + code-climate: + path: stdout + junit-xml: + path: stdout + extended: true + teamcity: + path: stdout + sarif: + path: stdout diff --git a/pkg/commands/internal/migrate/testdata/output_01_f.yml b/pkg/commands/internal/migrate/testdata/output_01_f.yml new file mode 100644 index 000000000000..198ad9b6a909 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_f.yml @@ -0,0 +1,26 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +output: + formats: + - format: colored-line-number + - format: line-number + - format: json + path: stderr + - format: colored-tab + - format: tab + - format: html + - format: checkstyle + path: report.xml + - format: code-climate + - format: junit-xml + - format: junit-xml-extended + - format: github-actions + - format: teamcity + - format: sarif + + print-issued-lines: false + print-linter-name: true diff --git a/pkg/commands/internal/migrate/testdata/output_01_g.golden.yml b/pkg/commands/internal/migrate/testdata/output_01_g.golden.yml new file mode 100644 index 000000000000..391cd2349159 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_g.golden.yml @@ -0,0 +1,5 @@ +version: "2" +output: + formats: + text: + path: stdout diff --git a/pkg/commands/internal/migrate/testdata/output_01_g.yml b/pkg/commands/internal/migrate/testdata/output_01_g.yml new file mode 100644 index 000000000000..cd79104edb2e --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_g.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +output: + formats: + - format: colored-line-number + - format: line-number diff --git a/pkg/commands/internal/migrate/testdata/output_01_h.golden.yml b/pkg/commands/internal/migrate/testdata/output_01_h.golden.yml new file mode 100644 index 000000000000..8090a8d4ab43 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_h.golden.yml @@ -0,0 +1,6 @@ +version: "2" +output: + formats: + text: + path: stdout + colors: false diff --git a/pkg/commands/internal/migrate/testdata/output_01_h.yml b/pkg/commands/internal/migrate/testdata/output_01_h.yml new file mode 100644 index 000000000000..bae9dc1961e3 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_h.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +output: + formats: + - format: line-number diff --git a/pkg/commands/internal/migrate/testdata/output_01_i.golden.yml b/pkg/commands/internal/migrate/testdata/output_01_i.golden.yml new file mode 100644 index 000000000000..391cd2349159 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_i.golden.yml @@ -0,0 +1,5 @@ +version: "2" +output: + formats: + text: + path: stdout diff --git a/pkg/commands/internal/migrate/testdata/output_01_i.yml b/pkg/commands/internal/migrate/testdata/output_01_i.yml new file mode 100644 index 000000000000..57a44cd1ad69 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_i.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +output: + formats: + - format: colored-line-number diff --git a/pkg/commands/internal/migrate/testdata/output_01_j.golden.yml b/pkg/commands/internal/migrate/testdata/output_01_j.golden.yml new file mode 100644 index 000000000000..123d941b6259 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_j.golden.yml @@ -0,0 +1,5 @@ +version: "2" +output: + formats: + tab: + path: stdout diff --git a/pkg/commands/internal/migrate/testdata/output_01_j.yml b/pkg/commands/internal/migrate/testdata/output_01_j.yml new file mode 100644 index 000000000000..614f91ca2ac9 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_j.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +output: + formats: + - format: colored-tab + - format: tab diff --git a/pkg/commands/internal/migrate/testdata/output_01_k.golden.yml b/pkg/commands/internal/migrate/testdata/output_01_k.golden.yml new file mode 100644 index 000000000000..e79d2a809d50 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_k.golden.yml @@ -0,0 +1,6 @@ +version: "2" +output: + formats: + tab: + path: stdout + colors: false diff --git a/pkg/commands/internal/migrate/testdata/output_01_k.yml b/pkg/commands/internal/migrate/testdata/output_01_k.yml new file mode 100644 index 000000000000..8d51938d4ed0 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_k.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +output: + formats: + - format: tab diff --git a/pkg/commands/internal/migrate/testdata/output_01_l.golden.yml b/pkg/commands/internal/migrate/testdata/output_01_l.golden.yml new file mode 100644 index 000000000000..123d941b6259 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_l.golden.yml @@ -0,0 +1,5 @@ +version: "2" +output: + formats: + tab: + path: stdout diff --git a/pkg/commands/internal/migrate/testdata/output_01_l.yml b/pkg/commands/internal/migrate/testdata/output_01_l.yml new file mode 100644 index 000000000000..25dac5d4a11b --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_l.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +output: + formats: + - format: colored-tab diff --git a/pkg/commands/internal/migrate/testdata/output_01_m.golden.yml b/pkg/commands/internal/migrate/testdata/output_01_m.golden.yml new file mode 100644 index 000000000000..ad3923ee39da --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_m.golden.yml @@ -0,0 +1,6 @@ +version: "2" +output: + formats: + junit-xml: + path: stdout + extended: true diff --git a/pkg/commands/internal/migrate/testdata/output_01_m.yml b/pkg/commands/internal/migrate/testdata/output_01_m.yml new file mode 100644 index 000000000000..1d6ac986d8a9 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_m.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +output: + formats: + - format: junit-xml + - format: junit-xml-extended diff --git a/pkg/commands/internal/migrate/testdata/output_01_o.golden.yml b/pkg/commands/internal/migrate/testdata/output_01_o.golden.yml new file mode 100644 index 000000000000..ad3923ee39da --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_o.golden.yml @@ -0,0 +1,6 @@ +version: "2" +output: + formats: + junit-xml: + path: stdout + extended: true diff --git a/pkg/commands/internal/migrate/testdata/output_01_o.yml b/pkg/commands/internal/migrate/testdata/output_01_o.yml new file mode 100644 index 000000000000..dc2e60e66d6a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_o.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +output: + formats: + - format: junit-xml-extended diff --git a/pkg/commands/internal/migrate/testdata/output_01_p.golden.yml b/pkg/commands/internal/migrate/testdata/output_01_p.golden.yml new file mode 100644 index 000000000000..f02ec6d441bd --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_p.golden.yml @@ -0,0 +1,5 @@ +version: "2" +output: + formats: + junit-xml: + path: stdout diff --git a/pkg/commands/internal/migrate/testdata/output_01_p.yml b/pkg/commands/internal/migrate/testdata/output_01_p.yml new file mode 100644 index 000000000000..f8f036eee99b --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_01_p.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +output: + formats: + - format: junit-xml diff --git a/pkg/commands/internal/migrate/testdata/output_02.golden.yml b/pkg/commands/internal/migrate/testdata/output_02.golden.yml new file mode 100644 index 000000000000..26b4afdb1e3a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_02.golden.yml @@ -0,0 +1 @@ +version: "2" diff --git a/pkg/commands/internal/migrate/testdata/output_02.yml b/pkg/commands/internal/migrate/testdata/output_02.yml new file mode 100644 index 000000000000..7611dee59496 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_02.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +output: + print-issued-lines: true + print-linter-name: true + sort-results: true diff --git a/pkg/commands/internal/migrate/testdata/output_03.golden.yml b/pkg/commands/internal/migrate/testdata/output_03.golden.yml new file mode 100644 index 000000000000..ebe416122d3c --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_03.golden.yml @@ -0,0 +1,6 @@ +version: "2" +output: + sort-order: + - linter + - severity + - file diff --git a/pkg/commands/internal/migrate/testdata/output_03.yml b/pkg/commands/internal/migrate/testdata/output_03.yml new file mode 100644 index 000000000000..24d297b93ba9 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_03.yml @@ -0,0 +1,12 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +output: + sort-results: true + sort-order: + - linter + - severity + - file diff --git a/pkg/commands/internal/migrate/testdata/output_04.golden.yml b/pkg/commands/internal/migrate/testdata/output_04.golden.yml new file mode 100644 index 000000000000..d01ac98b0757 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_04.golden.yml @@ -0,0 +1,3 @@ +version: "2" +output: + path-prefix: foo diff --git a/pkg/commands/internal/migrate/testdata/output_04.yml b/pkg/commands/internal/migrate/testdata/output_04.yml new file mode 100644 index 000000000000..61f71c15ea70 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/output_04.yml @@ -0,0 +1,8 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +output: + path-prefix: "foo" diff --git a/pkg/commands/internal/migrate/testdata/run_01.golden.yml b/pkg/commands/internal/migrate/testdata/run_01.golden.yml new file mode 100644 index 000000000000..26b4afdb1e3a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_01.golden.yml @@ -0,0 +1 @@ +version: "2" diff --git a/pkg/commands/internal/migrate/testdata/run_01.yml b/pkg/commands/internal/migrate/testdata/run_01.yml new file mode 100644 index 000000000000..e0633f378781 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_01.yml @@ -0,0 +1,8 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +run: + timeout: 5m diff --git a/pkg/commands/internal/migrate/testdata/run_02_a.golden.yml b/pkg/commands/internal/migrate/testdata/run_02_a.golden.yml new file mode 100644 index 000000000000..26b4afdb1e3a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_02_a.golden.yml @@ -0,0 +1 @@ +version: "2" diff --git a/pkg/commands/internal/migrate/testdata/run_02_a.yml b/pkg/commands/internal/migrate/testdata/run_02_a.yml new file mode 100644 index 000000000000..5036bdeaabfb --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_02_a.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +run: + relative-path-mode: cfg + diff --git a/pkg/commands/internal/migrate/testdata/run_02_b.golden.yml b/pkg/commands/internal/migrate/testdata/run_02_b.golden.yml new file mode 100644 index 000000000000..0fcd0c5d4e1d --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_02_b.golden.yml @@ -0,0 +1,3 @@ +version: "2" +run: + relative-path-mode: gomod diff --git a/pkg/commands/internal/migrate/testdata/run_02_b.yml b/pkg/commands/internal/migrate/testdata/run_02_b.yml new file mode 100644 index 000000000000..4b5369f47d16 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_02_b.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +run: + relative-path-mode: gomod + diff --git a/pkg/commands/internal/migrate/testdata/run_03_a.golden.yml b/pkg/commands/internal/migrate/testdata/run_03_a.golden.yml new file mode 100644 index 000000000000..eafa6acefe49 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_03_a.golden.yml @@ -0,0 +1,3 @@ +version: "2" +run: + issues-exit-code: 2 diff --git a/pkg/commands/internal/migrate/testdata/run_03_a.yml b/pkg/commands/internal/migrate/testdata/run_03_a.yml new file mode 100644 index 000000000000..5c9e291a1101 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_03_a.yml @@ -0,0 +1,8 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +run: + issues-exit-code: 2 diff --git a/pkg/commands/internal/migrate/testdata/run_03_b.golden.yml b/pkg/commands/internal/migrate/testdata/run_03_b.golden.yml new file mode 100644 index 000000000000..f744851ff460 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_03_b.golden.yml @@ -0,0 +1,3 @@ +version: "2" +run: + issues-exit-code: 0 diff --git a/pkg/commands/internal/migrate/testdata/run_03_b.yml b/pkg/commands/internal/migrate/testdata/run_03_b.yml new file mode 100644 index 000000000000..696341642f37 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_03_b.yml @@ -0,0 +1,8 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +run: + issues-exit-code: 0 diff --git a/pkg/commands/internal/migrate/testdata/run_04_a.golden.yml b/pkg/commands/internal/migrate/testdata/run_04_a.golden.yml new file mode 100644 index 000000000000..51123fa772a9 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_04_a.golden.yml @@ -0,0 +1,3 @@ +version: "2" +run: + tests: false diff --git a/pkg/commands/internal/migrate/testdata/run_04_a.yml b/pkg/commands/internal/migrate/testdata/run_04_a.yml new file mode 100644 index 000000000000..94589c85e608 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_04_a.yml @@ -0,0 +1,8 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +run: + tests: false diff --git a/pkg/commands/internal/migrate/testdata/run_04_b.golden.yml b/pkg/commands/internal/migrate/testdata/run_04_b.golden.yml new file mode 100644 index 000000000000..9fe8017d2be4 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_04_b.golden.yml @@ -0,0 +1,3 @@ +version: "2" +run: + tests: true diff --git a/pkg/commands/internal/migrate/testdata/run_04_b.yml b/pkg/commands/internal/migrate/testdata/run_04_b.yml new file mode 100644 index 000000000000..7bf5735cc05d --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_04_b.yml @@ -0,0 +1,8 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +run: + tests: true diff --git a/pkg/commands/internal/migrate/testdata/run_05.golden.yml b/pkg/commands/internal/migrate/testdata/run_05.golden.yml new file mode 100644 index 000000000000..4112af35c08c --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_05.golden.yml @@ -0,0 +1,4 @@ +version: "2" +run: + build-tags: + - mytag diff --git a/pkg/commands/internal/migrate/testdata/run_05.yml b/pkg/commands/internal/migrate/testdata/run_05.yml new file mode 100644 index 000000000000..d9e5c8478cd2 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_05.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +run: + build-tags: + - mytag diff --git a/pkg/commands/internal/migrate/testdata/run_06.golden.yml b/pkg/commands/internal/migrate/testdata/run_06.golden.yml new file mode 100644 index 000000000000..292775be4a4b --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_06.golden.yml @@ -0,0 +1,3 @@ +version: "2" +run: + modules-download-mode: readonly diff --git a/pkg/commands/internal/migrate/testdata/run_06.yml b/pkg/commands/internal/migrate/testdata/run_06.yml new file mode 100644 index 000000000000..5e074452fb09 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_06.yml @@ -0,0 +1,8 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +run: + modules-download-mode: readonly diff --git a/pkg/commands/internal/migrate/testdata/run_07.golden.yml b/pkg/commands/internal/migrate/testdata/run_07.golden.yml new file mode 100644 index 000000000000..3e8a3e09f37a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_07.golden.yml @@ -0,0 +1,4 @@ +version: "2" +run: + allow-parallel-runners: true + allow-serial-runners: true diff --git a/pkg/commands/internal/migrate/testdata/run_07.yml b/pkg/commands/internal/migrate/testdata/run_07.yml new file mode 100644 index 000000000000..2ef06c768080 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_07.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +run: + allow-parallel-runners: true + allow-serial-runners: true + diff --git a/pkg/commands/internal/migrate/testdata/run_08.golden.yml b/pkg/commands/internal/migrate/testdata/run_08.golden.yml new file mode 100644 index 000000000000..cc8f3038379e --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_08.golden.yml @@ -0,0 +1,3 @@ +version: "2" +run: + go: "1.19" diff --git a/pkg/commands/internal/migrate/testdata/run_08.yml b/pkg/commands/internal/migrate/testdata/run_08.yml new file mode 100644 index 000000000000..9ecf53f1d760 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_08.yml @@ -0,0 +1,8 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +run: + go: '1.19' diff --git a/pkg/commands/internal/migrate/testdata/run_09_a.golden.yml b/pkg/commands/internal/migrate/testdata/run_09_a.golden.yml new file mode 100644 index 000000000000..99dbe80a983a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_09_a.golden.yml @@ -0,0 +1,3 @@ +version: "2" +run: + concurrency: 4 diff --git a/pkg/commands/internal/migrate/testdata/run_09_a.yml b/pkg/commands/internal/migrate/testdata/run_09_a.yml new file mode 100644 index 000000000000..c55e2aca17b6 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_09_a.yml @@ -0,0 +1,8 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +run: + concurrency: 4 diff --git a/pkg/commands/internal/migrate/testdata/run_09_b.golden.yml b/pkg/commands/internal/migrate/testdata/run_09_b.golden.yml new file mode 100644 index 000000000000..26b4afdb1e3a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_09_b.golden.yml @@ -0,0 +1 @@ +version: "2" diff --git a/pkg/commands/internal/migrate/testdata/run_09_b.yml b/pkg/commands/internal/migrate/testdata/run_09_b.yml new file mode 100644 index 000000000000..65aff4684bca --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_09_b.yml @@ -0,0 +1,8 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +run: + concurrency: 0 diff --git a/pkg/commands/internal/migrate/testdata/run_10.golden.yml b/pkg/commands/internal/migrate/testdata/run_10.golden.yml new file mode 100644 index 000000000000..410e895d7cd8 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_10.golden.yml @@ -0,0 +1,12 @@ +version: "2" +run: + concurrency: 4 + go: "1.19" + relative-path-mode: gomod + build-tags: + - mytag + modules-download-mode: readonly + issues-exit-code: 2 + tests: false + allow-parallel-runners: true + allow-serial-runners: true diff --git a/pkg/commands/internal/migrate/testdata/run_10.yml b/pkg/commands/internal/migrate/testdata/run_10.yml new file mode 100644 index 000000000000..85f171980a68 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/run_10.yml @@ -0,0 +1,18 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +run: + timeout: 5m + relative-path-mode: gomod + issues-exit-code: 2 + tests: false + build-tags: + - mytag + modules-download-mode: readonly + allow-parallel-runners: true + allow-serial-runners: true + go: '1.19' + concurrency: 4 diff --git a/pkg/commands/internal/migrate/testdata/severity_01.golden.yml b/pkg/commands/internal/migrate/testdata/severity_01.golden.yml new file mode 100644 index 000000000000..e4d07371a241 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/severity_01.golden.yml @@ -0,0 +1,7 @@ +version: "2" +severity: + default: error + rules: + - linters: + - dupl + severity: info diff --git a/pkg/commands/internal/migrate/testdata/severity_01.yml b/pkg/commands/internal/migrate/testdata/severity_01.yml new file mode 100644 index 000000000000..a47df3919c61 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/severity_01.yml @@ -0,0 +1,13 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +severity: + default-severity: error + case-sensitive: true + rules: + - linters: + - dupl + severity: info diff --git a/pkg/commands/internal/migrate/testdata/severity_02.golden.yml b/pkg/commands/internal/migrate/testdata/severity_02.golden.yml new file mode 100644 index 000000000000..479e3c874195 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/severity_02.golden.yml @@ -0,0 +1,3 @@ +version: "2" +severity: + default: error diff --git a/pkg/commands/internal/migrate/testdata/severity_02.yml b/pkg/commands/internal/migrate/testdata/severity_02.yml new file mode 100644 index 000000000000..24faccc13b4e --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/severity_02.yml @@ -0,0 +1,9 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +severity: + default-severity: error + diff --git a/pkg/commands/internal/migrate/testdata/unknown-fields.golden.yml b/pkg/commands/internal/migrate/testdata/unknown-fields.golden.yml new file mode 100644 index 000000000000..c467aae6ab1e --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/unknown-fields.golden.yml @@ -0,0 +1,11 @@ +version: "2" +linters: + exclusions: + generated: lax + paths: + - third_party$ + - builtin$ + - examples$ +formatters: + exclusions: + generated: lax diff --git a/pkg/commands/internal/migrate/testdata/unknown-fields.yml b/pkg/commands/internal/migrate/testdata/unknown-fields.yml new file mode 100644 index 000000000000..fa26685adf9e --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/unknown-fields.yml @@ -0,0 +1,2 @@ +foo: + bar: a From 9bea57a35f7f9bc20be13d5498f4ae7506658b4d Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Wed, 5 Mar 2025 22:27:35 +0100 Subject: [PATCH 07/30] review: add comment on generated files --- pkg/commands/internal/migrate/cloner/cloner.go | 2 ++ pkg/commands/internal/migrate/two/base_rule.go | 2 ++ pkg/commands/internal/migrate/two/config.go | 2 ++ pkg/commands/internal/migrate/two/formatters.go | 2 ++ pkg/commands/internal/migrate/two/formatters_settings.go | 2 ++ pkg/commands/internal/migrate/two/issues.go | 2 ++ pkg/commands/internal/migrate/two/linters.go | 2 ++ pkg/commands/internal/migrate/two/linters_exclusions.go | 2 ++ pkg/commands/internal/migrate/two/linters_settings.go | 2 ++ pkg/commands/internal/migrate/two/output.go | 2 ++ pkg/commands/internal/migrate/two/output_formats.go | 2 ++ pkg/commands/internal/migrate/two/run.go | 2 ++ pkg/commands/internal/migrate/two/severity.go | 2 ++ 13 files changed, 26 insertions(+) diff --git a/pkg/commands/internal/migrate/cloner/cloner.go b/pkg/commands/internal/migrate/cloner/cloner.go index c9cc64623b7b..dd52e52a6ad0 100644 --- a/pkg/commands/internal/migrate/cloner/cloner.go +++ b/pkg/commands/internal/migrate/cloner/cloner.go @@ -173,6 +173,8 @@ func wrapStructTag(s string) string { func writeNewFile(fset *token.FileSet, file *ast.File, srcPath, dstDir string) error { var buf bytes.Buffer + buf.WriteString("// Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT.\n\n") + err := printer.Fprint(&buf, fset, file) if err != nil { return fmt.Errorf("printing %s: %w", srcPath, err) diff --git a/pkg/commands/internal/migrate/two/base_rule.go b/pkg/commands/internal/migrate/two/base_rule.go index 0464832b486f..03eb9ae4c2a4 100644 --- a/pkg/commands/internal/migrate/two/base_rule.go +++ b/pkg/commands/internal/migrate/two/base_rule.go @@ -1,3 +1,5 @@ +// Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. + package two type BaseRule struct { diff --git a/pkg/commands/internal/migrate/two/config.go b/pkg/commands/internal/migrate/two/config.go index 47c982fc0741..37bae3eec69e 100644 --- a/pkg/commands/internal/migrate/two/config.go +++ b/pkg/commands/internal/migrate/two/config.go @@ -1,3 +1,5 @@ +// Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. + package two type Config struct { diff --git a/pkg/commands/internal/migrate/two/formatters.go b/pkg/commands/internal/migrate/two/formatters.go index 7f36c75d031a..85bb5938678e 100644 --- a/pkg/commands/internal/migrate/two/formatters.go +++ b/pkg/commands/internal/migrate/two/formatters.go @@ -1,3 +1,5 @@ +// Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. + package two type Formatters struct { diff --git a/pkg/commands/internal/migrate/two/formatters_settings.go b/pkg/commands/internal/migrate/two/formatters_settings.go index c05e16bb2ef8..5ab41966773a 100644 --- a/pkg/commands/internal/migrate/two/formatters_settings.go +++ b/pkg/commands/internal/migrate/two/formatters_settings.go @@ -1,3 +1,5 @@ +// Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. + package two type FormatterSettings struct { diff --git a/pkg/commands/internal/migrate/two/issues.go b/pkg/commands/internal/migrate/two/issues.go index 925791cca8ec..f23892844c97 100644 --- a/pkg/commands/internal/migrate/two/issues.go +++ b/pkg/commands/internal/migrate/two/issues.go @@ -1,3 +1,5 @@ +// Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. + package two type Issues struct { diff --git a/pkg/commands/internal/migrate/two/linters.go b/pkg/commands/internal/migrate/two/linters.go index 896422ff950e..164ed0df3022 100644 --- a/pkg/commands/internal/migrate/two/linters.go +++ b/pkg/commands/internal/migrate/two/linters.go @@ -1,3 +1,5 @@ +// Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. + package two type Linters struct { diff --git a/pkg/commands/internal/migrate/two/linters_exclusions.go b/pkg/commands/internal/migrate/two/linters_exclusions.go index 760a2c06502b..5d569fd9dfba 100644 --- a/pkg/commands/internal/migrate/two/linters_exclusions.go +++ b/pkg/commands/internal/migrate/two/linters_exclusions.go @@ -1,3 +1,5 @@ +// Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. + package two type LinterExclusions struct { diff --git a/pkg/commands/internal/migrate/two/linters_settings.go b/pkg/commands/internal/migrate/two/linters_settings.go index 1ac1b9e63dd5..0578a1968cc0 100644 --- a/pkg/commands/internal/migrate/two/linters_settings.go +++ b/pkg/commands/internal/migrate/two/linters_settings.go @@ -1,3 +1,5 @@ +// Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. + package two type LintersSettings struct { diff --git a/pkg/commands/internal/migrate/two/output.go b/pkg/commands/internal/migrate/two/output.go index 5f913a1d31df..d49731f43433 100644 --- a/pkg/commands/internal/migrate/two/output.go +++ b/pkg/commands/internal/migrate/two/output.go @@ -1,3 +1,5 @@ +// Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. + package two type Output struct { diff --git a/pkg/commands/internal/migrate/two/output_formats.go b/pkg/commands/internal/migrate/two/output_formats.go index 9ee4e13400da..caed78d87339 100644 --- a/pkg/commands/internal/migrate/two/output_formats.go +++ b/pkg/commands/internal/migrate/two/output_formats.go @@ -1,3 +1,5 @@ +// Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. + package two type Formats struct { diff --git a/pkg/commands/internal/migrate/two/run.go b/pkg/commands/internal/migrate/two/run.go index 0f8127d5c052..65479fb8c313 100644 --- a/pkg/commands/internal/migrate/two/run.go +++ b/pkg/commands/internal/migrate/two/run.go @@ -1,3 +1,5 @@ +// Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. + package two import ( diff --git a/pkg/commands/internal/migrate/two/severity.go b/pkg/commands/internal/migrate/two/severity.go index 73dbce5fb3c7..0d172a977451 100644 --- a/pkg/commands/internal/migrate/two/severity.go +++ b/pkg/commands/internal/migrate/two/severity.go @@ -1,3 +1,5 @@ +// Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. + package two type Severity struct { From 101ac2a0c688bea1c0c8d43ee3c520b4606d3223 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Wed, 5 Mar 2025 22:30:31 +0100 Subject: [PATCH 08/30] review: add comment about v1 configuration files --- pkg/commands/internal/migrate/one/doc.go | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 pkg/commands/internal/migrate/one/doc.go diff --git a/pkg/commands/internal/migrate/one/doc.go b/pkg/commands/internal/migrate/one/doc.go new file mode 100644 index 000000000000..3299b6a2f2d2 --- /dev/null +++ b/pkg/commands/internal/migrate/one/doc.go @@ -0,0 +1,3 @@ +// Package one contains a modified copy of v1 configuration. +// The field types has been modified to use pointer of builtin types. +package one From b7ca75fe49081e79204eebf5b7844961fb7a9218 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Wed, 5 Mar 2025 22:31:51 +0100 Subject: [PATCH 09/30] review: rephrase --- pkg/commands/migrate.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/commands/migrate.go b/pkg/commands/migrate.go index c9ef3259d903..9d290182e4f8 100644 --- a/pkg/commands/migrate.go +++ b/pkg/commands/migrate.go @@ -75,7 +75,7 @@ func newMigrateCommand(log logutils.Log, info BuildInfo) *migrateCommand { "Overrides file format detection.\nIt can be 'yml', 'yaml', 'toml', 'json'.")) fs.BoolVar(&c.opts.skipValidation, "skip-validation", false, - color.GreenString("Skip validating the configuration file on the JSONSchema of the v1.")) + color.GreenString("Skip validation of the configuration file against the JSONSchema for v1.")) c.cmd = migrateCmd From e1022822194279e1fdbd5ba1ced875851314ef3d Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Wed, 5 Mar 2025 22:41:59 +0100 Subject: [PATCH 10/30] review: log level --- pkg/commands/migrate.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkg/commands/migrate.go b/pkg/commands/migrate.go index 9d290182e4f8..56d479b5c20a 100644 --- a/pkg/commands/migrate.go +++ b/pkg/commands/migrate.go @@ -98,7 +98,7 @@ func (c *migrateCommand) execute(_ *cobra.Command, _ []string) error { return err } - c.cmd.Println("Migrating v1 configuration file:", srcPath) + c.log.Infof("Migrating v1 configuration file: %s", srcPath) ext := filepath.Ext(srcPath) if strings.TrimSpace(c.opts.format) != "" { @@ -120,7 +120,7 @@ func (c *migrateCommand) execute(_ *cobra.Command, _ []string) error { return fmt.Errorf("saving configuration file: %w", err) } - c.cmd.Println("Migration done:", dstPath) + c.log.Infof("Migration done: %s", dstPath) return nil } @@ -136,7 +136,7 @@ func (c *migrateCommand) preRunE(cmd *cobra.Command, _ []string) error { os.Exit(exitcodes.NoConfigFileDetected) } - c.cmd.Println("Validating v1 configuration file:", usedConfigFile) + c.log.Infof("Validating v1 configuration file: %s", usedConfigFile) err := validateConfiguration("https://golangci-lint.run/jsonschema/golangci.v1.jsonschema.json", usedConfigFile) if err != nil { @@ -154,6 +154,8 @@ func (c *migrateCommand) preRunE(cmd *cobra.Command, _ []string) error { } func (c *migrateCommand) persistentPreRunE(_ *cobra.Command, args []string) error { + c.log.SetLevel(logutils.LogLevelInfo) + c.log.Infof("%s", c.buildInfo.String()) loader := config.NewBaseLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, c.opts.LoaderOptions, c.cfg, args) @@ -170,7 +172,7 @@ func (c *migrateCommand) backupConfigurationFile(srcPath string) error { filename := strings.TrimSuffix(filepath.Base(srcPath), filepath.Ext(srcPath)) + ".bck" + filepath.Ext(srcPath) dstPath := filepath.Join(filepath.Dir(srcPath), filename) - c.cmd.Println("Saving the v1 configuration to:", dstPath) + c.log.Infof("Saving the v1 configuration to: %s", dstPath) stat, err := os.Stat(srcPath) if err != nil { From ca11e3ee7244bdeaccea62bc4c4ef752ccc6566e Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Wed, 5 Mar 2025 23:04:40 +0100 Subject: [PATCH 11/30] review: remove a switch --- .../internal/migrate/cloner/cloner.go | 45 +++++++++---------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/pkg/commands/internal/migrate/cloner/cloner.go b/pkg/commands/internal/migrate/cloner/cloner.go index dd52e52a6ad0..8e7c4fe5d4f1 100644 --- a/pkg/commands/internal/migrate/cloner/cloner.go +++ b/pkg/commands/internal/migrate/cloner/cloner.go @@ -85,34 +85,33 @@ func processFile(file *ast.File) { var newDecls []ast.Decl for _, decl := range file.Decls { - switch d := decl.(type) { - case *ast.FuncDecl: + d, ok := decl.(*ast.GenDecl) + if !ok { continue + } - case *ast.GenDecl: - switch d.Tok { - case token.CONST, token.VAR: - continue - case token.TYPE: - for _, spec := range d.Specs { - typeSpec, ok := spec.(*ast.TypeSpec) - if !ok { - continue - } - - structType, ok := typeSpec.Type.(*ast.StructType) - if !ok { - continue - } - - processStructFields(structType) + switch d.Tok { + case token.CONST, token.VAR: + continue + case token.TYPE: + for _, spec := range d.Specs { + typeSpec, ok := spec.(*ast.TypeSpec) + if !ok { + continue } - default: - // noop - } - newDecls = append(newDecls, decl) + structType, ok := typeSpec.Type.(*ast.StructType) + if !ok { + continue + } + + processStructFields(structType) + } + default: + // noop } + + newDecls = append(newDecls, decl) } file.Decls = newDecls From d7d498688f7bcd98bd7613931d503879c9d6fbfc Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Wed, 5 Mar 2025 23:56:48 +0100 Subject: [PATCH 12/30] fix: add a missing linter names migration case --- .../internal/migrate/migrate_linter_names.go | 30 ++++++++++++++++--- .../migrate/migrate_linter_names_test.go | 11 +++++++ 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/pkg/commands/internal/migrate/migrate_linter_names.go b/pkg/commands/internal/migrate/migrate_linter_names.go index ed63bc684dfa..dde49dfde939 100644 --- a/pkg/commands/internal/migrate/migrate_linter_names.go +++ b/pkg/commands/internal/migrate/migrate_linter_names.go @@ -46,6 +46,12 @@ func ProcessEffectiveLinters(old one.Linters) (enable, disable []string) { // disableAllFilter generates the value of `enable` when `disable-all` is `true`. func disableAllFilter(old one.Linters) []string { + // Note: + // - disable-all + enable-all + // => impossible (https://github.com/golangci/golangci-lint/blob/e1eb4cb2c7fba29b5831b63e454844d83c692874/pkg/config/linters.go#L38) + // - disable-all + disable + // => impossible (https://github.com/golangci/golangci-lint/blob/e1eb4cb2c7fba29b5831b63e454844d83c692874/pkg/config/linters.go#L47) + // if disable-all -> presets fast enable // - presets fast enable: (presets - [slow]) + enable => effective enable + none // - presets fast: presets - slow => effective enable + none @@ -69,7 +75,16 @@ func disableAllFilter(old one.Linters) []string { // enableAllFilter generates the value of `disable` when `enable-all` is `true`. func enableAllFilter(old one.Linters) []string { - // if enable-all -> presets fast disable + // Note: + // - enable-all + disable-all + // => impossible (https://github.com/golangci/golangci-lint/blob/e1eb4cb2c7fba29b5831b63e454844d83c692874/pkg/config/linters.go#L38) + // - enable-all + enable + fast=false + // => impossible (https://github.com/golangci/golangci-lint/blob/e1eb4cb2c7fba29b5831b63e454844d83c692874/pkg/config/linters.go#L52) + // - enable-all + enable + fast=true + // => possible (https://github.com/golangci/golangci-lint/blob/e1eb4cb2c7fba29b5831b63e454844d83c692874/pkg/config/linters.go#L51) + + // if enable-all -> presets fast enable disable + // - presets fast enable disable: all - fast - enable + disable => effective disable + all // - presets fast disable: all - fast + disable => effective disable + all // - presets fast: all - fast => effective disable + all // - presets disable: disable => effective disable + all @@ -77,11 +92,14 @@ func enableAllFilter(old one.Linters) []string { // - fast: all - fast => effective disable + all // - fast disable: all - fast + disable => effective disable + all - // all - [fast] + disable => effective disable + all + // all - [fast] - enable + disable => effective disable + all names := toNames( slices.Concat( - filter( - allLinters(), keepSlow(old), // all - fast + removeLinters( + filter( + allLinters(), keepSlow(old), // all - fast + ), + allEnabled(old, allLinters()), // - enable ), allDisabled(old, allLinters()), // + disable ), @@ -92,6 +110,10 @@ func enableAllFilter(old one.Linters) []string { // defaultLintersFilter generates the values of `enable` and `disable` when using default linters. func defaultLintersFilter(old one.Linters) (enable, disable []string) { + // Note: + // - a linter cannot be inside `enable` and `disable` in the same configuration + // => https://github.com/golangci/golangci-lint/blob/e1eb4cb2c7fba29b5831b63e454844d83c692874/pkg/config/linters.go#L66 + // if default -> presets fast disable // - presets > fast > disable > enable => effective enable + disable + standard // - (default - fast) - enable + disable => effective disable diff --git a/pkg/commands/internal/migrate/migrate_linter_names_test.go b/pkg/commands/internal/migrate/migrate_linter_names_test.go index e7b62f5e50c8..95318324b136 100644 --- a/pkg/commands/internal/migrate/migrate_linter_names_test.go +++ b/pkg/commands/internal/migrate/migrate_linter_names_test.go @@ -170,6 +170,17 @@ func Test_enableAllFilter(t *testing.T) { }, expected: []string{"asasalint", "bodyclose", "canonicalheader", "containedctx", "contextcheck", "durationcheck", "err113", "errcheck", "errchkjson", "errname", "errorlint", "exhaustive", "exhaustruct", "exptostd", "fatcontext", "forbidigo", "forcetypeassert", "ginkgolinter", "gochecknoglobals", "gochecksumtype", "gocritic", "gosec", "gosimple", "gosmopolitan", "govet", "iface", "importas", "intrange", "ireturn", "lll", "loggercheck", "makezero", "mirror", "misspell", "musttag", "nilerr", "nilnesserr", "nilnil", "noctx", "nonamedreturns", "paralleltest", "perfsprint", "protogetter", "reassign", "recvcheck", "revive", "rowserrcheck", "sloglint", "spancheck", "sqlclosecheck", "staticcheck", "stylecheck", "tagliatelle", "tenv", "testifylint", "thelper", "tparallel", "unconvert", "unparam", "unused", "usetesting", "varnamelen", "wastedassign", "wrapcheck", "zerologlint"}, }, + { + desc: "disable, enable, fast", + old: one.Linters{ + EnableAll: ptr.Pointer(true), + Enable: []string{"canonicalheader", "errname"}, + Disable: []string{"lll", "misspell", "govet"}, + Fast: ptr.Pointer(true), + Presets: nil, + }, + expected: []string{"asasalint", "bodyclose", "containedctx", "contextcheck", "durationcheck", "err113", "errcheck", "errchkjson", "errorlint", "exhaustive", "exhaustruct", "exptostd", "fatcontext", "forbidigo", "forcetypeassert", "ginkgolinter", "gochecknoglobals", "gochecksumtype", "gocritic", "gosec", "gosimple", "gosmopolitan", "govet", "iface", "importas", "intrange", "ireturn", "lll", "loggercheck", "makezero", "mirror", "misspell", "musttag", "nilerr", "nilnesserr", "nilnil", "noctx", "nonamedreturns", "paralleltest", "perfsprint", "protogetter", "reassign", "recvcheck", "revive", "rowserrcheck", "sloglint", "spancheck", "sqlclosecheck", "staticcheck", "stylecheck", "tagliatelle", "tenv", "testifylint", "thelper", "tparallel", "unconvert", "unparam", "unused", "usetesting", "varnamelen", "wastedassign", "wrapcheck", "zerologlint"}, + }, } for _, test := range testCases { From 6e989ebba960c577d10f4a948a046a2c6c8700ea Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Thu, 6 Mar 2025 04:53:50 +0100 Subject: [PATCH 13/30] docs: improve v1 configuration files --- pkg/commands/internal/migrate/one/doc.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/commands/internal/migrate/one/doc.go b/pkg/commands/internal/migrate/one/doc.go index 3299b6a2f2d2..f6efa5b876b0 100644 --- a/pkg/commands/internal/migrate/one/doc.go +++ b/pkg/commands/internal/migrate/one/doc.go @@ -1,3 +1,4 @@ // Package one contains a modified copy of v1 configuration. -// The field types has been modified to use pointer of builtin types. +// The structures are altered to use pointer on builtin types. +// The field version is added to enforce the detection of already migrated file. package one From c95ec0516e2594fb265920b6d02d4e8fe28a14f7 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Thu, 6 Mar 2025 12:30:11 +0100 Subject: [PATCH 14/30] review: rename configuration packages --- pkg/commands/internal/migrate/migrate.go | 8 +- .../internal/migrate/migrate_formatters.go | 30 +- .../internal/migrate/migrate_issues.go | 8 +- .../internal/migrate/migrate_linter_names.go | 24 +- .../migrate/migrate_linter_names_test.go | 62 +-- .../internal/migrate/migrate_linters.go | 10 +- .../migrate/migrate_linters_exclusions.go | 34 +- .../migrate/migrate_linters_settings.go | 394 +++++++++--------- .../internal/migrate/migrate_output.go | 16 +- pkg/commands/internal/migrate/migrate_run.go | 8 +- .../internal/migrate/migrate_severity.go | 14 +- pkg/commands/internal/migrate/migrate_test.go | 6 +- .../migrate/{one => versionone}/base_rule.go | 2 +- .../migrate/{one => versionone}/config.go | 2 +- .../migrate/{one => versionone}/doc.go | 4 +- .../migrate/{one => versionone}/issues.go | 2 +- .../migrate/{one => versionone}/linters.go | 2 +- .../{one => versionone}/linters_settings.go | 2 +- .../migrate/{one => versionone}/output.go | 2 +- .../migrate/{one => versionone}/run.go | 2 +- .../migrate/{one => versionone}/severity.go | 2 +- .../migrate/{two => versiontwo}/base_rule.go | 2 +- .../migrate/{two => versiontwo}/config.go | 2 +- .../migrate/{two => versiontwo}/formatters.go | 2 +- .../formatters_settings.go | 2 +- .../migrate/{two => versiontwo}/issues.go | 2 +- .../migrate/{two => versiontwo}/linters.go | 2 +- .../{two => versiontwo}/linters_exclusions.go | 2 +- .../{two => versiontwo}/linters_settings.go | 2 +- .../migrate/{two => versiontwo}/output.go | 2 +- .../{two => versiontwo}/output_formats.go | 2 +- .../migrate/{two => versiontwo}/run.go | 2 +- .../migrate/{two => versiontwo}/severity.go | 2 +- pkg/commands/migrate.go | 10 +- 34 files changed, 334 insertions(+), 334 deletions(-) rename pkg/commands/internal/migrate/{one => versionone}/base_rule.go (93%) rename pkg/commands/internal/migrate/{one => versionone}/config.go (97%) rename pkg/commands/internal/migrate/{one => versionone}/doc.go (62%) rename pkg/commands/internal/migrate/{one => versionone}/issues.go (98%) rename pkg/commands/internal/migrate/{one => versionone}/linters.go (94%) rename pkg/commands/internal/migrate/{one => versionone}/linters_settings.go (99%) rename pkg/commands/internal/migrate/{one => versionone}/output.go (98%) rename pkg/commands/internal/migrate/{one => versionone}/run.go (97%) rename pkg/commands/internal/migrate/{one => versionone}/severity.go (94%) rename pkg/commands/internal/migrate/{two => versiontwo}/base_rule.go (96%) rename pkg/commands/internal/migrate/{two => versiontwo}/config.go (96%) rename pkg/commands/internal/migrate/{two => versiontwo}/formatters.go (96%) rename pkg/commands/internal/migrate/{two => versiontwo}/formatters_settings.go (99%) rename pkg/commands/internal/migrate/{two => versiontwo}/issues.go (97%) rename pkg/commands/internal/migrate/{two => versiontwo}/linters.go (96%) rename pkg/commands/internal/migrate/{two => versiontwo}/linters_exclusions.go (97%) rename pkg/commands/internal/migrate/{two => versiontwo}/linters_settings.go (99%) rename pkg/commands/internal/migrate/{two => versiontwo}/output.go (95%) rename pkg/commands/internal/migrate/{two => versiontwo}/output_formats.go (98%) rename pkg/commands/internal/migrate/{two => versiontwo}/run.go (98%) rename pkg/commands/internal/migrate/{two => versiontwo}/severity.go (95%) diff --git a/pkg/commands/internal/migrate/migrate.go b/pkg/commands/internal/migrate/migrate.go index 0c185b8241a3..a1d01081ba0a 100644 --- a/pkg/commands/internal/migrate/migrate.go +++ b/pkg/commands/internal/migrate/migrate.go @@ -1,13 +1,13 @@ package migrate import ( - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versionone" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versiontwo" ) -func ToConfig(old *one.Config) *two.Config { - return &two.Config{ +func ToConfig(old *versionone.Config) *versiontwo.Config { + return &versiontwo.Config{ Version: ptr.Pointer("2"), Linters: toLinters(old), Formatters: toFormatters(old), diff --git a/pkg/commands/internal/migrate/migrate_formatters.go b/pkg/commands/internal/migrate/migrate_formatters.go index 6abd63b093c1..e41c5966ccae 100644 --- a/pkg/commands/internal/migrate/migrate_formatters.go +++ b/pkg/commands/internal/migrate/migrate_formatters.go @@ -4,12 +4,12 @@ import ( "slices" "strings" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versionone" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versiontwo" ) -func toFormatters(old *one.Config) two.Formatters { +func toFormatters(old *versionone.Config) versiontwo.Formatters { enable, _ := ProcessEffectiveLinters(old.Linters) formatterNames := onlyFormatterNames(enable) @@ -19,23 +19,23 @@ func toFormatters(old *one.Config) two.Formatters { paths = slices.Concat(old.Issues.ExcludeFiles, old.Issues.ExcludeDirs) } - return two.Formatters{ + return versiontwo.Formatters{ Enable: formatterNames, - Settings: two.FormatterSettings{ + Settings: versiontwo.FormatterSettings{ Gci: toGciSettings(old.LintersSettings.Gci), GoFmt: toGoFmtSettings(old.LintersSettings.GoFmt), GoFumpt: toGoFumptSettings(old.LintersSettings.GoFumpt), GoImports: toGoImportsSettings(old.LintersSettings.GoImports), }, - Exclusions: two.FormatterExclusions{ + Exclusions: versiontwo.FormatterExclusions{ Generated: toExclusionGenerated(old.Issues.ExcludeGenerated), Paths: paths, }, } } -func toGciSettings(old one.GciSettings) two.GciSettings { - return two.GciSettings{ +func toGciSettings(old versionone.GciSettings) versiontwo.GciSettings { + return versiontwo.GciSettings{ Sections: old.Sections, NoInlineComments: old.NoInlineComments, NoPrefixComments: old.NoPrefixComments, @@ -44,13 +44,13 @@ func toGciSettings(old one.GciSettings) two.GciSettings { } } -func toGoFmtSettings(old one.GoFmtSettings) two.GoFmtSettings { - settings := two.GoFmtSettings{ +func toGoFmtSettings(old versionone.GoFmtSettings) versiontwo.GoFmtSettings { + settings := versiontwo.GoFmtSettings{ Simplify: old.Simplify, } for _, rule := range old.RewriteRules { - settings.RewriteRules = append(settings.RewriteRules, two.GoFmtRewriteRule{ + settings.RewriteRules = append(settings.RewriteRules, versiontwo.GoFmtRewriteRule{ Pattern: rule.Pattern, Replacement: rule.Replacement, }) @@ -59,21 +59,21 @@ func toGoFmtSettings(old one.GoFmtSettings) two.GoFmtSettings { return settings } -func toGoFumptSettings(old one.GoFumptSettings) two.GoFumptSettings { - return two.GoFumptSettings{ +func toGoFumptSettings(old versionone.GoFumptSettings) versiontwo.GoFumptSettings { + return versiontwo.GoFumptSettings{ ModulePath: old.ModulePath, ExtraRules: old.ExtraRules, } } -func toGoImportsSettings(old one.GoImportsSettings) two.GoImportsSettings { +func toGoImportsSettings(old versionone.GoImportsSettings) versiontwo.GoImportsSettings { var localPrefixes []string if ptr.Deref(old.LocalPrefixes) != "" { localPrefixes = strings.Split(ptr.Deref(old.LocalPrefixes), ",") } - return two.GoImportsSettings{ + return versiontwo.GoImportsSettings{ LocalPrefixes: localPrefixes, } } diff --git a/pkg/commands/internal/migrate/migrate_issues.go b/pkg/commands/internal/migrate/migrate_issues.go index 057bce86d94e..31c9aacd1f55 100644 --- a/pkg/commands/internal/migrate/migrate_issues.go +++ b/pkg/commands/internal/migrate/migrate_issues.go @@ -1,12 +1,12 @@ package migrate import ( - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versionone" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versiontwo" ) -func toIssues(old *one.Config) two.Issues { - return two.Issues{ +func toIssues(old *versionone.Config) versiontwo.Issues { + return versiontwo.Issues{ MaxIssuesPerLinter: old.Issues.MaxIssuesPerLinter, MaxSameIssues: old.Issues.MaxSameIssues, UniqByLine: old.Issues.UniqByLine, diff --git a/pkg/commands/internal/migrate/migrate_linter_names.go b/pkg/commands/internal/migrate/migrate_linter_names.go index dde49dfde939..71aea9dfa79d 100644 --- a/pkg/commands/internal/migrate/migrate_linter_names.go +++ b/pkg/commands/internal/migrate/migrate_linter_names.go @@ -3,8 +3,8 @@ package migrate import ( "slices" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versionone" ) type LinterInfo struct { @@ -33,7 +33,7 @@ func (l *LinterInfo) hasPresets(names []string) bool { return false } -func ProcessEffectiveLinters(old one.Linters) (enable, disable []string) { +func ProcessEffectiveLinters(old versionone.Linters) (enable, disable []string) { switch { case ptr.Deref(old.DisableAll): return disableAllFilter(old), nil @@ -45,7 +45,7 @@ func ProcessEffectiveLinters(old one.Linters) (enable, disable []string) { } // disableAllFilter generates the value of `enable` when `disable-all` is `true`. -func disableAllFilter(old one.Linters) []string { +func disableAllFilter(old versionone.Linters) []string { // Note: // - disable-all + enable-all // => impossible (https://github.com/golangci/golangci-lint/blob/e1eb4cb2c7fba29b5831b63e454844d83c692874/pkg/config/linters.go#L38) @@ -74,7 +74,7 @@ func disableAllFilter(old one.Linters) []string { } // enableAllFilter generates the value of `disable` when `enable-all` is `true`. -func enableAllFilter(old one.Linters) []string { +func enableAllFilter(old versionone.Linters) []string { // Note: // - enable-all + disable-all // => impossible (https://github.com/golangci/golangci-lint/blob/e1eb4cb2c7fba29b5831b63e454844d83c692874/pkg/config/linters.go#L38) @@ -109,7 +109,7 @@ func enableAllFilter(old one.Linters) []string { } // defaultLintersFilter generates the values of `enable` and `disable` when using default linters. -func defaultLintersFilter(old one.Linters) (enable, disable []string) { +func defaultLintersFilter(old versionone.Linters) (enable, disable []string) { // Note: // - a linter cannot be inside `enable` and `disable` in the same configuration // => https://github.com/golangci/golangci-lint/blob/e1eb4cb2c7fba29b5831b63e454844d83c692874/pkg/config/linters.go#L66 @@ -161,7 +161,7 @@ func defaultLintersFilter(old one.Linters) (enable, disable []string) { } // defaultLintersEnableFilter generates the value of `enable` when using default linters. -func defaultLintersEnableFilter(old one.Linters, effectiveDisabled []LinterInfo) []LinterInfo { +func defaultLintersEnableFilter(old versionone.Linters, effectiveDisabled []LinterInfo) []LinterInfo { // presets - slow + enable - default - [effective disable] => effective enable return removeLinters( filter( @@ -178,7 +178,7 @@ func defaultLintersEnableFilter(old one.Linters, effectiveDisabled []LinterInfo) } // defaultLintersDisableFilter generates the value of `disable` when using default linters. -func defaultLintersDisableFilter(old one.Linters) []LinterInfo { +func defaultLintersDisableFilter(old versionone.Linters) []LinterInfo { // (default - fast) - enable + disable => effective disable return slices.Concat( removeLinters( @@ -731,7 +731,7 @@ func removeLinters(linters, toRemove []LinterInfo) []LinterInfo { }) } -func allEnabled(old one.Linters, linters []LinterInfo) []LinterInfo { +func allEnabled(old versionone.Linters, linters []LinterInfo) []LinterInfo { var results []LinterInfo for _, linter := range linters { @@ -746,7 +746,7 @@ func allEnabled(old one.Linters, linters []LinterInfo) []LinterInfo { return results } -func allDisabled(old one.Linters, linters []LinterInfo) []LinterInfo { +func allDisabled(old versionone.Linters, linters []LinterInfo) []LinterInfo { var results []LinterInfo for _, linter := range linters { @@ -785,7 +785,7 @@ func mergeFilters(linter LinterInfo, fns []fnFilter) bool { type fnFilter func(linter LinterInfo) bool -func onlyPresets(old one.Linters) fnFilter { +func onlyPresets(old versionone.Linters) fnFilter { return func(linter LinterInfo) bool { return linter.hasPresets(old.Presets) } @@ -799,7 +799,7 @@ func notDefault(linter LinterInfo) bool { return !linter.Default } -func keepFast(old one.Linters) fnFilter { +func keepFast(old versionone.Linters) fnFilter { return func(linter LinterInfo) bool { if !ptr.Deref(old.Fast) { return true @@ -809,7 +809,7 @@ func keepFast(old one.Linters) fnFilter { } } -func keepSlow(old one.Linters) fnFilter { +func keepSlow(old versionone.Linters) fnFilter { return func(linter LinterInfo) bool { if !ptr.Deref(old.Fast) { return false diff --git a/pkg/commands/internal/migrate/migrate_linter_names_test.go b/pkg/commands/internal/migrate/migrate_linter_names_test.go index 95318324b136..f9bf8a836db3 100644 --- a/pkg/commands/internal/migrate/migrate_linter_names_test.go +++ b/pkg/commands/internal/migrate/migrate_linter_names_test.go @@ -5,19 +5,19 @@ import ( "github.com/stretchr/testify/assert" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versionone" ) func Test_disableAllFilter(t *testing.T) { testCases := []struct { desc string - old one.Linters + old versionone.Linters expected []string }{ { desc: "no presets, fast", - old: one.Linters{ + old: versionone.Linters{ DisableAll: ptr.Pointer(true), Enable: nil, Fast: ptr.Pointer(false), @@ -27,7 +27,7 @@ func Test_disableAllFilter(t *testing.T) { }, { desc: "no presets, fast", - old: one.Linters{ + old: versionone.Linters{ DisableAll: ptr.Pointer(true), Enable: nil, Fast: ptr.Pointer(true), @@ -37,7 +37,7 @@ func Test_disableAllFilter(t *testing.T) { }, { desc: "no presets, enable", - old: one.Linters{ + old: versionone.Linters{ DisableAll: ptr.Pointer(true), Enable: []string{"lll", "misspell", "govet"}, Fast: ptr.Pointer(false), @@ -47,7 +47,7 @@ func Test_disableAllFilter(t *testing.T) { }, { desc: "fast, no presets, enable", - old: one.Linters{ + old: versionone.Linters{ DisableAll: ptr.Pointer(true), Enable: []string{"lll", "misspell", "govet"}, Fast: ptr.Pointer(true), @@ -57,7 +57,7 @@ func Test_disableAllFilter(t *testing.T) { }, { desc: "presets, enable", - old: one.Linters{ + old: versionone.Linters{ DisableAll: ptr.Pointer(true), Enable: []string{"lll", "misspell", "govet"}, Fast: ptr.Pointer(false), @@ -82,7 +82,7 @@ func Test_disableAllFilter(t *testing.T) { }, { desc: "presets, enable, fast", - old: one.Linters{ + old: versionone.Linters{ DisableAll: ptr.Pointer(true), Enable: []string{"lll", "misspell", "govet"}, Fast: ptr.Pointer(true), @@ -117,12 +117,12 @@ func Test_disableAllFilter(t *testing.T) { func Test_enableAllFilter(t *testing.T) { testCases := []struct { desc string - old one.Linters + old versionone.Linters expected []string }{ { desc: "no options", - old: one.Linters{ + old: versionone.Linters{ EnableAll: ptr.Pointer(true), Disable: nil, Fast: ptr.Pointer(false), @@ -132,7 +132,7 @@ func Test_enableAllFilter(t *testing.T) { }, { desc: "presets (ignored)", - old: one.Linters{ + old: versionone.Linters{ EnableAll: ptr.Pointer(true), Disable: nil, Fast: ptr.Pointer(false), @@ -142,7 +142,7 @@ func Test_enableAllFilter(t *testing.T) { }, { desc: "fast", - old: one.Linters{ + old: versionone.Linters{ EnableAll: ptr.Pointer(true), Disable: nil, Fast: ptr.Pointer(true), @@ -152,7 +152,7 @@ func Test_enableAllFilter(t *testing.T) { }, { desc: "disable", - old: one.Linters{ + old: versionone.Linters{ EnableAll: ptr.Pointer(true), Disable: []string{"lll", "misspell", "govet"}, Fast: ptr.Pointer(false), @@ -162,7 +162,7 @@ func Test_enableAllFilter(t *testing.T) { }, { desc: "disable, fast", - old: one.Linters{ + old: versionone.Linters{ EnableAll: ptr.Pointer(true), Disable: []string{"lll", "misspell", "govet"}, Fast: ptr.Pointer(true), @@ -172,7 +172,7 @@ func Test_enableAllFilter(t *testing.T) { }, { desc: "disable, enable, fast", - old: one.Linters{ + old: versionone.Linters{ EnableAll: ptr.Pointer(true), Enable: []string{"canonicalheader", "errname"}, Disable: []string{"lll", "misspell", "govet"}, @@ -197,12 +197,12 @@ func Test_enableAllFilter(t *testing.T) { func Test_defaultLintersDisableFilter(t *testing.T) { testCases := []struct { desc string - old one.Linters + old versionone.Linters expected []string }{ { desc: "no options", - old: one.Linters{ + old: versionone.Linters{ Enable: nil, Disable: nil, Fast: ptr.Pointer(false), @@ -212,7 +212,7 @@ func Test_defaultLintersDisableFilter(t *testing.T) { }, { desc: "presets (ignored)", - old: one.Linters{ + old: versionone.Linters{ Enable: nil, Disable: nil, Fast: ptr.Pointer(false), @@ -222,7 +222,7 @@ func Test_defaultLintersDisableFilter(t *testing.T) { }, { desc: "fast", - old: one.Linters{ + old: versionone.Linters{ Enable: nil, Disable: nil, Fast: ptr.Pointer(true), @@ -232,7 +232,7 @@ func Test_defaultLintersDisableFilter(t *testing.T) { }, { desc: "enable", - old: one.Linters{ + old: versionone.Linters{ Enable: []string{"lll", "misspell", "govet"}, Disable: nil, Fast: ptr.Pointer(false), @@ -242,7 +242,7 @@ func Test_defaultLintersDisableFilter(t *testing.T) { }, { desc: "disable", - old: one.Linters{ + old: versionone.Linters{ Enable: nil, Disable: []string{"lll", "misspell", "govet"}, Fast: ptr.Pointer(false), @@ -252,7 +252,7 @@ func Test_defaultLintersDisableFilter(t *testing.T) { }, { desc: "disable, fast", - old: one.Linters{ + old: versionone.Linters{ Enable: nil, Disable: []string{"lll", "misspell", "govet"}, Fast: ptr.Pointer(true), @@ -262,7 +262,7 @@ func Test_defaultLintersDisableFilter(t *testing.T) { }, { desc: "enable, disable", - old: one.Linters{ + old: versionone.Linters{ Enable: []string{"grouper", "importas", "errcheck"}, Disable: []string{"lll", "misspell", "govet"}, Fast: ptr.Pointer(false), @@ -272,7 +272,7 @@ func Test_defaultLintersDisableFilter(t *testing.T) { }, { desc: "enable", - old: one.Linters{ + old: versionone.Linters{ Enable: []string{"grouper", "importas", "errcheck"}, Disable: nil, Fast: ptr.Pointer(false), @@ -297,12 +297,12 @@ func Test_defaultLintersEnableFilter(t *testing.T) { testCases := []struct { desc string - old one.Linters + old versionone.Linters expected []string }{ { desc: "no options", - old: one.Linters{ + old: versionone.Linters{ Enable: nil, Disable: nil, Fast: ptr.Pointer(false), @@ -312,7 +312,7 @@ func Test_defaultLintersEnableFilter(t *testing.T) { }, { desc: "enable", - old: one.Linters{ + old: versionone.Linters{ Enable: []string{"grouper", "importas", "errcheck"}, Disable: nil, Fast: ptr.Pointer(false), @@ -322,7 +322,7 @@ func Test_defaultLintersEnableFilter(t *testing.T) { }, { desc: "enable, disable", - old: one.Linters{ + old: versionone.Linters{ Enable: []string{"grouper", "importas", "errcheck"}, Disable: []string{"lll", "misspell", "govet"}, Fast: ptr.Pointer(false), @@ -332,7 +332,7 @@ func Test_defaultLintersEnableFilter(t *testing.T) { }, { desc: "disable", - old: one.Linters{ + old: versionone.Linters{ Enable: nil, Disable: []string{"lll", "misspell", "govet"}, Fast: ptr.Pointer(false), @@ -342,7 +342,7 @@ func Test_defaultLintersEnableFilter(t *testing.T) { }, { desc: "presets", - old: one.Linters{ + old: versionone.Linters{ Enable: nil, Disable: nil, Fast: ptr.Pointer(false), @@ -352,7 +352,7 @@ func Test_defaultLintersEnableFilter(t *testing.T) { }, { desc: "presets, fast", - old: one.Linters{ + old: versionone.Linters{ Enable: nil, Disable: nil, Fast: ptr.Pointer(true), diff --git a/pkg/commands/internal/migrate/migrate_linters.go b/pkg/commands/internal/migrate/migrate_linters.go index 462a3338d97d..80fd96dbacfd 100644 --- a/pkg/commands/internal/migrate/migrate_linters.go +++ b/pkg/commands/internal/migrate/migrate_linters.go @@ -1,15 +1,15 @@ package migrate import ( - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versionone" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versiontwo" ) -func toLinters(old *one.Config) two.Linters { +func toLinters(old *versionone.Config) versiontwo.Linters { enable, disable := ProcessEffectiveLinters(old.Linters) - return two.Linters{ + return versiontwo.Linters{ Default: getDefaultName(old.Linters), Enable: onlyLinterNames(convertStaticcheckLinterNames(enable)), Disable: onlyLinterNames(convertStaticcheckLinterNames(disable)), @@ -19,7 +19,7 @@ func toLinters(old *one.Config) two.Linters { } } -func getDefaultName(old one.Linters) *string { +func getDefaultName(old versionone.Linters) *string { switch { case ptr.Deref(old.DisableAll): return ptr.Pointer("none") diff --git a/pkg/commands/internal/migrate/migrate_linters_exclusions.go b/pkg/commands/internal/migrate/migrate_linters_exclusions.go index f61e5506eb4b..9dc59e5b8236 100644 --- a/pkg/commands/internal/migrate/migrate_linters_exclusions.go +++ b/pkg/commands/internal/migrate/migrate_linters_exclusions.go @@ -3,15 +3,15 @@ package migrate import ( "slices" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versionone" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versiontwo" "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/result/processors" ) -func toExclusions(old *one.Config) two.LinterExclusions { - return two.LinterExclusions{ +func toExclusions(old *versionone.Config) versiontwo.LinterExclusions { + return versiontwo.LinterExclusions{ Generated: toExclusionGenerated(old.Issues.ExcludeGenerated), Presets: toPresets(old.Issues), Rules: toExclusionRules(old), @@ -31,7 +31,7 @@ func toExclusionGenerated(excludeGenerated *string) *string { return excludeGenerated } -func toPresets(old one.Issues) []string { +func toPresets(old versionone.Issues) []string { if !ptr.Deref(old.UseDefaultExcludes) { return nil } @@ -60,12 +60,12 @@ func toPresets(old one.Issues) []string { } } -func toExclusionRules(old *one.Config) []two.ExcludeRule { - var results []two.ExcludeRule +func toExclusionRules(old *versionone.Config) []versiontwo.ExcludeRule { + var results []versiontwo.ExcludeRule for _, rule := range old.Issues.ExcludeRules { - results = append(results, two.ExcludeRule{ - BaseRule: two.BaseRule{ + results = append(results, versiontwo.ExcludeRule{ + BaseRule: versiontwo.BaseRule{ Linters: onlyLinterNames(convertStaticcheckLinterNames(convertAlternativeNames(rule.Linters))), Path: rule.Path, PathExcept: rule.PathExcept, @@ -76,8 +76,8 @@ func toExclusionRules(old *one.Config) []two.ExcludeRule { } for _, pattern := range old.Issues.ExcludePatterns { - results = append(results, two.ExcludeRule{ - BaseRule: two.BaseRule{ + results = append(results, versiontwo.ExcludeRule{ + BaseRule: versiontwo.BaseRule{ Path: ptr.Pointer(`(.+)\.go$`), Text: addPrefix(old.Issues, ptr.Pointer(pattern)), }, @@ -87,7 +87,7 @@ func toExclusionRules(old *one.Config) []two.ExcludeRule { return slices.Concat(results, linterTestExclusions(old.LintersSettings)) } -func addPrefix(old one.Issues, s *string) *string { +func addPrefix(old versionone.Issues, s *string) *string { if s == nil || ptr.Deref(s) == "" { return s } @@ -100,8 +100,8 @@ func addPrefix(old one.Issues, s *string) *string { return ptr.Pointer(prefix + ptr.Deref(s)) } -func linterTestExclusions(old one.LintersSettings) []two.ExcludeRule { - var results []two.ExcludeRule +func linterTestExclusions(old versionone.LintersSettings) []versiontwo.ExcludeRule { + var results []versiontwo.ExcludeRule var excludedTestLinters []string @@ -119,8 +119,8 @@ func linterTestExclusions(old one.LintersSettings) []two.ExcludeRule { } if len(excludedTestLinters) > 0 { - results = append(results, two.ExcludeRule{ - BaseRule: two.BaseRule{ + results = append(results, versiontwo.ExcludeRule{ + BaseRule: versiontwo.BaseRule{ Linters: excludedTestLinters, Path: ptr.Pointer(`(.+)_test\.go`), }, @@ -130,7 +130,7 @@ func linterTestExclusions(old one.LintersSettings) []two.ExcludeRule { return results } -func toExclusionPaths(old one.Issues) []string { +func toExclusionPaths(old versionone.Issues) []string { results := slices.Concat(old.ExcludeFiles, old.ExcludeDirs) if old.UseDefaultExcludeDirs == nil || ptr.Deref(old.UseDefaultExcludeDirs) { diff --git a/pkg/commands/internal/migrate/migrate_linters_settings.go b/pkg/commands/internal/migrate/migrate_linters_settings.go index a34206d6db10..2031ecb697d3 100644 --- a/pkg/commands/internal/migrate/migrate_linters_settings.go +++ b/pkg/commands/internal/migrate/migrate_linters_settings.go @@ -4,13 +4,13 @@ import ( "slices" "strings" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versionone" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versiontwo" ) -func toLinterSettings(old one.LintersSettings) two.LintersSettings { - return two.LintersSettings{ +func toLinterSettings(old versionone.LintersSettings) versiontwo.LintersSettings { + return versiontwo.LintersSettings{ Asasalint: toAsasalintSettings(old.Asasalint), BiDiChk: toBiDiChkSettings(old.BiDiChk), CopyLoopVar: toCopyLoopVarSettings(old.CopyLoopVar), @@ -93,17 +93,17 @@ func toLinterSettings(old one.LintersSettings) two.LintersSettings { } } -func toAsasalintSettings(old one.AsasalintSettings) two.AsasalintSettings { - return two.AsasalintSettings{ +func toAsasalintSettings(old versionone.AsasalintSettings) versiontwo.AsasalintSettings { + return versiontwo.AsasalintSettings{ Exclude: old.Exclude, UseBuiltinExclusions: old.UseBuiltinExclusions, } } -func toBiDiChkSettings(old one.BiDiChkSettings) two.BiDiChkSettings { +func toBiDiChkSettings(old versionone.BiDiChkSettings) versiontwo.BiDiChkSettings { // The values are true be default, but the default are defined after the configuration loading. // So the serialization doesn't have good results, but it's complex to do better. - return two.BiDiChkSettings{ + return versiontwo.BiDiChkSettings{ LeftToRightEmbedding: old.LeftToRightEmbedding, RightToLeftEmbedding: old.RightToLeftEmbedding, PopDirectionalFormatting: old.PopDirectionalFormatting, @@ -116,21 +116,21 @@ func toBiDiChkSettings(old one.BiDiChkSettings) two.BiDiChkSettings { } } -func toCopyLoopVarSettings(old one.CopyLoopVarSettings) two.CopyLoopVarSettings { - return two.CopyLoopVarSettings{ +func toCopyLoopVarSettings(old versionone.CopyLoopVarSettings) versiontwo.CopyLoopVarSettings { + return versiontwo.CopyLoopVarSettings{ CheckAlias: old.CheckAlias, } } -func toCyclopSettings(old one.Cyclop) two.CyclopSettings { - return two.CyclopSettings{ +func toCyclopSettings(old versionone.Cyclop) versiontwo.CyclopSettings { + return versiontwo.CyclopSettings{ MaxComplexity: old.MaxComplexity, PackageAverage: old.PackageAverage, } } -func toDecorderSettings(old one.DecorderSettings) two.DecorderSettings { - return two.DecorderSettings{ +func toDecorderSettings(old versionone.DecorderSettings) versiontwo.DecorderSettings { + return versiontwo.DecorderSettings{ DecOrder: old.DecOrder, IgnoreUnderscoreVars: old.IgnoreUnderscoreVars, DisableDecNumCheck: old.DisableDecNumCheck, @@ -142,22 +142,22 @@ func toDecorderSettings(old one.DecorderSettings) two.DecorderSettings { } } -func toDepGuardSettings(old one.DepGuardSettings) two.DepGuardSettings { - settings := two.DepGuardSettings{} +func toDepGuardSettings(old versionone.DepGuardSettings) versiontwo.DepGuardSettings { + settings := versiontwo.DepGuardSettings{} for k, r := range old.Rules { if settings.Rules == nil { - settings.Rules = make(map[string]*two.DepGuardList) + settings.Rules = make(map[string]*versiontwo.DepGuardList) } - list := &two.DepGuardList{ + list := &versiontwo.DepGuardList{ ListMode: r.ListMode, Files: r.Files, Allow: r.Allow, } for _, deny := range r.Deny { - list.Deny = append(list.Deny, two.DepGuardDeny{ + list.Deny = append(list.Deny, versiontwo.DepGuardDeny{ Pkg: deny.Pkg, Desc: deny.Desc, }) @@ -169,27 +169,27 @@ func toDepGuardSettings(old one.DepGuardSettings) two.DepGuardSettings { return settings } -func toDogsledSettings(old one.DogsledSettings) two.DogsledSettings { - return two.DogsledSettings{ +func toDogsledSettings(old versionone.DogsledSettings) versiontwo.DogsledSettings { + return versiontwo.DogsledSettings{ MaxBlankIdentifiers: old.MaxBlankIdentifiers, } } -func toDuplSettings(old one.DuplSettings) two.DuplSettings { - return two.DuplSettings{ +func toDuplSettings(old versionone.DuplSettings) versiontwo.DuplSettings { + return versiontwo.DuplSettings{ Threshold: old.Threshold, } } -func toDupWordSettings(old one.DupWordSettings) two.DupWordSettings { - return two.DupWordSettings{ +func toDupWordSettings(old versionone.DupWordSettings) versiontwo.DupWordSettings { + return versiontwo.DupWordSettings{ Keywords: old.Keywords, Ignore: old.Ignore, } } -func toErrcheckSettings(old one.ErrcheckSettings) two.ErrcheckSettings { - return two.ErrcheckSettings{ +func toErrcheckSettings(old versionone.ErrcheckSettings) versiontwo.ErrcheckSettings { + return versiontwo.ErrcheckSettings{ DisableDefaultExclusions: old.DisableDefaultExclusions, CheckTypeAssertions: old.CheckTypeAssertions, CheckAssignToBlank: old.CheckAssignToBlank, @@ -197,15 +197,15 @@ func toErrcheckSettings(old one.ErrcheckSettings) two.ErrcheckSettings { } } -func toErrChkJSONSettings(old one.ErrChkJSONSettings) two.ErrChkJSONSettings { - return two.ErrChkJSONSettings{ +func toErrChkJSONSettings(old versionone.ErrChkJSONSettings) versiontwo.ErrChkJSONSettings { + return versiontwo.ErrChkJSONSettings{ CheckErrorFreeEncoding: old.CheckErrorFreeEncoding, ReportNoExported: old.ReportNoExported, } } -func toErrorLintSettings(old one.ErrorLintSettings) two.ErrorLintSettings { - settings := two.ErrorLintSettings{ +func toErrorLintSettings(old versionone.ErrorLintSettings) versiontwo.ErrorLintSettings { + settings := versiontwo.ErrorLintSettings{ Errorf: old.Errorf, ErrorfMulti: old.ErrorfMulti, Asserts: old.Asserts, @@ -213,13 +213,13 @@ func toErrorLintSettings(old one.ErrorLintSettings) two.ErrorLintSettings { } for _, allowedError := range old.AllowedErrors { - settings.AllowedErrors = append(settings.AllowedErrors, two.ErrorLintAllowPair{ + settings.AllowedErrors = append(settings.AllowedErrors, versiontwo.ErrorLintAllowPair{ Err: allowedError.Err, Fun: allowedError.Fun, }) } for _, allowedError := range old.AllowedErrorsWildcard { - settings.AllowedErrorsWildcard = append(settings.AllowedErrorsWildcard, two.ErrorLintAllowPair{ + settings.AllowedErrorsWildcard = append(settings.AllowedErrorsWildcard, versiontwo.ErrorLintAllowPair{ Err: allowedError.Err, Fun: allowedError.Fun, }) @@ -228,8 +228,8 @@ func toErrorLintSettings(old one.ErrorLintSettings) two.ErrorLintSettings { return settings } -func toExhaustiveSettings(old one.ExhaustiveSettings) two.ExhaustiveSettings { - return two.ExhaustiveSettings{ +func toExhaustiveSettings(old versionone.ExhaustiveSettings) versiontwo.ExhaustiveSettings { + return versiontwo.ExhaustiveSettings{ Check: old.Check, DefaultSignifiesExhaustive: old.DefaultSignifiesExhaustive, IgnoreEnumMembers: old.IgnoreEnumMembers, @@ -241,21 +241,21 @@ func toExhaustiveSettings(old one.ExhaustiveSettings) two.ExhaustiveSettings { } } -func toExhaustructSettings(old one.ExhaustructSettings) two.ExhaustructSettings { - return two.ExhaustructSettings{ +func toExhaustructSettings(old versionone.ExhaustructSettings) versiontwo.ExhaustructSettings { + return versiontwo.ExhaustructSettings{ Include: old.Include, Exclude: old.Exclude, } } -func toFatcontextSettings(old one.FatcontextSettings) two.FatcontextSettings { - return two.FatcontextSettings{ +func toFatcontextSettings(old versionone.FatcontextSettings) versiontwo.FatcontextSettings { + return versiontwo.FatcontextSettings{ CheckStructPointers: old.CheckStructPointers, } } -func toForbidigoSettings(old one.ForbidigoSettings) two.ForbidigoSettings { - settings := two.ForbidigoSettings{ +func toForbidigoSettings(old versionone.ForbidigoSettings) versiontwo.ForbidigoSettings { + settings := versiontwo.ForbidigoSettings{ ExcludeGodocExamples: old.ExcludeGodocExamples, AnalyzeTypes: old.AnalyzeTypes, } @@ -268,14 +268,14 @@ func toForbidigoSettings(old one.ForbidigoSettings) two.ForbidigoSettings { panic(err) } - settings.Forbid = append(settings.Forbid, two.ForbidigoPattern{ + settings.Forbid = append(settings.Forbid, versiontwo.ForbidigoPattern{ Pattern: ptr.Pointer(string(buffer)), }) continue } - settings.Forbid = append(settings.Forbid, two.ForbidigoPattern{ + settings.Forbid = append(settings.Forbid, versiontwo.ForbidigoPattern{ Pattern: pattern.Pattern, Package: pattern.Package, Msg: pattern.Msg, @@ -285,16 +285,16 @@ func toForbidigoSettings(old one.ForbidigoSettings) two.ForbidigoSettings { return settings } -func toFunlenSettings(old one.FunlenSettings) two.FunlenSettings { - return two.FunlenSettings{ +func toFunlenSettings(old versionone.FunlenSettings) versiontwo.FunlenSettings { + return versiontwo.FunlenSettings{ Lines: old.Lines, Statements: old.Statements, IgnoreComments: old.IgnoreComments, } } -func toGinkgoLinterSettings(old one.GinkgoLinterSettings) two.GinkgoLinterSettings { - return two.GinkgoLinterSettings{ +func toGinkgoLinterSettings(old versionone.GinkgoLinterSettings) versiontwo.GinkgoLinterSettings { + return versiontwo.GinkgoLinterSettings{ SuppressLenAssertion: old.SuppressLenAssertion, SuppressNilAssertion: old.SuppressNilAssertion, SuppressErrAssertion: old.SuppressErrAssertion, @@ -310,21 +310,21 @@ func toGinkgoLinterSettings(old one.GinkgoLinterSettings) two.GinkgoLinterSettin } } -func toGocognitSettings(old one.GocognitSettings) two.GocognitSettings { - return two.GocognitSettings{ +func toGocognitSettings(old versionone.GocognitSettings) versiontwo.GocognitSettings { + return versiontwo.GocognitSettings{ MinComplexity: old.MinComplexity, } } -func toGoChecksumTypeSettings(old one.GoChecksumTypeSettings) two.GoChecksumTypeSettings { - return two.GoChecksumTypeSettings{ +func toGoChecksumTypeSettings(old versionone.GoChecksumTypeSettings) versiontwo.GoChecksumTypeSettings { + return versiontwo.GoChecksumTypeSettings{ DefaultSignifiesExhaustive: old.DefaultSignifiesExhaustive, IncludeSharedInterfaces: old.IncludeSharedInterfaces, } } -func toGoConstSettings(old one.GoConstSettings) two.GoConstSettings { - return two.GoConstSettings{ +func toGoConstSettings(old versionone.GoConstSettings) versiontwo.GoConstSettings { + return versiontwo.GoConstSettings{ IgnoreStrings: old.IgnoreStrings, MatchWithConstants: old.MatchWithConstants, MinStringLen: old.MinStringLen, @@ -336,8 +336,8 @@ func toGoConstSettings(old one.GoConstSettings) two.GoConstSettings { } } -func toGoCriticSettings(old one.GoCriticSettings) two.GoCriticSettings { - settings := two.GoCriticSettings{ +func toGoCriticSettings(old versionone.GoCriticSettings) versiontwo.GoCriticSettings { + settings := versiontwo.GoCriticSettings{ Go: old.Go, DisableAll: old.DisableAll, EnabledChecks: old.EnabledChecks, @@ -349,7 +349,7 @@ func toGoCriticSettings(old one.GoCriticSettings) two.GoCriticSettings { for k, checkSettings := range settings.SettingsPerCheck { if settings.SettingsPerCheck == nil { - settings.SettingsPerCheck = make(map[string]two.GoCriticCheckSettings) + settings.SettingsPerCheck = make(map[string]versiontwo.GoCriticCheckSettings) } settings.SettingsPerCheck[k] = checkSettings @@ -358,14 +358,14 @@ func toGoCriticSettings(old one.GoCriticSettings) two.GoCriticSettings { return settings } -func toGoCycloSettings(old one.GoCycloSettings) two.GoCycloSettings { - return two.GoCycloSettings{ +func toGoCycloSettings(old versionone.GoCycloSettings) versiontwo.GoCycloSettings { + return versiontwo.GoCycloSettings{ MinComplexity: old.MinComplexity, } } -func toGodotSettings(old one.GodotSettings) two.GodotSettings { - return two.GodotSettings{ +func toGodotSettings(old versionone.GodotSettings) versiontwo.GodotSettings { + return versiontwo.GodotSettings{ Scope: old.Scope, Exclude: old.Exclude, Capital: old.Capital, @@ -373,22 +373,22 @@ func toGodotSettings(old one.GodotSettings) two.GodotSettings { } } -func toGodoxSettings(old one.GodoxSettings) two.GodoxSettings { - return two.GodoxSettings{ +func toGodoxSettings(old versionone.GodoxSettings) versiontwo.GodoxSettings { + return versiontwo.GodoxSettings{ Keywords: old.Keywords, } } -func toGoHeaderSettings(old one.GoHeaderSettings) two.GoHeaderSettings { - return two.GoHeaderSettings{ +func toGoHeaderSettings(old versionone.GoHeaderSettings) versiontwo.GoHeaderSettings { + return versiontwo.GoHeaderSettings{ Values: old.Values, Template: old.Template, TemplatePath: old.TemplatePath, } } -func toGoModDirectivesSettings(old one.GoModDirectivesSettings) two.GoModDirectivesSettings { - return two.GoModDirectivesSettings{ +func toGoModDirectivesSettings(old versionone.GoModDirectivesSettings) versiontwo.GoModDirectivesSettings { + return versiontwo.GoModDirectivesSettings{ ReplaceAllowList: old.ReplaceAllowList, ReplaceLocal: old.ReplaceLocal, ExcludeForbidden: old.ExcludeForbidden, @@ -401,16 +401,16 @@ func toGoModDirectivesSettings(old one.GoModDirectivesSettings) two.GoModDirecti } } -func toGoModGuardSettings(old one.GoModGuardSettings) two.GoModGuardSettings { - blocked := two.GoModGuardBlocked{ +func toGoModGuardSettings(old versionone.GoModGuardSettings) versiontwo.GoModGuardSettings { + blocked := versiontwo.GoModGuardBlocked{ LocalReplaceDirectives: old.Blocked.LocalReplaceDirectives, } for _, version := range old.Blocked.Modules { - data := map[string]two.GoModGuardModule{} + data := map[string]versiontwo.GoModGuardModule{} for k, v := range version { - data[k] = two.GoModGuardModule{ + data[k] = versiontwo.GoModGuardModule{ Recommendations: v.Recommendations, Reason: v.Reason, } @@ -420,10 +420,10 @@ func toGoModGuardSettings(old one.GoModGuardSettings) two.GoModGuardSettings { } for _, version := range old.Blocked.Versions { - data := map[string]two.GoModGuardVersion{} + data := map[string]versiontwo.GoModGuardVersion{} for k, v := range version { - data[k] = two.GoModGuardVersion{ + data[k] = versiontwo.GoModGuardVersion{ Version: v.Version, Reason: v.Reason, } @@ -432,8 +432,8 @@ func toGoModGuardSettings(old one.GoModGuardSettings) two.GoModGuardSettings { blocked.Versions = append(blocked.Versions, data) } - return two.GoModGuardSettings{ - Allowed: two.GoModGuardAllowed{ + return versiontwo.GoModGuardSettings{ + Allowed: versiontwo.GoModGuardAllowed{ Modules: old.Allowed.Modules, Domains: old.Allowed.Domains, }, @@ -441,8 +441,8 @@ func toGoModGuardSettings(old one.GoModGuardSettings) two.GoModGuardSettings { } } -func toGoSecSettings(old one.GoSecSettings) two.GoSecSettings { - return two.GoSecSettings{ +func toGoSecSettings(old versionone.GoSecSettings) versiontwo.GoSecSettings { + return versiontwo.GoSecSettings{ Includes: old.Includes, Excludes: old.Excludes, Severity: old.Severity, @@ -452,16 +452,16 @@ func toGoSecSettings(old one.GoSecSettings) two.GoSecSettings { } } -func toGosmopolitanSettings(old one.GosmopolitanSettings) two.GosmopolitanSettings { - return two.GosmopolitanSettings{ +func toGosmopolitanSettings(old versionone.GosmopolitanSettings) versiontwo.GosmopolitanSettings { + return versiontwo.GosmopolitanSettings{ AllowTimeLocal: old.AllowTimeLocal, EscapeHatches: old.EscapeHatches, WatchForScripts: old.WatchForScripts, } } -func toGovetSettings(old one.GovetSettings) two.GovetSettings { - return two.GovetSettings{ +func toGovetSettings(old versionone.GovetSettings) versiontwo.GovetSettings { + return versiontwo.GovetSettings{ Go: old.Go, Enable: old.Enable, Disable: old.Disable, @@ -471,8 +471,8 @@ func toGovetSettings(old one.GovetSettings) two.GovetSettings { } } -func toGrouperSettings(old one.GrouperSettings) two.GrouperSettings { - return two.GrouperSettings{ +func toGrouperSettings(old versionone.GrouperSettings) versiontwo.GrouperSettings { + return versiontwo.GrouperSettings{ ConstRequireSingleConst: old.ConstRequireSingleConst, ConstRequireGrouping: old.ConstRequireGrouping, ImportRequireSingleImport: old.ImportRequireSingleImport, @@ -484,21 +484,21 @@ func toGrouperSettings(old one.GrouperSettings) two.GrouperSettings { } } -func toIfaceSettings(old one.IfaceSettings) two.IfaceSettings { - return two.IfaceSettings{ +func toIfaceSettings(old versionone.IfaceSettings) versiontwo.IfaceSettings { + return versiontwo.IfaceSettings{ Enable: old.Enable, Settings: old.Settings, } } -func toImportAsSettings(old one.ImportAsSettings) two.ImportAsSettings { - settings := two.ImportAsSettings{ +func toImportAsSettings(old versionone.ImportAsSettings) versiontwo.ImportAsSettings { + settings := versiontwo.ImportAsSettings{ NoUnaliased: old.NoUnaliased, NoExtraAliases: old.NoExtraAliases, } for _, alias := range old.Alias { - settings.Alias = append(settings.Alias, two.ImportAsAlias{ + settings.Alias = append(settings.Alias, versiontwo.ImportAsAlias{ Pkg: alias.Pkg, Alias: alias.Alias, }) @@ -507,34 +507,34 @@ func toImportAsSettings(old one.ImportAsSettings) two.ImportAsSettings { return settings } -func toINamedParamSettings(old one.INamedParamSettings) two.INamedParamSettings { - return two.INamedParamSettings{ +func toINamedParamSettings(old versionone.INamedParamSettings) versiontwo.INamedParamSettings { + return versiontwo.INamedParamSettings{ SkipSingleParam: old.SkipSingleParam, } } -func toInterfaceBloatSettings(old one.InterfaceBloatSettings) two.InterfaceBloatSettings { - return two.InterfaceBloatSettings{ +func toInterfaceBloatSettings(old versionone.InterfaceBloatSettings) versiontwo.InterfaceBloatSettings { + return versiontwo.InterfaceBloatSettings{ Max: old.Max, } } -func toIreturnSettings(old one.IreturnSettings) two.IreturnSettings { - return two.IreturnSettings{ +func toIreturnSettings(old versionone.IreturnSettings) versiontwo.IreturnSettings { + return versiontwo.IreturnSettings{ Allow: old.Allow, Reject: old.Reject, } } -func toLllSettings(old one.LllSettings) two.LllSettings { - return two.LllSettings{ +func toLllSettings(old versionone.LllSettings) versiontwo.LllSettings { + return versiontwo.LllSettings{ LineLength: old.LineLength, TabWidth: old.TabWidth, } } -func toLoggerCheckSettings(old one.LoggerCheckSettings) two.LoggerCheckSettings { - return two.LoggerCheckSettings{ +func toLoggerCheckSettings(old versionone.LoggerCheckSettings) versiontwo.LoggerCheckSettings { + return versiontwo.LoggerCheckSettings{ Kitlog: old.Kitlog, Klog: old.Klog, Logr: old.Logr, @@ -546,27 +546,27 @@ func toLoggerCheckSettings(old one.LoggerCheckSettings) two.LoggerCheckSettings } } -func toMaintIdxSettings(old one.MaintIdxSettings) two.MaintIdxSettings { - return two.MaintIdxSettings{ +func toMaintIdxSettings(old versionone.MaintIdxSettings) versiontwo.MaintIdxSettings { + return versiontwo.MaintIdxSettings{ Under: old.Under, } } -func toMakezeroSettings(old one.MakezeroSettings) two.MakezeroSettings { - return two.MakezeroSettings{ +func toMakezeroSettings(old versionone.MakezeroSettings) versiontwo.MakezeroSettings { + return versiontwo.MakezeroSettings{ Always: old.Always, } } -func toMisspellSettings(old one.MisspellSettings) two.MisspellSettings { - settings := two.MisspellSettings{ +func toMisspellSettings(old versionone.MisspellSettings) versiontwo.MisspellSettings { + settings := versiontwo.MisspellSettings{ Mode: old.Mode, Locale: old.Locale, IgnoreRules: old.IgnoreWords, } for _, word := range old.ExtraWords { - settings.ExtraWords = append(settings.ExtraWords, two.MisspellExtraWords{ + settings.ExtraWords = append(settings.ExtraWords, versiontwo.MisspellExtraWords{ Typo: word.Typo, Correction: word.Correction, }) @@ -575,8 +575,8 @@ func toMisspellSettings(old one.MisspellSettings) two.MisspellSettings { return settings } -func toMndSettings(old one.MndSettings) two.MndSettings { - return two.MndSettings{ +func toMndSettings(old versionone.MndSettings) versiontwo.MndSettings { + return versiontwo.MndSettings{ Checks: old.Checks, IgnoredNumbers: old.IgnoredNumbers, IgnoredFiles: old.IgnoredFiles, @@ -584,11 +584,11 @@ func toMndSettings(old one.MndSettings) two.MndSettings { } } -func toMustTagSettings(old one.MustTagSettings) two.MustTagSettings { - settings := two.MustTagSettings{} +func toMustTagSettings(old versionone.MustTagSettings) versiontwo.MustTagSettings { + settings := versiontwo.MustTagSettings{} for _, function := range old.Functions { - settings.Functions = append(settings.Functions, two.MustTagFunction{ + settings.Functions = append(settings.Functions, versiontwo.MustTagFunction{ Name: function.Name, Tag: function.Tag, ArgPos: function.ArgPos, @@ -598,33 +598,33 @@ func toMustTagSettings(old one.MustTagSettings) two.MustTagSettings { return settings } -func toNakedretSettings(old one.NakedretSettings) two.NakedretSettings { - return two.NakedretSettings{ +func toNakedretSettings(old versionone.NakedretSettings) versiontwo.NakedretSettings { + return versiontwo.NakedretSettings{ MaxFuncLines: old.MaxFuncLines, } } -func toNestifSettings(old one.NestifSettings) two.NestifSettings { - return two.NestifSettings{ +func toNestifSettings(old versionone.NestifSettings) versiontwo.NestifSettings { + return versiontwo.NestifSettings{ MinComplexity: old.MinComplexity, } } -func toNilNilSettings(old one.NilNilSettings) two.NilNilSettings { - return two.NilNilSettings{ +func toNilNilSettings(old versionone.NilNilSettings) versiontwo.NilNilSettings { + return versiontwo.NilNilSettings{ DetectOpposite: old.DetectOpposite, CheckedTypes: old.CheckedTypes, } } -func toNlreturnSettings(old one.NlreturnSettings) two.NlreturnSettings { - return two.NlreturnSettings{ +func toNlreturnSettings(old versionone.NlreturnSettings) versiontwo.NlreturnSettings { + return versiontwo.NlreturnSettings{ BlockSize: old.BlockSize, } } -func toNoLintLintSettings(old one.NoLintLintSettings) two.NoLintLintSettings { - return two.NoLintLintSettings{ +func toNoLintLintSettings(old versionone.NoLintLintSettings) versiontwo.NoLintLintSettings { + return versiontwo.NoLintLintSettings{ RequireExplanation: old.RequireExplanation, RequireSpecific: old.RequireSpecific, AllowNoExplanation: old.AllowNoExplanation, @@ -632,22 +632,22 @@ func toNoLintLintSettings(old one.NoLintLintSettings) two.NoLintLintSettings { } } -func toNoNamedReturnsSettings(old one.NoNamedReturnsSettings) two.NoNamedReturnsSettings { - return two.NoNamedReturnsSettings{ +func toNoNamedReturnsSettings(old versionone.NoNamedReturnsSettings) versiontwo.NoNamedReturnsSettings { + return versiontwo.NoNamedReturnsSettings{ ReportErrorInDefer: old.ReportErrorInDefer, } } -func toParallelTestSettings(old one.ParallelTestSettings) two.ParallelTestSettings { - return two.ParallelTestSettings{ +func toParallelTestSettings(old versionone.ParallelTestSettings) versiontwo.ParallelTestSettings { + return versiontwo.ParallelTestSettings{ Go: nil, IgnoreMissing: old.IgnoreMissing, IgnoreMissingSubtests: old.IgnoreMissingSubtests, } } -func toPerfSprintSettings(old one.PerfSprintSettings) two.PerfSprintSettings { - return two.PerfSprintSettings{ +func toPerfSprintSettings(old versionone.PerfSprintSettings) versiontwo.PerfSprintSettings { + return versiontwo.PerfSprintSettings{ IntegerFormat: old.IntegerFormat, IntConversion: old.IntConversion, ErrorFormat: old.ErrorFormat, @@ -661,35 +661,35 @@ func toPerfSprintSettings(old one.PerfSprintSettings) two.PerfSprintSettings { } } -func toPreallocSettings(old one.PreallocSettings) two.PreallocSettings { - return two.PreallocSettings{ +func toPreallocSettings(old versionone.PreallocSettings) versiontwo.PreallocSettings { + return versiontwo.PreallocSettings{ Simple: old.Simple, RangeLoops: old.RangeLoops, ForLoops: old.ForLoops, } } -func toPredeclaredSettings(old one.PredeclaredSettings) two.PredeclaredSettings { +func toPredeclaredSettings(old versionone.PredeclaredSettings) versiontwo.PredeclaredSettings { var ignore []string if ptr.Deref(old.Ignore) != "" { ignore = strings.Split(ptr.Deref(old.Ignore), ",") } - return two.PredeclaredSettings{ + return versiontwo.PredeclaredSettings{ Ignore: ignore, Qualified: old.Qualified, } } -func toPromlinterSettings(old one.PromlinterSettings) two.PromlinterSettings { - return two.PromlinterSettings{ +func toPromlinterSettings(old versionone.PromlinterSettings) versiontwo.PromlinterSettings { + return versiontwo.PromlinterSettings{ Strict: old.Strict, DisabledLinters: old.DisabledLinters, } } -func toProtoGetterSettings(old one.ProtoGetterSettings) two.ProtoGetterSettings { - return two.ProtoGetterSettings{ +func toProtoGetterSettings(old versionone.ProtoGetterSettings) versiontwo.ProtoGetterSettings { + return versiontwo.ProtoGetterSettings{ SkipGeneratedBy: old.SkipGeneratedBy, SkipFiles: old.SkipFiles, SkipAnyGenerated: old.SkipAnyGenerated, @@ -697,21 +697,21 @@ func toProtoGetterSettings(old one.ProtoGetterSettings) two.ProtoGetterSettings } } -func toReassignSettings(old one.ReassignSettings) two.ReassignSettings { - return two.ReassignSettings{ +func toReassignSettings(old versionone.ReassignSettings) versiontwo.ReassignSettings { + return versiontwo.ReassignSettings{ Patterns: old.Patterns, } } -func toRecvcheckSettings(old one.RecvcheckSettings) two.RecvcheckSettings { - return two.RecvcheckSettings{ +func toRecvcheckSettings(old versionone.RecvcheckSettings) versiontwo.RecvcheckSettings { + return versiontwo.RecvcheckSettings{ DisableBuiltin: old.DisableBuiltin, Exclusions: old.Exclusions, } } -func toReviveSettings(old one.ReviveSettings) two.ReviveSettings { - settings := two.ReviveSettings{ +func toReviveSettings(old versionone.ReviveSettings) versiontwo.ReviveSettings { + settings := versiontwo.ReviveSettings{ MaxOpenFiles: old.MaxOpenFiles, Confidence: old.Confidence, Severity: old.Severity, @@ -721,7 +721,7 @@ func toReviveSettings(old one.ReviveSettings) two.ReviveSettings { } for _, rule := range old.Rules { - settings.Rules = append(settings.Rules, two.ReviveRule{ + settings.Rules = append(settings.Rules, versiontwo.ReviveRule{ Name: rule.Name, Arguments: rule.Arguments, Severity: rule.Severity, @@ -731,7 +731,7 @@ func toReviveSettings(old one.ReviveSettings) two.ReviveSettings { } for _, directive := range old.Directives { - settings.Directives = append(settings.Directives, two.ReviveDirective{ + settings.Directives = append(settings.Directives, versiontwo.ReviveDirective{ Name: directive.Name, Severity: directive.Severity, }) @@ -740,14 +740,14 @@ func toReviveSettings(old one.ReviveSettings) two.ReviveSettings { return settings } -func toRowsErrCheckSettings(old one.RowsErrCheckSettings) two.RowsErrCheckSettings { - return two.RowsErrCheckSettings{ +func toRowsErrCheckSettings(old versionone.RowsErrCheckSettings) versiontwo.RowsErrCheckSettings { + return versiontwo.RowsErrCheckSettings{ Packages: old.Packages, } } -func toSlogLintSettings(old one.SlogLintSettings) two.SlogLintSettings { - return two.SlogLintSettings{ +func toSlogLintSettings(old versionone.SlogLintSettings) versiontwo.SlogLintSettings { + return versiontwo.SlogLintSettings{ NoMixedArgs: old.NoMixedArgs, KVOnly: old.KVOnly, AttrOnly: old.AttrOnly, @@ -761,20 +761,20 @@ func toSlogLintSettings(old one.SlogLintSettings) two.SlogLintSettings { } } -func toSpancheckSettings(old one.SpancheckSettings) two.SpancheckSettings { - return two.SpancheckSettings{ +func toSpancheckSettings(old versionone.SpancheckSettings) versiontwo.SpancheckSettings { + return versiontwo.SpancheckSettings{ Checks: old.Checks, IgnoreCheckSignatures: old.IgnoreCheckSignatures, ExtraStartSpanSignatures: old.ExtraStartSpanSignatures, } } -func toStaticCheckSettings(old one.LintersSettings) two.StaticCheckSettings { +func toStaticCheckSettings(old versionone.LintersSettings) versiontwo.StaticCheckSettings { checks := slices.Concat(old.Staticcheck.Checks, old.Stylecheck.Checks, old.Gosimple.Checks) slices.Sort(checks) - return two.StaticCheckSettings{ + return versiontwo.StaticCheckSettings{ Checks: slices.Compact(checks), Initialisms: old.Stylecheck.Initialisms, DotImportWhitelist: old.Stylecheck.DotImportWhitelist, @@ -782,8 +782,8 @@ func toStaticCheckSettings(old one.LintersSettings) two.StaticCheckSettings { } } -func toTagAlignSettings(old one.TagAlignSettings) two.TagAlignSettings { - return two.TagAlignSettings{ +func toTagAlignSettings(old versionone.TagAlignSettings) versiontwo.TagAlignSettings { + return versiontwo.TagAlignSettings{ Align: old.Align, Sort: old.Sort, Order: old.Order, @@ -791,90 +791,90 @@ func toTagAlignSettings(old one.TagAlignSettings) two.TagAlignSettings { } } -func toTagliatelleSettings(old one.TagliatelleSettings) two.TagliatelleSettings { - tcase := two.TagliatelleCase{ - TagliatelleBase: two.TagliatelleBase{ +func toTagliatelleSettings(old versionone.TagliatelleSettings) versiontwo.TagliatelleSettings { + tcase := versiontwo.TagliatelleCase{ + TagliatelleBase: versiontwo.TagliatelleBase{ Rules: old.Case.Rules, UseFieldName: old.Case.UseFieldName, IgnoredFields: old.Case.IgnoredFields, }, - Overrides: []two.TagliatelleOverrides{}, + Overrides: []versiontwo.TagliatelleOverrides{}, } for k, rule := range old.Case.ExtendedRules { if tcase.ExtendedRules == nil { - tcase.ExtendedRules = make(map[string]two.TagliatelleExtendedRule) + tcase.ExtendedRules = make(map[string]versiontwo.TagliatelleExtendedRule) } - tcase.ExtendedRules[k] = two.TagliatelleExtendedRule{ + tcase.ExtendedRules[k] = versiontwo.TagliatelleExtendedRule{ Case: rule.Case, ExtraInitialisms: rule.ExtraInitialisms, InitialismOverrides: rule.InitialismOverrides, } } - return two.TagliatelleSettings{Case: tcase} + return versiontwo.TagliatelleSettings{Case: tcase} } -func toTenvSettings(old one.TenvSettings) two.TenvSettings { - return two.TenvSettings{ +func toTenvSettings(old versionone.TenvSettings) versiontwo.TenvSettings { + return versiontwo.TenvSettings{ All: old.All, } } -func toTestifylintSettings(old one.TestifylintSettings) two.TestifylintSettings { - return two.TestifylintSettings{ +func toTestifylintSettings(old versionone.TestifylintSettings) versiontwo.TestifylintSettings { + return versiontwo.TestifylintSettings{ EnableAll: old.EnableAll, DisableAll: old.DisableAll, EnabledCheckers: old.EnabledCheckers, DisabledCheckers: old.DisabledCheckers, - BoolCompare: two.TestifylintBoolCompare{ + BoolCompare: versiontwo.TestifylintBoolCompare{ IgnoreCustomTypes: old.BoolCompare.IgnoreCustomTypes, }, - ExpectedActual: two.TestifylintExpectedActual{ + ExpectedActual: versiontwo.TestifylintExpectedActual{ ExpVarPattern: old.ExpectedActual.ExpVarPattern, }, - Formatter: two.TestifylintFormatter{ + Formatter: versiontwo.TestifylintFormatter{ CheckFormatString: old.Formatter.CheckFormatString, RequireFFuncs: old.Formatter.RequireFFuncs, }, - GoRequire: two.TestifylintGoRequire{ + GoRequire: versiontwo.TestifylintGoRequire{ IgnoreHTTPHandlers: old.GoRequire.IgnoreHTTPHandlers, }, - RequireError: two.TestifylintRequireError{ + RequireError: versiontwo.TestifylintRequireError{ FnPattern: old.RequireError.FnPattern, }, - SuiteExtraAssertCall: two.TestifylintSuiteExtraAssertCall{ + SuiteExtraAssertCall: versiontwo.TestifylintSuiteExtraAssertCall{ Mode: old.SuiteExtraAssertCall.Mode, }, } } -func toTestpackageSettings(old one.TestpackageSettings) two.TestpackageSettings { - return two.TestpackageSettings{ +func toTestpackageSettings(old versionone.TestpackageSettings) versiontwo.TestpackageSettings { + return versiontwo.TestpackageSettings{ SkipRegexp: old.SkipRegexp, AllowPackages: old.AllowPackages, } } -func toThelperSettings(old one.ThelperSettings) two.ThelperSettings { - return two.ThelperSettings{ - Test: two.ThelperOptions{ +func toThelperSettings(old versionone.ThelperSettings) versiontwo.ThelperSettings { + return versiontwo.ThelperSettings{ + Test: versiontwo.ThelperOptions{ First: old.Test.First, Name: old.Test.Name, Begin: old.Test.Begin, }, - Fuzz: two.ThelperOptions{ + Fuzz: versiontwo.ThelperOptions{ First: old.Fuzz.First, Name: old.Fuzz.Name, Begin: old.Fuzz.Begin, }, - Benchmark: two.ThelperOptions{ + Benchmark: versiontwo.ThelperOptions{ First: old.Benchmark.First, Name: old.Benchmark.Name, Begin: old.Benchmark.Begin, }, - TB: two.ThelperOptions{ + TB: versiontwo.ThelperOptions{ First: old.TB.First, Name: old.TB.Name, Begin: old.TB.Begin, @@ -882,21 +882,21 @@ func toThelperSettings(old one.ThelperSettings) two.ThelperSettings { } } -func toUnconvertSettings(old one.UnconvertSettings) two.UnconvertSettings { - return two.UnconvertSettings{ +func toUnconvertSettings(old versionone.UnconvertSettings) versiontwo.UnconvertSettings { + return versiontwo.UnconvertSettings{ FastMath: old.FastMath, Safe: old.Safe, } } -func toUnparamSettings(old one.UnparamSettings) two.UnparamSettings { - return two.UnparamSettings{ +func toUnparamSettings(old versionone.UnparamSettings) versiontwo.UnparamSettings { + return versiontwo.UnparamSettings{ CheckExported: old.CheckExported, } } -func toUnusedSettings(old one.UnusedSettings) two.UnusedSettings { - return two.UnusedSettings{ +func toUnusedSettings(old versionone.UnusedSettings) versiontwo.UnusedSettings { + return versiontwo.UnusedSettings{ FieldWritesAreUses: old.FieldWritesAreUses, PostStatementsAreReads: old.PostStatementsAreReads, ExportedFieldsAreUsed: old.ExportedFieldsAreUsed, @@ -906,8 +906,8 @@ func toUnusedSettings(old one.UnusedSettings) two.UnusedSettings { } } -func toUseStdlibVarsSettings(old one.UseStdlibVarsSettings) two.UseStdlibVarsSettings { - return two.UseStdlibVarsSettings{ +func toUseStdlibVarsSettings(old versionone.UseStdlibVarsSettings) versiontwo.UseStdlibVarsSettings { + return versiontwo.UseStdlibVarsSettings{ HTTPMethod: old.HTTPMethod, HTTPStatusCode: old.HTTPStatusCode, TimeWeekday: old.TimeWeekday, @@ -921,8 +921,8 @@ func toUseStdlibVarsSettings(old one.UseStdlibVarsSettings) two.UseStdlibVarsSet } } -func toUseTestingSettings(old one.UseTestingSettings) two.UseTestingSettings { - return two.UseTestingSettings{ +func toUseTestingSettings(old versionone.UseTestingSettings) versiontwo.UseTestingSettings { + return versiontwo.UseTestingSettings{ ContextBackground: old.ContextBackground, ContextTodo: old.ContextTodo, OSChdir: old.OSChdir, @@ -933,8 +933,8 @@ func toUseTestingSettings(old one.UseTestingSettings) two.UseTestingSettings { } } -func toVarnamelenSettings(old one.VarnamelenSettings) two.VarnamelenSettings { - return two.VarnamelenSettings{ +func toVarnamelenSettings(old versionone.VarnamelenSettings) versiontwo.VarnamelenSettings { + return versiontwo.VarnamelenSettings{ MaxDistance: old.MaxDistance, MinNameLength: old.MinNameLength, CheckReceiver: old.CheckReceiver, @@ -948,15 +948,15 @@ func toVarnamelenSettings(old one.VarnamelenSettings) two.VarnamelenSettings { } } -func toWhitespaceSettings(old one.WhitespaceSettings) two.WhitespaceSettings { - return two.WhitespaceSettings{ +func toWhitespaceSettings(old versionone.WhitespaceSettings) versiontwo.WhitespaceSettings { + return versiontwo.WhitespaceSettings{ MultiIf: old.MultiIf, MultiFunc: old.MultiFunc, } } -func toWrapcheckSettings(old one.WrapcheckSettings) two.WrapcheckSettings { - return two.WrapcheckSettings{ +func toWrapcheckSettings(old versionone.WrapcheckSettings) versiontwo.WrapcheckSettings { + return versiontwo.WrapcheckSettings{ ExtraIgnoreSigs: old.ExtraIgnoreSigs, IgnoreSigs: old.IgnoreSigs, IgnoreSigRegexps: old.IgnoreSigRegexps, @@ -965,8 +965,8 @@ func toWrapcheckSettings(old one.WrapcheckSettings) two.WrapcheckSettings { } } -func toWSLSettings(old one.WSLSettings) two.WSLSettings { - return two.WSLSettings{ +func toWSLSettings(old versionone.WSLSettings) versiontwo.WSLSettings { + return versiontwo.WSLSettings{ StrictAppend: old.StrictAppend, AllowAssignAndCallCuddle: old.AllowAssignAndCallCuddle, AllowAssignAndAnythingCuddle: old.AllowAssignAndAnythingCuddle, @@ -983,15 +983,15 @@ func toWSLSettings(old one.WSLSettings) two.WSLSettings { } } -func toCustom(old map[string]one.CustomLinterSettings) map[string]two.CustomLinterSettings { +func toCustom(old map[string]versionone.CustomLinterSettings) map[string]versiontwo.CustomLinterSettings { if old == nil { return nil } - settings := map[string]two.CustomLinterSettings{} + settings := map[string]versiontwo.CustomLinterSettings{} for k, s := range old { - settings[k] = two.CustomLinterSettings{ + settings[k] = versiontwo.CustomLinterSettings{ Type: s.Type, Path: s.Path, Description: s.Description, diff --git a/pkg/commands/internal/migrate/migrate_output.go b/pkg/commands/internal/migrate/migrate_output.go index 652c208c307e..c2ee009edb3e 100644 --- a/pkg/commands/internal/migrate/migrate_output.go +++ b/pkg/commands/internal/migrate/migrate_output.go @@ -3,13 +3,13 @@ package migrate import ( "slices" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versionone" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versiontwo" ) -func toOutput(old *one.Config) two.Output { - formats := two.Formats{} +func toOutput(old *versionone.Config) versiontwo.Output { + formats := versiontwo.Formats{} oldFormats := cleanIncompatibleFormats(old.Output.Formats, "colored-line-number", "line-number") oldFormats = cleanIncompatibleFormats(oldFormats, "colored-tab", "tab") @@ -70,7 +70,7 @@ func toOutput(old *one.Config) two.Output { } } - return two.Output{ + return versiontwo.Output{ Formats: formats, SortOrder: old.Output.SortOrder, PathPrefix: old.Output.PathPrefix, @@ -86,12 +86,12 @@ func defaultFormatPath(p string) string { return p } -func cleanIncompatibleFormats(old one.OutputFormats, f1, f2 string) one.OutputFormats { - index1 := slices.IndexFunc(old, func(format one.OutputFormat) bool { +func cleanIncompatibleFormats(old versionone.OutputFormats, f1, f2 string) versionone.OutputFormats { + index1 := slices.IndexFunc(old, func(format versionone.OutputFormat) bool { return ptr.Deref(format.Format) == f1 }) - index2 := slices.IndexFunc(old, func(format one.OutputFormat) bool { + index2 := slices.IndexFunc(old, func(format versionone.OutputFormat) bool { return ptr.Deref(format.Format) == f2 }) diff --git a/pkg/commands/internal/migrate/migrate_run.go b/pkg/commands/internal/migrate/migrate_run.go index 89dfe89148bf..ebedecd5b7e9 100644 --- a/pkg/commands/internal/migrate/migrate_run.go +++ b/pkg/commands/internal/migrate/migrate_run.go @@ -1,12 +1,12 @@ package migrate import ( - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versionone" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versiontwo" ) -func toRun(old *one.Config) two.Run { +func toRun(old *versionone.Config) versiontwo.Run { var relativePathMode *string if ptr.Deref(old.Run.RelativePathMode) != "cfg" { // cfg is the new default. @@ -19,7 +19,7 @@ func toRun(old *one.Config) two.Run { concurrency = old.Run.Concurrency } - return two.Run{ + return versiontwo.Run{ Timeout: 0, // Enforce new default. Concurrency: concurrency, Go: old.Run.Go, diff --git a/pkg/commands/internal/migrate/migrate_severity.go b/pkg/commands/internal/migrate/migrate_severity.go index a283f4f9176e..65609b99fb8e 100644 --- a/pkg/commands/internal/migrate/migrate_severity.go +++ b/pkg/commands/internal/migrate/migrate_severity.go @@ -1,16 +1,16 @@ package migrate import ( - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versionone" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versiontwo" ) -func toSeverity(old *one.Config) two.Severity { - var rules []two.SeverityRule +func toSeverity(old *versionone.Config) versiontwo.Severity { + var rules []versiontwo.SeverityRule for _, rule := range old.Severity.Rules { - rules = append(rules, two.SeverityRule{ - BaseRule: two.BaseRule{ + rules = append(rules, versiontwo.SeverityRule{ + BaseRule: versiontwo.BaseRule{ Linters: convertStaticcheckLinterNames(convertAlternativeNames(rule.Linters)), Path: rule.Path, PathExcept: rule.PathExcept, @@ -21,7 +21,7 @@ func toSeverity(old *one.Config) two.Severity { }) } - return two.Severity{ + return versiontwo.Severity{ Default: old.Severity.Default, Rules: rules, } diff --git a/pkg/commands/internal/migrate/migrate_test.go b/pkg/commands/internal/migrate/migrate_test.go index eddbc2bcc0cb..73bafb016d8e 100644 --- a/pkg/commands/internal/migrate/migrate_test.go +++ b/pkg/commands/internal/migrate/migrate_test.go @@ -13,7 +13,7 @@ import ( "github.com/stretchr/testify/require" "gopkg.in/yaml.v3" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versionone" "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/logutils" ) @@ -56,7 +56,7 @@ func TestToConfig(t *testing.T) { func testFile(t *testing.T, in, golden string, update bool) { t.Helper() - old := one.NewConfig() + old := versionone.NewConfig() options := config.LoaderOptions{Config: in} @@ -84,7 +84,7 @@ func testFile(t *testing.T, in, golden string, update bool) { assert.YAMLEq(t, string(expected), buf.String()) } -func updateGolden(t *testing.T, golden string, old *one.Config) { +func updateGolden(t *testing.T, golden string, old *versionone.Config) { t.Helper() fileOut, err := os.Create(golden) diff --git a/pkg/commands/internal/migrate/one/base_rule.go b/pkg/commands/internal/migrate/versionone/base_rule.go similarity index 93% rename from pkg/commands/internal/migrate/one/base_rule.go rename to pkg/commands/internal/migrate/versionone/base_rule.go index 5f9f8db6d57d..244e25997bf4 100644 --- a/pkg/commands/internal/migrate/one/base_rule.go +++ b/pkg/commands/internal/migrate/versionone/base_rule.go @@ -1,4 +1,4 @@ -package one +package versionone type BaseRule struct { Linters []string `mapstructure:"linters"` diff --git a/pkg/commands/internal/migrate/one/config.go b/pkg/commands/internal/migrate/versionone/config.go similarity index 97% rename from pkg/commands/internal/migrate/one/config.go rename to pkg/commands/internal/migrate/versionone/config.go index 0b0b08442027..9abb9780c679 100644 --- a/pkg/commands/internal/migrate/one/config.go +++ b/pkg/commands/internal/migrate/versionone/config.go @@ -1,4 +1,4 @@ -package one +package versionone type Config struct { cfgDir string // Path to the directory containing golangci-lint config file. diff --git a/pkg/commands/internal/migrate/one/doc.go b/pkg/commands/internal/migrate/versionone/doc.go similarity index 62% rename from pkg/commands/internal/migrate/one/doc.go rename to pkg/commands/internal/migrate/versionone/doc.go index f6efa5b876b0..fb945f3c5843 100644 --- a/pkg/commands/internal/migrate/one/doc.go +++ b/pkg/commands/internal/migrate/versionone/doc.go @@ -1,4 +1,4 @@ -// Package one contains a modified copy of v1 configuration. +// Package versionone contains a modified copy of v1 configuration. // The structures are altered to use pointer on builtin types. // The field version is added to enforce the detection of already migrated file. -package one +package versionone diff --git a/pkg/commands/internal/migrate/one/issues.go b/pkg/commands/internal/migrate/versionone/issues.go similarity index 98% rename from pkg/commands/internal/migrate/one/issues.go rename to pkg/commands/internal/migrate/versionone/issues.go index cdfbf3828fb1..bac6ba9ca262 100644 --- a/pkg/commands/internal/migrate/one/issues.go +++ b/pkg/commands/internal/migrate/versionone/issues.go @@ -1,4 +1,4 @@ -package one +package versionone type Issues struct { IncludeDefaultExcludes []string `mapstructure:"include"` diff --git a/pkg/commands/internal/migrate/one/linters.go b/pkg/commands/internal/migrate/versionone/linters.go similarity index 94% rename from pkg/commands/internal/migrate/one/linters.go rename to pkg/commands/internal/migrate/versionone/linters.go index 4cd3165eddc9..d6a490fee0ff 100644 --- a/pkg/commands/internal/migrate/one/linters.go +++ b/pkg/commands/internal/migrate/versionone/linters.go @@ -1,4 +1,4 @@ -package one +package versionone type Linters struct { Enable []string `mapstructure:"enable"` diff --git a/pkg/commands/internal/migrate/one/linters_settings.go b/pkg/commands/internal/migrate/versionone/linters_settings.go similarity index 99% rename from pkg/commands/internal/migrate/one/linters_settings.go rename to pkg/commands/internal/migrate/versionone/linters_settings.go index af9991629c1c..bff3cf7df13a 100644 --- a/pkg/commands/internal/migrate/one/linters_settings.go +++ b/pkg/commands/internal/migrate/versionone/linters_settings.go @@ -1,4 +1,4 @@ -package one +package versionone import ( "encoding" diff --git a/pkg/commands/internal/migrate/one/output.go b/pkg/commands/internal/migrate/versionone/output.go similarity index 98% rename from pkg/commands/internal/migrate/one/output.go rename to pkg/commands/internal/migrate/versionone/output.go index 21ebf844e195..07a5671d1a71 100644 --- a/pkg/commands/internal/migrate/one/output.go +++ b/pkg/commands/internal/migrate/versionone/output.go @@ -1,4 +1,4 @@ -package one +package versionone import ( "strings" diff --git a/pkg/commands/internal/migrate/one/run.go b/pkg/commands/internal/migrate/versionone/run.go similarity index 97% rename from pkg/commands/internal/migrate/one/run.go rename to pkg/commands/internal/migrate/versionone/run.go index cfb1b553a39c..db3e0edc9379 100644 --- a/pkg/commands/internal/migrate/one/run.go +++ b/pkg/commands/internal/migrate/versionone/run.go @@ -1,4 +1,4 @@ -package one +package versionone import ( "time" diff --git a/pkg/commands/internal/migrate/one/severity.go b/pkg/commands/internal/migrate/versionone/severity.go similarity index 94% rename from pkg/commands/internal/migrate/one/severity.go rename to pkg/commands/internal/migrate/versionone/severity.go index 7dc67cfe7509..b9d52e692d6f 100644 --- a/pkg/commands/internal/migrate/one/severity.go +++ b/pkg/commands/internal/migrate/versionone/severity.go @@ -1,4 +1,4 @@ -package one +package versionone type Severity struct { Default *string `mapstructure:"default-severity"` diff --git a/pkg/commands/internal/migrate/two/base_rule.go b/pkg/commands/internal/migrate/versiontwo/base_rule.go similarity index 96% rename from pkg/commands/internal/migrate/two/base_rule.go rename to pkg/commands/internal/migrate/versiontwo/base_rule.go index 03eb9ae4c2a4..da52ae1242e5 100644 --- a/pkg/commands/internal/migrate/two/base_rule.go +++ b/pkg/commands/internal/migrate/versiontwo/base_rule.go @@ -1,6 +1,6 @@ // Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. -package two +package versiontwo type BaseRule struct { Linters []string `yaml:"linters,omitempty" toml:"linters,omitempty"` diff --git a/pkg/commands/internal/migrate/two/config.go b/pkg/commands/internal/migrate/versiontwo/config.go similarity index 96% rename from pkg/commands/internal/migrate/two/config.go rename to pkg/commands/internal/migrate/versiontwo/config.go index 37bae3eec69e..302f089a45b0 100644 --- a/pkg/commands/internal/migrate/two/config.go +++ b/pkg/commands/internal/migrate/versiontwo/config.go @@ -1,6 +1,6 @@ // Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. -package two +package versiontwo type Config struct { Version *string `yaml:"version,omitempty" toml:"version,omitempty"` diff --git a/pkg/commands/internal/migrate/two/formatters.go b/pkg/commands/internal/migrate/versiontwo/formatters.go similarity index 96% rename from pkg/commands/internal/migrate/two/formatters.go rename to pkg/commands/internal/migrate/versiontwo/formatters.go index 85bb5938678e..4fcf34ebc858 100644 --- a/pkg/commands/internal/migrate/two/formatters.go +++ b/pkg/commands/internal/migrate/versiontwo/formatters.go @@ -1,6 +1,6 @@ // Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. -package two +package versiontwo type Formatters struct { Enable []string `yaml:"enable,omitempty" toml:"enable,omitempty"` diff --git a/pkg/commands/internal/migrate/two/formatters_settings.go b/pkg/commands/internal/migrate/versiontwo/formatters_settings.go similarity index 99% rename from pkg/commands/internal/migrate/two/formatters_settings.go rename to pkg/commands/internal/migrate/versiontwo/formatters_settings.go index 5ab41966773a..d36952eae5cb 100644 --- a/pkg/commands/internal/migrate/two/formatters_settings.go +++ b/pkg/commands/internal/migrate/versiontwo/formatters_settings.go @@ -1,6 +1,6 @@ // Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. -package two +package versiontwo type FormatterSettings struct { Gci GciSettings `yaml:"gci,omitempty" toml:"gci,omitempty"` diff --git a/pkg/commands/internal/migrate/two/issues.go b/pkg/commands/internal/migrate/versiontwo/issues.go similarity index 97% rename from pkg/commands/internal/migrate/two/issues.go rename to pkg/commands/internal/migrate/versiontwo/issues.go index f23892844c97..31294a7a69dd 100644 --- a/pkg/commands/internal/migrate/two/issues.go +++ b/pkg/commands/internal/migrate/versiontwo/issues.go @@ -1,6 +1,6 @@ // Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. -package two +package versiontwo type Issues struct { MaxIssuesPerLinter *int `yaml:"max-issues-per-linter,omitempty" toml:"max-issues-per-linter,omitempty"` diff --git a/pkg/commands/internal/migrate/two/linters.go b/pkg/commands/internal/migrate/versiontwo/linters.go similarity index 96% rename from pkg/commands/internal/migrate/two/linters.go rename to pkg/commands/internal/migrate/versiontwo/linters.go index 164ed0df3022..545108524824 100644 --- a/pkg/commands/internal/migrate/two/linters.go +++ b/pkg/commands/internal/migrate/versiontwo/linters.go @@ -1,6 +1,6 @@ // Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. -package two +package versiontwo type Linters struct { Default *string `yaml:"default,omitempty" toml:"default,omitempty"` diff --git a/pkg/commands/internal/migrate/two/linters_exclusions.go b/pkg/commands/internal/migrate/versiontwo/linters_exclusions.go similarity index 97% rename from pkg/commands/internal/migrate/two/linters_exclusions.go rename to pkg/commands/internal/migrate/versiontwo/linters_exclusions.go index 5d569fd9dfba..0715bc5254d4 100644 --- a/pkg/commands/internal/migrate/two/linters_exclusions.go +++ b/pkg/commands/internal/migrate/versiontwo/linters_exclusions.go @@ -1,6 +1,6 @@ // Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. -package two +package versiontwo type LinterExclusions struct { Generated *string `yaml:"generated,omitempty" toml:"generated,omitempty"` diff --git a/pkg/commands/internal/migrate/two/linters_settings.go b/pkg/commands/internal/migrate/versiontwo/linters_settings.go similarity index 99% rename from pkg/commands/internal/migrate/two/linters_settings.go rename to pkg/commands/internal/migrate/versiontwo/linters_settings.go index 0578a1968cc0..5ef1b4da17e0 100644 --- a/pkg/commands/internal/migrate/two/linters_settings.go +++ b/pkg/commands/internal/migrate/versiontwo/linters_settings.go @@ -1,6 +1,6 @@ // Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. -package two +package versiontwo type LintersSettings struct { FormatterSettings `yaml:"-,omitempty" toml:"-,omitempty"` diff --git a/pkg/commands/internal/migrate/two/output.go b/pkg/commands/internal/migrate/versiontwo/output.go similarity index 95% rename from pkg/commands/internal/migrate/two/output.go rename to pkg/commands/internal/migrate/versiontwo/output.go index d49731f43433..33211f08fb5c 100644 --- a/pkg/commands/internal/migrate/two/output.go +++ b/pkg/commands/internal/migrate/versiontwo/output.go @@ -1,6 +1,6 @@ // Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. -package two +package versiontwo type Output struct { Formats Formats `yaml:"formats,omitempty" toml:"formats,omitempty"` diff --git a/pkg/commands/internal/migrate/two/output_formats.go b/pkg/commands/internal/migrate/versiontwo/output_formats.go similarity index 98% rename from pkg/commands/internal/migrate/two/output_formats.go rename to pkg/commands/internal/migrate/versiontwo/output_formats.go index caed78d87339..699f12c6385c 100644 --- a/pkg/commands/internal/migrate/two/output_formats.go +++ b/pkg/commands/internal/migrate/versiontwo/output_formats.go @@ -1,6 +1,6 @@ // Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. -package two +package versiontwo type Formats struct { Text Text `yaml:"text,omitempty" toml:"text,omitempty"` diff --git a/pkg/commands/internal/migrate/two/run.go b/pkg/commands/internal/migrate/versiontwo/run.go similarity index 98% rename from pkg/commands/internal/migrate/two/run.go rename to pkg/commands/internal/migrate/versiontwo/run.go index 65479fb8c313..afb8af6516ca 100644 --- a/pkg/commands/internal/migrate/two/run.go +++ b/pkg/commands/internal/migrate/versiontwo/run.go @@ -1,6 +1,6 @@ // Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. -package two +package versiontwo import ( "time" diff --git a/pkg/commands/internal/migrate/two/severity.go b/pkg/commands/internal/migrate/versiontwo/severity.go similarity index 95% rename from pkg/commands/internal/migrate/two/severity.go rename to pkg/commands/internal/migrate/versiontwo/severity.go index 0d172a977451..486dece00aa9 100644 --- a/pkg/commands/internal/migrate/two/severity.go +++ b/pkg/commands/internal/migrate/versiontwo/severity.go @@ -1,6 +1,6 @@ // Code generated by pkg/commands/internal/migrate/cloner/cloner.go. DO NOT EDIT. -package two +package versiontwo type Severity struct { Default *string `yaml:"default,omitempty" toml:"default,omitempty"` diff --git a/pkg/commands/migrate.go b/pkg/commands/migrate.go index 56d479b5c20a..adb031d6cd70 100644 --- a/pkg/commands/migrate.go +++ b/pkg/commands/migrate.go @@ -17,8 +17,8 @@ import ( "gopkg.in/yaml.v3" "github.com/golangci/golangci-lint/pkg/commands/internal/migrate" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/one" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/two" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versionone" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versiontwo" "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/exitcodes" "github.com/golangci/golangci-lint/pkg/logutils" @@ -36,7 +36,7 @@ type migrateCommand struct { opts migrateOptions - cfg *one.Config + cfg *versionone.Config buildInfo BuildInfo @@ -46,7 +46,7 @@ type migrateCommand struct { func newMigrateCommand(log logutils.Log, info BuildInfo) *migrateCommand { c := &migrateCommand{ viper: viper.New(), - cfg: one.NewConfig(), + cfg: versionone.NewConfig(), buildInfo: info, log: log, } @@ -192,7 +192,7 @@ func (c *migrateCommand) backupConfigurationFile(srcPath string) error { return nil } -func saveNewConfiguration(newCfg *two.Config, dstPath string) error { +func saveNewConfiguration(newCfg *versiontwo.Config, dstPath string) error { dstFile, err := os.Create(dstPath) if err != nil { return err From 8a3fbff2f226376dcf75bd18403fcbada82a5aad Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Thu, 6 Mar 2025 15:09:36 +0100 Subject: [PATCH 15/30] review --- .../internal/migrate/migrate_formatters.go | 5 +++-- .../internal/migrate/migrate_linter_names.go | 19 ++++++++----------- pkg/commands/migrate.go | 16 ++++++++++++---- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/pkg/commands/internal/migrate/migrate_formatters.go b/pkg/commands/internal/migrate/migrate_formatters.go index e41c5966ccae..3ad5b4fc4249 100644 --- a/pkg/commands/internal/migrate/migrate_formatters.go +++ b/pkg/commands/internal/migrate/migrate_formatters.go @@ -69,8 +69,9 @@ func toGoFumptSettings(old versionone.GoFumptSettings) versiontwo.GoFumptSetting func toGoImportsSettings(old versionone.GoImportsSettings) versiontwo.GoImportsSettings { var localPrefixes []string - if ptr.Deref(old.LocalPrefixes) != "" { - localPrefixes = strings.Split(ptr.Deref(old.LocalPrefixes), ",") + prefixes := ptr.Deref(old.LocalPrefixes) + if prefixes != "" { + localPrefixes = strings.Split(prefixes, ",") } return versiontwo.GoImportsSettings{ diff --git a/pkg/commands/internal/migrate/migrate_linter_names.go b/pkg/commands/internal/migrate/migrate_linter_names.go index 71aea9dfa79d..5fec11f85a57 100644 --- a/pkg/commands/internal/migrate/migrate_linter_names.go +++ b/pkg/commands/internal/migrate/migrate_linter_names.go @@ -1,6 +1,7 @@ package migrate import ( + "cmp" "slices" "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/ptr" @@ -718,9 +719,7 @@ func toNames(linters []LinterInfo) []string { results = append(results, linter.Name) } - slices.Sort(results) - - return slices.Compact(results) + return Unique(results) } func removeLinters(linters, toRemove []LinterInfo) []LinterInfo { @@ -852,9 +851,7 @@ func unknownLinterNames(names []string, linters []LinterInfo) []string { } } - slices.Sort(results) - - return slices.Compact(results) + return Unique(results) } func convertStaticcheckLinterNames(names []string) []string { @@ -869,9 +866,7 @@ func convertStaticcheckLinterNames(names []string) []string { results = append(results, name) } - slices.Sort(results) - - return slices.Compact(results) + return Unique(results) } func onlyLinterNames(names []string) []string { @@ -924,7 +919,9 @@ func convertAlternativeNames(names []string) []string { results = append(results, name) } - slices.Sort(results) + return Unique(results) +} - return slices.Compact(results) +func Unique[S ~[]E, E cmp.Ordered](s S) S { + return slices.Compact(slices.Sorted(slices.Values(s))) } diff --git a/pkg/commands/migrate.go b/pkg/commands/migrate.go index adb031d6cd70..e190b1659f4c 100644 --- a/pkg/commands/migrate.go +++ b/pkg/commands/migrate.go @@ -71,11 +71,11 @@ func newMigrateCommand(log logutils.Log, info BuildInfo) *migrateCommand { setupConfigFileFlagSet(fs, &c.opts.LoaderOptions) fs.StringVar(&c.opts.format, "format", "", - color.GreenString("By default, the file format is based on the configuration file extension.\n"+ - "Overrides file format detection.\nIt can be 'yml', 'yaml', 'toml', 'json'.")) + color.GreenString("Output file format.\nBy default, the format of the input configuration file is used.\n"+ + "It can be 'yml', 'yaml', 'toml', or 'json'.")) fs.BoolVar(&c.opts.skipValidation, "skip-validation", false, - color.GreenString("Skip validation of the configuration file against the JSONSchema for v1.")) + color.GreenString("Skip validation of the configuration file against the JSON Schema for v1.")) c.cmd = migrateCmd @@ -101,7 +101,8 @@ func (c *migrateCommand) execute(_ *cobra.Command, _ []string) error { c.log.Infof("Migrating v1 configuration file: %s", srcPath) ext := filepath.Ext(srcPath) - if strings.TrimSpace(c.opts.format) != "" { + + if c.opts.format != "" { ext = "." + strings.TrimPrefix(c.opts.format, ".") } @@ -126,6 +127,13 @@ func (c *migrateCommand) execute(_ *cobra.Command, _ []string) error { } func (c *migrateCommand) preRunE(cmd *cobra.Command, _ []string) error { + switch strings.ToLower(c.opts.format) { + case "", "yml", "yaml", "toml", "json": //nolint:goconst // Constants are useless in this context. + // Valid format. + default: + return fmt.Errorf("unsupported format: %s", c.opts.format) + } + if c.opts.skipValidation { return nil } From 064f43f385cadaaae220d40ab10ff40e6826553a Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Thu, 6 Mar 2025 22:23:05 +0100 Subject: [PATCH 16/30] review: add log about run.timeout --- pkg/commands/migrate.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/commands/migrate.go b/pkg/commands/migrate.go index e190b1659f4c..fff5228a2eb5 100644 --- a/pkg/commands/migrate.go +++ b/pkg/commands/migrate.go @@ -112,6 +112,10 @@ func (c *migrateCommand) execute(_ *cobra.Command, _ []string) error { }() } + if c.cfg.Run.Timeout != 0 { + c.log.Warnf("The configuration `run.timeout` is ignored. By default, in v2, the timeout is disabled.") + } + newCfg := migrate.ToConfig(c.cfg) dstPath := strings.TrimSuffix(srcPath, filepath.Ext(srcPath)) + ext From 5ec43d0f09edbf78e81e077bad99272dd9da4bc0 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Fri, 7 Mar 2025 14:00:54 +0100 Subject: [PATCH 17/30] review --- pkg/commands/internal/migrate/cloner/cloner.go | 4 ++-- pkg/commands/internal/migrate/migrate_linter_names.go | 5 ----- .../internal/migrate/migrate_linter_names_test.go | 6 +++--- .../internal/migrate/migrate_linters_settings.go | 7 ------- .../migrate/testdata/linters-settings_tenv.golden.yml | 5 ----- .../internal/migrate/testdata/linters-settings_tenv.yml | 9 --------- .../internal/migrate/testdata/linters_02.golden.yml | 1 - .../internal/migrate/testdata/linters_03.golden.yml | 1 - .../internal/migrate/testdata/linters_06.golden.yml | 1 - .../internal/migrate/testdata/linters_08.golden.yml | 1 - .../internal/migrate/testdata/linters_09.golden.yml | 1 - .../internal/migrate/versiontwo/linters_settings.go | 5 ----- pkg/commands/migrate.go | 4 +++- pkg/config/base_loader.go | 6 +++--- pkg/config/linters_settings.go | 5 ----- 15 files changed, 11 insertions(+), 50 deletions(-) delete mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_tenv.golden.yml delete mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_tenv.yml diff --git a/pkg/commands/internal/migrate/cloner/cloner.go b/pkg/commands/internal/migrate/cloner/cloner.go index 8e7c4fe5d4f1..0a5f934bdb52 100644 --- a/pkg/commands/internal/migrate/cloner/cloner.go +++ b/pkg/commands/internal/migrate/cloner/cloner.go @@ -16,11 +16,11 @@ import ( "golang.org/x/tools/imports" ) -const newPkgName = "two" +const newPkgName = "versiontwo" const ( srcDir = "./pkg/config" - dstDir = "./pkg/commands/internal/migrate/two" + dstDir = "./pkg/commands/internal/migrate/versiontwo" ) func main() { diff --git a/pkg/commands/internal/migrate/migrate_linter_names.go b/pkg/commands/internal/migrate/migrate_linter_names.go index 5fec11f85a57..a0e9d87b2e74 100644 --- a/pkg/commands/internal/migrate/migrate_linter_names.go +++ b/pkg/commands/internal/migrate/migrate_linter_names.go @@ -623,11 +623,6 @@ func allLinters() []LinterInfo { Presets: []string{"style"}, Slow: true, }, - { - Name: "tenv", - Presets: []string{"test"}, - Slow: true, - }, { Name: "testableexamples", Presets: []string{"test"}, diff --git a/pkg/commands/internal/migrate/migrate_linter_names_test.go b/pkg/commands/internal/migrate/migrate_linter_names_test.go index f9bf8a836db3..360258ee93e4 100644 --- a/pkg/commands/internal/migrate/migrate_linter_names_test.go +++ b/pkg/commands/internal/migrate/migrate_linter_names_test.go @@ -148,7 +148,7 @@ func Test_enableAllFilter(t *testing.T) { Fast: ptr.Pointer(true), Presets: nil, }, - expected: []string{"asasalint", "bodyclose", "canonicalheader", "containedctx", "contextcheck", "durationcheck", "err113", "errcheck", "errchkjson", "errname", "errorlint", "exhaustive", "exhaustruct", "exptostd", "fatcontext", "forbidigo", "forcetypeassert", "ginkgolinter", "gochecknoglobals", "gochecksumtype", "gocritic", "gosec", "gosimple", "gosmopolitan", "govet", "iface", "importas", "intrange", "ireturn", "loggercheck", "makezero", "mirror", "musttag", "nilerr", "nilnesserr", "nilnil", "noctx", "nonamedreturns", "paralleltest", "perfsprint", "protogetter", "reassign", "recvcheck", "revive", "rowserrcheck", "sloglint", "spancheck", "sqlclosecheck", "staticcheck", "stylecheck", "tagliatelle", "tenv", "testifylint", "thelper", "tparallel", "unconvert", "unparam", "unused", "usetesting", "varnamelen", "wastedassign", "wrapcheck", "zerologlint"}, + expected: []string{"asasalint", "bodyclose", "canonicalheader", "containedctx", "contextcheck", "durationcheck", "err113", "errcheck", "errchkjson", "errname", "errorlint", "exhaustive", "exhaustruct", "exptostd", "fatcontext", "forbidigo", "forcetypeassert", "ginkgolinter", "gochecknoglobals", "gochecksumtype", "gocritic", "gosec", "gosimple", "gosmopolitan", "govet", "iface", "importas", "intrange", "ireturn", "loggercheck", "makezero", "mirror", "musttag", "nilerr", "nilnesserr", "nilnil", "noctx", "nonamedreturns", "paralleltest", "perfsprint", "protogetter", "reassign", "recvcheck", "revive", "rowserrcheck", "sloglint", "spancheck", "sqlclosecheck", "staticcheck", "stylecheck", "tagliatelle", "testifylint", "thelper", "tparallel", "unconvert", "unparam", "unused", "usetesting", "varnamelen", "wastedassign", "wrapcheck", "zerologlint"}, }, { desc: "disable", @@ -168,7 +168,7 @@ func Test_enableAllFilter(t *testing.T) { Fast: ptr.Pointer(true), Presets: nil, }, - expected: []string{"asasalint", "bodyclose", "canonicalheader", "containedctx", "contextcheck", "durationcheck", "err113", "errcheck", "errchkjson", "errname", "errorlint", "exhaustive", "exhaustruct", "exptostd", "fatcontext", "forbidigo", "forcetypeassert", "ginkgolinter", "gochecknoglobals", "gochecksumtype", "gocritic", "gosec", "gosimple", "gosmopolitan", "govet", "iface", "importas", "intrange", "ireturn", "lll", "loggercheck", "makezero", "mirror", "misspell", "musttag", "nilerr", "nilnesserr", "nilnil", "noctx", "nonamedreturns", "paralleltest", "perfsprint", "protogetter", "reassign", "recvcheck", "revive", "rowserrcheck", "sloglint", "spancheck", "sqlclosecheck", "staticcheck", "stylecheck", "tagliatelle", "tenv", "testifylint", "thelper", "tparallel", "unconvert", "unparam", "unused", "usetesting", "varnamelen", "wastedassign", "wrapcheck", "zerologlint"}, + expected: []string{"asasalint", "bodyclose", "canonicalheader", "containedctx", "contextcheck", "durationcheck", "err113", "errcheck", "errchkjson", "errname", "errorlint", "exhaustive", "exhaustruct", "exptostd", "fatcontext", "forbidigo", "forcetypeassert", "ginkgolinter", "gochecknoglobals", "gochecksumtype", "gocritic", "gosec", "gosimple", "gosmopolitan", "govet", "iface", "importas", "intrange", "ireturn", "lll", "loggercheck", "makezero", "mirror", "misspell", "musttag", "nilerr", "nilnesserr", "nilnil", "noctx", "nonamedreturns", "paralleltest", "perfsprint", "protogetter", "reassign", "recvcheck", "revive", "rowserrcheck", "sloglint", "spancheck", "sqlclosecheck", "staticcheck", "stylecheck", "tagliatelle", "testifylint", "thelper", "tparallel", "unconvert", "unparam", "unused", "usetesting", "varnamelen", "wastedassign", "wrapcheck", "zerologlint"}, }, { desc: "disable, enable, fast", @@ -179,7 +179,7 @@ func Test_enableAllFilter(t *testing.T) { Fast: ptr.Pointer(true), Presets: nil, }, - expected: []string{"asasalint", "bodyclose", "containedctx", "contextcheck", "durationcheck", "err113", "errcheck", "errchkjson", "errorlint", "exhaustive", "exhaustruct", "exptostd", "fatcontext", "forbidigo", "forcetypeassert", "ginkgolinter", "gochecknoglobals", "gochecksumtype", "gocritic", "gosec", "gosimple", "gosmopolitan", "govet", "iface", "importas", "intrange", "ireturn", "lll", "loggercheck", "makezero", "mirror", "misspell", "musttag", "nilerr", "nilnesserr", "nilnil", "noctx", "nonamedreturns", "paralleltest", "perfsprint", "protogetter", "reassign", "recvcheck", "revive", "rowserrcheck", "sloglint", "spancheck", "sqlclosecheck", "staticcheck", "stylecheck", "tagliatelle", "tenv", "testifylint", "thelper", "tparallel", "unconvert", "unparam", "unused", "usetesting", "varnamelen", "wastedassign", "wrapcheck", "zerologlint"}, + expected: []string{"asasalint", "bodyclose", "containedctx", "contextcheck", "durationcheck", "err113", "errcheck", "errchkjson", "errorlint", "exhaustive", "exhaustruct", "exptostd", "fatcontext", "forbidigo", "forcetypeassert", "ginkgolinter", "gochecknoglobals", "gochecksumtype", "gocritic", "gosec", "gosimple", "gosmopolitan", "govet", "iface", "importas", "intrange", "ireturn", "lll", "loggercheck", "makezero", "mirror", "misspell", "musttag", "nilerr", "nilnesserr", "nilnil", "noctx", "nonamedreturns", "paralleltest", "perfsprint", "protogetter", "reassign", "recvcheck", "revive", "rowserrcheck", "sloglint", "spancheck", "sqlclosecheck", "staticcheck", "stylecheck", "tagliatelle", "testifylint", "thelper", "tparallel", "unconvert", "unparam", "unused", "usetesting", "varnamelen", "wastedassign", "wrapcheck", "zerologlint"}, }, } diff --git a/pkg/commands/internal/migrate/migrate_linters_settings.go b/pkg/commands/internal/migrate/migrate_linters_settings.go index 2031ecb697d3..2cb72a05bc8f 100644 --- a/pkg/commands/internal/migrate/migrate_linters_settings.go +++ b/pkg/commands/internal/migrate/migrate_linters_settings.go @@ -76,7 +76,6 @@ func toLinterSettings(old versionone.LintersSettings) versiontwo.LintersSettings Staticcheck: toStaticCheckSettings(old), TagAlign: toTagAlignSettings(old.TagAlign), Tagliatelle: toTagliatelleSettings(old.Tagliatelle), - Tenv: toTenvSettings(old.Tenv), Testifylint: toTestifylintSettings(old.Testifylint), Testpackage: toTestpackageSettings(old.Testpackage), Thelper: toThelperSettings(old.Thelper), @@ -816,12 +815,6 @@ func toTagliatelleSettings(old versionone.TagliatelleSettings) versiontwo.Taglia return versiontwo.TagliatelleSettings{Case: tcase} } -func toTenvSettings(old versionone.TenvSettings) versiontwo.TenvSettings { - return versiontwo.TenvSettings{ - All: old.All, - } -} - func toTestifylintSettings(old versionone.TestifylintSettings) versiontwo.TestifylintSettings { return versiontwo.TestifylintSettings{ EnableAll: old.EnableAll, diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_tenv.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_tenv.golden.yml deleted file mode 100644 index 86fc037862fa..000000000000 --- a/pkg/commands/internal/migrate/testdata/linters-settings_tenv.golden.yml +++ /dev/null @@ -1,5 +0,0 @@ -version: "2" -linters: - settings: - tenv: - all: false diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_tenv.yml b/pkg/commands/internal/migrate/testdata/linters-settings_tenv.yml deleted file mode 100644 index 4dfe2d567852..000000000000 --- a/pkg/commands/internal/migrate/testdata/linters-settings_tenv.yml +++ /dev/null @@ -1,9 +0,0 @@ -issues: - # Only to not generate unrelated elements inside golden. - exclude-generated: strict - # Only to not generate unrelated elements inside golden. - exclude-dirs-use-default: false - -linters-settings: - tenv: - all: false diff --git a/pkg/commands/internal/migrate/testdata/linters_02.golden.yml b/pkg/commands/internal/migrate/testdata/linters_02.golden.yml index 884441141183..dc734d8b4aae 100644 --- a/pkg/commands/internal/migrate/testdata/linters_02.golden.yml +++ b/pkg/commands/internal/migrate/testdata/linters_02.golden.yml @@ -91,7 +91,6 @@ linters: - staticcheck - tagalign - tagliatelle - - tenv - testableexamples - testifylint - testpackage diff --git a/pkg/commands/internal/migrate/testdata/linters_03.golden.yml b/pkg/commands/internal/migrate/testdata/linters_03.golden.yml index e47c3147b104..e9ee53176afe 100644 --- a/pkg/commands/internal/migrate/testdata/linters_03.golden.yml +++ b/pkg/commands/internal/migrate/testdata/linters_03.golden.yml @@ -41,7 +41,6 @@ linters: - mnd - mycustomlinter3 - mycustomlinter4 - - tenv formatters: enable: - gofmt diff --git a/pkg/commands/internal/migrate/testdata/linters_06.golden.yml b/pkg/commands/internal/migrate/testdata/linters_06.golden.yml index 3993d9059bb3..b0d4ab2d2ebc 100644 --- a/pkg/commands/internal/migrate/testdata/linters_06.golden.yml +++ b/pkg/commands/internal/migrate/testdata/linters_06.golden.yml @@ -43,7 +43,6 @@ linters: - mnd - mycustomlinter3 - mycustomlinter4 - - tenv formatters: enable: - gci diff --git a/pkg/commands/internal/migrate/testdata/linters_08.golden.yml b/pkg/commands/internal/migrate/testdata/linters_08.golden.yml index fea9f8bac857..2c35ca9e0c7b 100644 --- a/pkg/commands/internal/migrate/testdata/linters_08.golden.yml +++ b/pkg/commands/internal/migrate/testdata/linters_08.golden.yml @@ -64,7 +64,6 @@ linters: - sqlclosecheck - staticcheck - tagliatelle - - tenv - testifylint - thelper - tparallel diff --git a/pkg/commands/internal/migrate/testdata/linters_09.golden.yml b/pkg/commands/internal/migrate/testdata/linters_09.golden.yml index fde4cc822620..7154856c8057 100644 --- a/pkg/commands/internal/migrate/testdata/linters_09.golden.yml +++ b/pkg/commands/internal/migrate/testdata/linters_09.golden.yml @@ -44,7 +44,6 @@ linters: - mycustomlinter3 - mycustomlinter4 - staticcheck - - tenv formatters: enable: - gofmt diff --git a/pkg/commands/internal/migrate/versiontwo/linters_settings.go b/pkg/commands/internal/migrate/versiontwo/linters_settings.go index 5ef1b4da17e0..bb668e95611a 100644 --- a/pkg/commands/internal/migrate/versiontwo/linters_settings.go +++ b/pkg/commands/internal/migrate/versiontwo/linters_settings.go @@ -70,7 +70,6 @@ type LintersSettings struct { Staticcheck StaticCheckSettings `yaml:"staticcheck,omitempty" toml:"staticcheck,omitempty"` TagAlign TagAlignSettings `yaml:"tagalign,omitempty" toml:"tagalign,omitempty"` Tagliatelle TagliatelleSettings `yaml:"tagliatelle,omitempty" toml:"tagliatelle,omitempty"` - Tenv TenvSettings `yaml:"tenv,omitempty" toml:"tenv,omitempty"` Testifylint TestifylintSettings `yaml:"testifylint,omitempty" toml:"testifylint,omitempty"` Testpackage TestpackageSettings `yaml:"testpackage,omitempty" toml:"testpackage,omitempty"` Thelper ThelperSettings `yaml:"thelper,omitempty" toml:"thelper,omitempty"` @@ -672,10 +671,6 @@ type ThelperOptions struct { Begin *bool `yaml:"begin,omitempty" toml:"begin,omitempty"` } -type TenvSettings struct { - All *bool `yaml:"all,omitempty" toml:"all,omitempty"` -} - type UseStdlibVarsSettings struct { HTTPMethod *bool `yaml:"http-method,omitempty" toml:"http-method,omitempty"` HTTPStatusCode *bool `yaml:"http-status-code,omitempty" toml:"http-status-code,omitempty"` diff --git a/pkg/commands/migrate.go b/pkg/commands/migrate.go index fff5228a2eb5..9a128ed940f2 100644 --- a/pkg/commands/migrate.go +++ b/pkg/commands/migrate.go @@ -98,12 +98,14 @@ func (c *migrateCommand) execute(_ *cobra.Command, _ []string) error { return err } + c.log.Warnf("The configuration comments are not migrated.") + c.log.Infof("Migrating v1 configuration file: %s", srcPath) ext := filepath.Ext(srcPath) if c.opts.format != "" { - ext = "." + strings.TrimPrefix(c.opts.format, ".") + ext = "." + c.opts.format } if !strings.EqualFold(filepath.Ext(srcPath), ext) { diff --git a/pkg/config/base_loader.go b/pkg/config/base_loader.go index 2fd4d1cfb5f2..2c061a89ffdd 100644 --- a/pkg/config/base_loader.go +++ b/pkg/config/base_loader.go @@ -16,7 +16,7 @@ import ( "github.com/golangci/golangci-lint/pkg/logutils" ) -type CFG interface { +type BaseConfig interface { IsInternalTest() bool SetConfigDir(dir string) } @@ -28,11 +28,11 @@ type BaseLoader struct { log logutils.Log - cfg CFG + cfg BaseConfig args []string } -func NewBaseLoader(log logutils.Log, v *viper.Viper, opts LoaderOptions, cfg CFG, args []string) *BaseLoader { +func NewBaseLoader(log logutils.Log, v *viper.Viper, opts LoaderOptions, cfg BaseConfig, args []string) *BaseLoader { return &BaseLoader{ opts: opts, viper: v, diff --git a/pkg/config/linters_settings.go b/pkg/config/linters_settings.go index d47d6869b6df..27b67d66da26 100644 --- a/pkg/config/linters_settings.go +++ b/pkg/config/linters_settings.go @@ -262,7 +262,6 @@ type LintersSettings struct { Staticcheck StaticCheckSettings `mapstructure:"staticcheck"` TagAlign TagAlignSettings `mapstructure:"tagalign"` Tagliatelle TagliatelleSettings `mapstructure:"tagliatelle"` - Tenv TenvSettings `mapstructure:"tenv"` Testifylint TestifylintSettings `mapstructure:"testifylint"` Testpackage TestpackageSettings `mapstructure:"testpackage"` Thelper ThelperSettings `mapstructure:"thelper"` @@ -895,10 +894,6 @@ type ThelperOptions struct { Begin *bool `mapstructure:"begin"` } -type TenvSettings struct { - All bool `mapstructure:"all"` -} - type UseStdlibVarsSettings struct { HTTPMethod bool `mapstructure:"http-method"` HTTPStatusCode bool `mapstructure:"http-status-code"` From 345e674213610af908bf0753a1a5b28a058c6769 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Fri, 7 Mar 2025 15:00:15 +0100 Subject: [PATCH 18/30] review --- .../migrate/migrate_linters_settings.go | 4 +-- .../linters-settings_gocritic.golden.yml | 33 +++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/pkg/commands/internal/migrate/migrate_linters_settings.go b/pkg/commands/internal/migrate/migrate_linters_settings.go index 2cb72a05bc8f..b1838c21cca2 100644 --- a/pkg/commands/internal/migrate/migrate_linters_settings.go +++ b/pkg/commands/internal/migrate/migrate_linters_settings.go @@ -346,12 +346,12 @@ func toGoCriticSettings(old versionone.GoCriticSettings) versiontwo.GoCriticSett DisabledTags: old.DisabledTags, } - for k, checkSettings := range settings.SettingsPerCheck { + for k, checkSettings := range old.SettingsPerCheck { if settings.SettingsPerCheck == nil { settings.SettingsPerCheck = make(map[string]versiontwo.GoCriticCheckSettings) } - settings.SettingsPerCheck[k] = checkSettings + settings.SettingsPerCheck[k] = versiontwo.GoCriticCheckSettings(checkSettings) } return settings diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml index b061ef0b6538..265053cb3504 100644 --- a/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml @@ -230,3 +230,36 @@ linters: - performance - experimental - opinionated + settings: + captlocal: + paramsonly: false + commentedoutcode: + minlength: 50 + elseif: + skipbalanced: false + hugeparam: + sizethreshold: 70 + ifelsechain: + minthreshold: 4 + nestingreduce: + bodywidth: 4 + rangeexprcopy: + sizethreshold: 516 + skiptestfuncs: false + rangevalcopy: + sizethreshold: 32 + skiptestfuncs: false + ruleguard: + debug: emptyDecl + disable: myGroupName,#myTagName + enable: myGroupName,#myTagName + failon: dsl,import + rules: ${configDir}/ruleguard/rules-*.go,${configDir}/myrule1.go + toomanyresultschecker: + maxresults: 10 + truncatecmp: + skiparchdependent: false + underef: + skiprecvderef: false + unnamedresult: + checkexported: true From 1ab00665f27e93a8372b683e83ac095a6565293a Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Fri, 7 Mar 2025 16:06:53 +0100 Subject: [PATCH 19/30] review --- .../migrate/migrate_linters_settings.go | 22 ++++++++++++++++++- .../linters-settings_gocritic.golden.yml | 2 +- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/pkg/commands/internal/migrate/migrate_linters_settings.go b/pkg/commands/internal/migrate/migrate_linters_settings.go index b1838c21cca2..ca6dad6a117c 100644 --- a/pkg/commands/internal/migrate/migrate_linters_settings.go +++ b/pkg/commands/internal/migrate/migrate_linters_settings.go @@ -351,7 +351,27 @@ func toGoCriticSettings(old versionone.GoCriticSettings) versiontwo.GoCriticSett settings.SettingsPerCheck = make(map[string]versiontwo.GoCriticCheckSettings) } - settings.SettingsPerCheck[k] = versiontwo.GoCriticCheckSettings(checkSettings) + if k != "ruleguard" { + settings.SettingsPerCheck[k] = versiontwo.GoCriticCheckSettings(checkSettings) + + continue + } + + gccs := versiontwo.GoCriticCheckSettings{} + + for sk, value := range checkSettings { + if sk != "rules" { + gccs[sk] = value + + continue + } + + if rules, ok := value.(string); ok { + gccs[sk] = strings.ReplaceAll(rules, "${configDir}", "${base-path}") + } + } + + settings.SettingsPerCheck[k] = gccs } return settings diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml index 265053cb3504..f8db51dc32a8 100644 --- a/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml @@ -254,7 +254,7 @@ linters: disable: myGroupName,#myTagName enable: myGroupName,#myTagName failon: dsl,import - rules: ${configDir}/ruleguard/rules-*.go,${configDir}/myrule1.go + rules: ${base-path}/ruleguard/rules-*.go,${base-path}/myrule1.go toomanyresultschecker: maxresults: 10 truncatecmp: From 7df6432b44bea3aea37bfc58efaa271d531e0359 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Fri, 7 Mar 2025 16:26:00 +0100 Subject: [PATCH 20/30] review --- .../internal/migrate/migrate_formatters.go | 23 +++++++++++++++++++ .../migrate/migrate_linters_exclusions.go | 7 +++++- .../migrate/testdata/issues_10.golden.yml | 9 ++++++++ .../internal/migrate/testdata/issues_10.yml | 15 ++++++++++++ 4 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 pkg/commands/internal/migrate/testdata/issues_10.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_10.yml diff --git a/pkg/commands/internal/migrate/migrate_formatters.go b/pkg/commands/internal/migrate/migrate_formatters.go index 3ad5b4fc4249..f883666c1929 100644 --- a/pkg/commands/internal/migrate/migrate_formatters.go +++ b/pkg/commands/internal/migrate/migrate_formatters.go @@ -19,6 +19,8 @@ func toFormatters(old *versionone.Config) versiontwo.Formatters { paths = slices.Concat(old.Issues.ExcludeFiles, old.Issues.ExcludeDirs) } + paths = append(paths, toFormattersPathsFromRules(old.Issues)...) + return versiontwo.Formatters{ Enable: formatterNames, Settings: versiontwo.FormatterSettings{ @@ -34,6 +36,27 @@ func toFormatters(old *versionone.Config) versiontwo.Formatters { } } +func toFormattersPathsFromRules(old versionone.Issues) []string { + var results []string + + for _, rule := range old.ExcludeRules { + allNames := convertStaticcheckLinterNames(convertAlternativeNames(rule.Linters)) + + names := onlyFormatterNames(allNames) + if len(names) == 0 { + continue + } + + if ptr.Deref(rule.Path) == "" { + continue + } + + results = append(results, ptr.Deref(rule.Path)) + } + + return results +} + func toGciSettings(old versionone.GciSettings) versiontwo.GciSettings { return versiontwo.GciSettings{ Sections: old.Sections, diff --git a/pkg/commands/internal/migrate/migrate_linters_exclusions.go b/pkg/commands/internal/migrate/migrate_linters_exclusions.go index 9dc59e5b8236..0c86aad09a62 100644 --- a/pkg/commands/internal/migrate/migrate_linters_exclusions.go +++ b/pkg/commands/internal/migrate/migrate_linters_exclusions.go @@ -64,9 +64,14 @@ func toExclusionRules(old *versionone.Config) []versiontwo.ExcludeRule { var results []versiontwo.ExcludeRule for _, rule := range old.Issues.ExcludeRules { + names := onlyLinterNames(convertStaticcheckLinterNames(convertAlternativeNames(rule.Linters))) + if len(rule.Linters) > 0 && len(names) == 0 { + continue + } + results = append(results, versiontwo.ExcludeRule{ BaseRule: versiontwo.BaseRule{ - Linters: onlyLinterNames(convertStaticcheckLinterNames(convertAlternativeNames(rule.Linters))), + Linters: names, Path: rule.Path, PathExcept: rule.PathExcept, Text: addPrefix(old.Issues, rule.Text), diff --git a/pkg/commands/internal/migrate/testdata/issues_10.golden.yml b/pkg/commands/internal/migrate/testdata/issues_10.golden.yml new file mode 100644 index 000000000000..14b8dc090ab7 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_10.golden.yml @@ -0,0 +1,9 @@ +version: "2" +linters: + default: none +formatters: + enable: + - goimports + exclusions: + paths: + - \.(generated\.deepcopy|pb)\.go$ diff --git a/pkg/commands/internal/migrate/testdata/issues_10.yml b/pkg/commands/internal/migrate/testdata/issues_10.yml new file mode 100644 index 000000000000..8998e191eefa --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_10.yml @@ -0,0 +1,15 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-rules: + - path: "\\.(generated\\.deepcopy|pb)\\.go$" + linters: + - goimports + +linters: + disable-all: true + enable: + - goimports From fe69114d87b27535d2014a08364786a948d5b2d5 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Fri, 7 Mar 2025 17:01:46 +0100 Subject: [PATCH 21/30] feat: missing case --- .../internal/migrate/migrate_formatters.go | 6 +++++- ...issues_07.golden.yml => issues_07_a.golden.yml} | 0 .../testdata/{issues_07.yml => issues_07_a.yml} | 0 .../migrate/testdata/issues_07_b.golden.yml | 14 ++++++++++++++ .../internal/migrate/testdata/issues_07_b.yml | 10 ++++++++++ 5 files changed, 29 insertions(+), 1 deletion(-) rename pkg/commands/internal/migrate/testdata/{issues_07.golden.yml => issues_07_a.golden.yml} (100%) rename pkg/commands/internal/migrate/testdata/{issues_07.yml => issues_07_a.yml} (100%) create mode 100644 pkg/commands/internal/migrate/testdata/issues_07_b.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/issues_07_b.yml diff --git a/pkg/commands/internal/migrate/migrate_formatters.go b/pkg/commands/internal/migrate/migrate_formatters.go index f883666c1929..762f5792bafe 100644 --- a/pkg/commands/internal/migrate/migrate_formatters.go +++ b/pkg/commands/internal/migrate/migrate_formatters.go @@ -15,8 +15,12 @@ func toFormatters(old *versionone.Config) versiontwo.Formatters { formatterNames := onlyFormatterNames(enable) var paths []string - if len(formatterNames) != 0 { + if len(formatterNames) > 0 { paths = slices.Concat(old.Issues.ExcludeFiles, old.Issues.ExcludeDirs) + + if old.Issues.UseDefaultExcludeDirs == nil || ptr.Deref(old.Issues.UseDefaultExcludeDirs) { + paths = append(paths, "examples$") + } } paths = append(paths, toFormattersPathsFromRules(old.Issues)...) diff --git a/pkg/commands/internal/migrate/testdata/issues_07.golden.yml b/pkg/commands/internal/migrate/testdata/issues_07_a.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_07.golden.yml rename to pkg/commands/internal/migrate/testdata/issues_07_a.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_07.yml b/pkg/commands/internal/migrate/testdata/issues_07_a.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_07.yml rename to pkg/commands/internal/migrate/testdata/issues_07_a.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_07_b.golden.yml b/pkg/commands/internal/migrate/testdata/issues_07_b.golden.yml new file mode 100644 index 000000000000..4b3500282ebc --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_07_b.golden.yml @@ -0,0 +1,14 @@ +version: "2" +linters: + default: none + exclusions: + paths: + - third_party$ + - builtin$ + - examples$ +formatters: + enable: + - goimports + exclusions: + paths: + - examples$ diff --git a/pkg/commands/internal/migrate/testdata/issues_07_b.yml b/pkg/commands/internal/migrate/testdata/issues_07_b.yml new file mode 100644 index 000000000000..91ade9547afe --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/issues_07_b.yml @@ -0,0 +1,10 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + + exclude-dirs-use-default: true + +linters: + disable-all: true + enable: + - goimports From a7e11f8407ea2c06766f1df459945963024f5f48 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Sat, 8 Mar 2025 13:10:07 +0100 Subject: [PATCH 22/30] review --- pkg/commands/internal/migrate/cloner/cloner.go | 11 ++++------- pkg/commands/internal/migrate/migrate_formatters.go | 2 +- .../internal/migrate/migrate_linters_settings.go | 4 +--- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/pkg/commands/internal/migrate/cloner/cloner.go b/pkg/commands/internal/migrate/cloner/cloner.go index 0a5f934bdb52..05620c25a95a 100644 --- a/pkg/commands/internal/migrate/cloner/cloner.go +++ b/pkg/commands/internal/migrate/cloner/cloner.go @@ -69,15 +69,12 @@ func skipFile(path string) bool { return true } - if filepath.Base(path) == "base_loader.go" { - return true - } - - if filepath.Base(path) == "loader.go" { + switch filepath.Base(path) { + case "base_loader.go", "loader.go": return true + default: + return false } - - return false } func processFile(file *ast.File) { diff --git a/pkg/commands/internal/migrate/migrate_formatters.go b/pkg/commands/internal/migrate/migrate_formatters.go index 762f5792bafe..69d7a50d39f8 100644 --- a/pkg/commands/internal/migrate/migrate_formatters.go +++ b/pkg/commands/internal/migrate/migrate_formatters.go @@ -67,7 +67,7 @@ func toGciSettings(old versionone.GciSettings) versiontwo.GciSettings { NoInlineComments: old.NoInlineComments, NoPrefixComments: old.NoPrefixComments, CustomOrder: old.CustomOrder, - NoLexOrder: old.CustomOrder, + NoLexOrder: old.NoLexOrder, } } diff --git a/pkg/commands/internal/migrate/migrate_linters_settings.go b/pkg/commands/internal/migrate/migrate_linters_settings.go index ca6dad6a117c..1605ff13c6c9 100644 --- a/pkg/commands/internal/migrate/migrate_linters_settings.go +++ b/pkg/commands/internal/migrate/migrate_linters_settings.go @@ -791,10 +791,8 @@ func toSpancheckSettings(old versionone.SpancheckSettings) versiontwo.SpancheckS func toStaticCheckSettings(old versionone.LintersSettings) versiontwo.StaticCheckSettings { checks := slices.Concat(old.Staticcheck.Checks, old.Stylecheck.Checks, old.Gosimple.Checks) - slices.Sort(checks) - return versiontwo.StaticCheckSettings{ - Checks: slices.Compact(checks), + Checks: Unique(checks), Initialisms: old.Stylecheck.Initialisms, DotImportWhitelist: old.Stylecheck.DotImportWhitelist, HTTPStatusCodeWhitelist: old.Stylecheck.HTTPStatusCodeWhitelist, From fdf27fc9a6c0c27d31dc57cefb8a5dbcb199e5c1 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Sat, 8 Mar 2025 13:16:12 +0100 Subject: [PATCH 23/30] review --- .../migrate/migrate_linters_exclusions.go | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/pkg/commands/internal/migrate/migrate_linters_exclusions.go b/pkg/commands/internal/migrate/migrate_linters_exclusions.go index 0c86aad09a62..3c5d12fb8ce0 100644 --- a/pkg/commands/internal/migrate/migrate_linters_exclusions.go +++ b/pkg/commands/internal/migrate/migrate_linters_exclusions.go @@ -106,8 +106,6 @@ func addPrefix(old versionone.Issues, s *string) *string { } func linterTestExclusions(old versionone.LintersSettings) []versiontwo.ExcludeRule { - var results []versiontwo.ExcludeRule - var excludedTestLinters []string if ptr.Deref(old.Asasalint.IgnoreTest) { @@ -123,16 +121,16 @@ func linterTestExclusions(old versionone.LintersSettings) []versiontwo.ExcludeRu excludedTestLinters = append(excludedTestLinters, "gosmopolitan") } - if len(excludedTestLinters) > 0 { - results = append(results, versiontwo.ExcludeRule{ - BaseRule: versiontwo.BaseRule{ - Linters: excludedTestLinters, - Path: ptr.Pointer(`(.+)_test\.go`), - }, - }) + if len(excludedTestLinters) == 0 { + return nil } - return results + return []versiontwo.ExcludeRule{{ + BaseRule: versiontwo.BaseRule{ + Linters: excludedTestLinters, + Path: ptr.Pointer(`(.+)_test\.go`), + }, + }} } func toExclusionPaths(old versionone.Issues) []string { From e809f593a0c63e967e025f15357c37f7b3f76947 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Sat, 8 Mar 2025 18:48:15 +0100 Subject: [PATCH 24/30] review --- .../internal/migrate/migrate_formatters.go | 8 +++--- .../internal/migrate/migrate_linter_names.go | 27 ++++++++++++++++++- .../migrate/testdata/linters_05.golden.yml | 6 +++++ .../migrate/testdata/linters_08.golden.yml | 5 ++++ .../migrate/testdata/linters_11.golden.yml | 8 ++++++ .../internal/migrate/testdata/linters_11.yml | 11 ++++++++ .../migrate/testdata/linters_12.golden.yml | 5 ++++ .../internal/migrate/testdata/linters_12.yml | 11 ++++++++ 8 files changed, 75 insertions(+), 6 deletions(-) create mode 100644 pkg/commands/internal/migrate/testdata/linters_11.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_11.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_12.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/linters_12.yml diff --git a/pkg/commands/internal/migrate/migrate_formatters.go b/pkg/commands/internal/migrate/migrate_formatters.go index 69d7a50d39f8..5d6dd19a2bf7 100644 --- a/pkg/commands/internal/migrate/migrate_formatters.go +++ b/pkg/commands/internal/migrate/migrate_formatters.go @@ -10,12 +10,10 @@ import ( ) func toFormatters(old *versionone.Config) versiontwo.Formatters { - enable, _ := ProcessEffectiveLinters(old.Linters) - - formatterNames := onlyFormatterNames(enable) + enable := ProcessEffectiveFormatters(old.Linters) var paths []string - if len(formatterNames) > 0 { + if len(enable) > 0 { paths = slices.Concat(old.Issues.ExcludeFiles, old.Issues.ExcludeDirs) if old.Issues.UseDefaultExcludeDirs == nil || ptr.Deref(old.Issues.UseDefaultExcludeDirs) { @@ -26,7 +24,7 @@ func toFormatters(old *versionone.Config) versiontwo.Formatters { paths = append(paths, toFormattersPathsFromRules(old.Issues)...) return versiontwo.Formatters{ - Enable: formatterNames, + Enable: enable, Settings: versiontwo.FormatterSettings{ Gci: toGciSettings(old.LintersSettings.Gci), GoFmt: toGoFmtSettings(old.LintersSettings.GoFmt), diff --git a/pkg/commands/internal/migrate/migrate_linter_names.go b/pkg/commands/internal/migrate/migrate_linter_names.go index a0e9d87b2e74..e57edaee9763 100644 --- a/pkg/commands/internal/migrate/migrate_linter_names.go +++ b/pkg/commands/internal/migrate/migrate_linter_names.go @@ -38,13 +38,33 @@ func ProcessEffectiveLinters(old versionone.Linters) (enable, disable []string) switch { case ptr.Deref(old.DisableAll): return disableAllFilter(old), nil + case ptr.Deref(old.EnableAll): return nil, enableAllFilter(old) + default: return defaultLintersFilter(old) } } +func ProcessEffectiveFormatters(old versionone.Linters) []string { + enabled, disabled := ProcessEffectiveLinters(old) + + if ptr.Deref(old.EnableAll) { + var formatterNames []string + + for _, f := range getAllFormatterNames() { + if !slices.Contains(disabled, f) { + formatterNames = append(formatterNames, f) + } + } + + return formatterNames + } + + return onlyFormatterNames(enabled) +} + // disableAllFilter generates the value of `enable` when `disable-all` is `true`. func disableAllFilter(old versionone.Linters) []string { // Note: @@ -827,6 +847,7 @@ func unknownLinterNames(names []string, linters []LinterInfo) []string { "scopelint", "structcheck", "tenv", + "typecheck", "varcheck", } @@ -879,7 +900,7 @@ func onlyLinterNames(names []string) []string { } func onlyFormatterNames(names []string) []string { - formatters := []string{"gci", "gofmt", "gofumpt", "goimports"} + formatters := getAllFormatterNames() var results []string @@ -920,3 +941,7 @@ func convertAlternativeNames(names []string) []string { func Unique[S ~[]E, E cmp.Ordered](s S) S { return slices.Compact(slices.Sorted(slices.Values(s))) } + +func getAllFormatterNames() []string { + return []string{"gci", "gofmt", "gofumpt", "goimports"} +} diff --git a/pkg/commands/internal/migrate/testdata/linters_05.golden.yml b/pkg/commands/internal/migrate/testdata/linters_05.golden.yml index 30be0c2ac631..7a86200e614f 100644 --- a/pkg/commands/internal/migrate/testdata/linters_05.golden.yml +++ b/pkg/commands/internal/migrate/testdata/linters_05.golden.yml @@ -19,3 +19,9 @@ linters: - durationcheck - err113 - errcheck +formatters: + enable: + - gci + - gofmt + - gofumpt + - goimports diff --git a/pkg/commands/internal/migrate/testdata/linters_08.golden.yml b/pkg/commands/internal/migrate/testdata/linters_08.golden.yml index 2c35ca9e0c7b..44d8d379dd89 100644 --- a/pkg/commands/internal/migrate/testdata/linters_08.golden.yml +++ b/pkg/commands/internal/migrate/testdata/linters_08.golden.yml @@ -75,3 +75,8 @@ linters: - wastedassign - wrapcheck - zerologlint +formatters: + enable: + - gofmt + - gofumpt + - goimports diff --git a/pkg/commands/internal/migrate/testdata/linters_11.golden.yml b/pkg/commands/internal/migrate/testdata/linters_11.golden.yml new file mode 100644 index 000000000000..5cd5e6e72c02 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_11.golden.yml @@ -0,0 +1,8 @@ +version: "2" +linters: + default: all +formatters: + enable: + - gofmt + - gofumpt + - goimports diff --git a/pkg/commands/internal/migrate/testdata/linters_11.yml b/pkg/commands/internal/migrate/testdata/linters_11.yml new file mode 100644 index 000000000000..001674056e92 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_11.yml @@ -0,0 +1,11 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters: + enable-all: true + disable: + - typecheck + - gci diff --git a/pkg/commands/internal/migrate/testdata/linters_12.golden.yml b/pkg/commands/internal/migrate/testdata/linters_12.golden.yml new file mode 100644 index 000000000000..21bc0b640e18 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_12.golden.yml @@ -0,0 +1,5 @@ +version: "2" +linters: + default: none + enable: + - govet diff --git a/pkg/commands/internal/migrate/testdata/linters_12.yml b/pkg/commands/internal/migrate/testdata/linters_12.yml new file mode 100644 index 000000000000..3f07cb72ce3c --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters_12.yml @@ -0,0 +1,11 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +linters: + disable-all: true + enable: + - typecheck + - govet From 76461960c72432e6589cd05849d747612881cc37 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Sun, 9 Mar 2025 02:38:12 +0100 Subject: [PATCH 25/30] chore: reduce log verbosity --- pkg/commands/migrate.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkg/commands/migrate.go b/pkg/commands/migrate.go index 9a128ed940f2..7410715c7ce4 100644 --- a/pkg/commands/migrate.go +++ b/pkg/commands/migrate.go @@ -168,8 +168,6 @@ func (c *migrateCommand) preRunE(cmd *cobra.Command, _ []string) error { } func (c *migrateCommand) persistentPreRunE(_ *cobra.Command, args []string) error { - c.log.SetLevel(logutils.LogLevelInfo) - c.log.Infof("%s", c.buildInfo.String()) loader := config.NewBaseLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, c.opts.LoaderOptions, c.cfg, args) From d66ff11ced7b69082c44cec76e693e360e31add6 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Sun, 9 Mar 2025 05:38:45 +0100 Subject: [PATCH 26/30] chore: rewrite the configuration loading --- .../internal/migrate/fakeloader/config.go | 22 +++++ .../internal/migrate/fakeloader/fakeloader.go | 48 ++++++++++ pkg/commands/internal/migrate/migrate_test.go | 55 +++++++----- .../internal/migrate/parser/parser.go | 87 +++++++++++++++++++ .../migrate/testdata/empty.golden.json | 18 ++++ .../migrate/testdata/empty.golden.toml | 10 +++ .../internal/migrate/testdata/empty.json | 0 .../internal/migrate/testdata/empty.toml | 0 .../linters-settings_gocritic.golden.yml | 50 +++++------ .../linters-settings_goheader.golden.yml | 4 +- .../linters-settings_gosec.golden.yml | 12 +-- .../linters-settings_tagliatelle.golden.yml | 4 +- .../internal/migrate/versionone/config.go | 11 --- pkg/commands/migrate.go | 59 +++---------- pkg/config/base_loader.go | 8 +- 15 files changed, 272 insertions(+), 116 deletions(-) create mode 100644 pkg/commands/internal/migrate/fakeloader/config.go create mode 100644 pkg/commands/internal/migrate/fakeloader/fakeloader.go create mode 100644 pkg/commands/internal/migrate/parser/parser.go create mode 100644 pkg/commands/internal/migrate/testdata/empty.golden.json create mode 100644 pkg/commands/internal/migrate/testdata/empty.golden.toml create mode 100644 pkg/commands/internal/migrate/testdata/empty.json create mode 100644 pkg/commands/internal/migrate/testdata/empty.toml diff --git a/pkg/commands/internal/migrate/fakeloader/config.go b/pkg/commands/internal/migrate/fakeloader/config.go new file mode 100644 index 000000000000..159f4cba00e8 --- /dev/null +++ b/pkg/commands/internal/migrate/fakeloader/config.go @@ -0,0 +1,22 @@ +package fakeloader + +// Config implements [config.BaseConfig]. +// This only the stub for the real file loader. +type Config struct { + Version string `mapstructure:"version"` + + cfgDir string // Path to the directory containing golangci-lint config file. +} + +func NewConfig() *Config { + return &Config{} +} + +// SetConfigDir sets the path to directory that contains golangci-lint config file. +func (c *Config) SetConfigDir(dir string) { + c.cfgDir = dir +} + +func (*Config) IsInternalTest() bool { + return false +} diff --git a/pkg/commands/internal/migrate/fakeloader/fakeloader.go b/pkg/commands/internal/migrate/fakeloader/fakeloader.go new file mode 100644 index 000000000000..d1e718478136 --- /dev/null +++ b/pkg/commands/internal/migrate/fakeloader/fakeloader.go @@ -0,0 +1,48 @@ +package fakeloader + +import ( + "fmt" + "os" + + "github.com/go-viper/mapstructure/v2" + + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/parser" + "github.com/golangci/golangci-lint/pkg/config" +) + +// Load is used to keep case of configuration. +// Viper serialize raw map keys in lowercase, this is a problem with the configuration of some linters. +func Load(srcPath string, old any) error { + file, err := os.Open(srcPath) + if err != nil { + return fmt.Errorf("open file: %w", err) + } + + defer func() { _ = file.Close() }() + + raw := map[string]any{} + + err = parser.Decode(file, raw) + if err != nil { + return err + } + + // NOTE: this is inspired by viper internals. + cc := &mapstructure.DecoderConfig{ + Result: old, + WeaklyTypedInput: true, + DecodeHook: config.DecodeHookFunc(), + } + + decoder, err := mapstructure.NewDecoder(cc) + if err != nil { + return fmt.Errorf("constructing mapstructure decoder: %w", err) + } + + err = decoder.Decode(raw) + if err != nil { + return fmt.Errorf("decoding configuration file: %w", err) + } + + return nil +} diff --git a/pkg/commands/internal/migrate/migrate_test.go b/pkg/commands/internal/migrate/migrate_test.go index 73bafb016d8e..9880a4dbcb1f 100644 --- a/pkg/commands/internal/migrate/migrate_test.go +++ b/pkg/commands/internal/migrate/migrate_test.go @@ -8,16 +8,27 @@ import ( "strings" "testing" - "github.com/spf13/viper" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "gopkg.in/yaml.v3" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/fakeloader" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/parser" "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versionone" - "github.com/golangci/golangci-lint/pkg/config" - "github.com/golangci/golangci-lint/pkg/logutils" ) +type fakeFile struct { + bytes.Buffer + name string +} + +func newFakeFile(name string) *fakeFile { + return &fakeFile{name: name} +} + +func (f *fakeFile) Name() string { + return f.name +} + func TestToConfig(t *testing.T) { var testFiles []string @@ -30,7 +41,7 @@ func TestToConfig(t *testing.T) { return nil } - if strings.HasSuffix(path, ".golden.yml") { + if strings.Contains(path, ".golden.") { return nil } @@ -46,7 +57,7 @@ func TestToConfig(t *testing.T) { t.Parallel() ext := filepath.Ext(fileIn) - fileGolden := strings.TrimSuffix(fileIn, ext) + ".golden.yml" + fileGolden := strings.TrimSuffix(fileIn, ext) + ".golden" + ext testFile(t, fileIn, fileGolden, false) }) @@ -58,30 +69,33 @@ func testFile(t *testing.T, in, golden string, update bool) { old := versionone.NewConfig() - options := config.LoaderOptions{Config: in} - // Fake load of the configuration. // IMPORTANT: The default values from flags are not set. - loader := config.NewBaseLoader(logutils.NewStderrLog("skip"), viper.New(), options, old, nil) - - err := loader.Load() + err := fakeloader.Load(in, old) require.NoError(t, err) if update { updateGolden(t, golden, old) } - expected, err := os.ReadFile(golden) - require.NoError(t, err) + buf := newFakeFile("test" + filepath.Ext(golden)) - var buf bytes.Buffer - encoder := yaml.NewEncoder(&buf) - encoder.SetIndent(2) + err = parser.Encode(ToConfig(old), buf) + require.NoError(t, err) - err = encoder.Encode(ToConfig(old)) + expected, err := os.ReadFile(golden) require.NoError(t, err) - assert.YAMLEq(t, string(expected), buf.String()) + switch filepath.Ext(golden) { + case ".yml": + assert.YAMLEq(t, string(expected), buf.String()) + case ".json": + assert.JSONEq(t, string(expected), buf.String()) + case ".toml": + assert.Equal(t, string(expected), buf.String()) + default: + require.Failf(t, "unsupported extension: %s", golden) + } } func updateGolden(t *testing.T, golden string, old *versionone.Config) { @@ -94,9 +108,6 @@ func updateGolden(t *testing.T, golden string, old *versionone.Config) { _ = fileOut.Close() }() - encoder := yaml.NewEncoder(fileOut) - encoder.SetIndent(2) - - err = encoder.Encode(ToConfig(old)) + err = parser.Encode(ToConfig(old), fileOut) require.NoError(t, err) } diff --git a/pkg/commands/internal/migrate/parser/parser.go b/pkg/commands/internal/migrate/parser/parser.go new file mode 100644 index 000000000000..ea00b41f5a78 --- /dev/null +++ b/pkg/commands/internal/migrate/parser/parser.go @@ -0,0 +1,87 @@ +package parser + +import ( + "bytes" + "encoding/json" + "errors" + "fmt" + "io" + "path/filepath" + "strings" + + "github.com/pelletier/go-toml/v2" + "gopkg.in/yaml.v3" +) + +type File interface { + io.ReadWriter + Name() string +} + +// Decode decodes a file into data. +// The choice of the decoder is based on the file extension. +func Decode(file File, data any) error { + ext := filepath.Ext(file.Name()) + + switch strings.ToLower(ext) { + case ".yaml", ".yml", ".json": + err := yaml.NewDecoder(file).Decode(data) + if err != nil && !errors.Is(err, io.EOF) { + return fmt.Errorf("YAML decode file %s: %w", file.Name(), err) + } + + case ".toml": + err := toml.NewDecoder(file).Decode(&data) + if err != nil { + return fmt.Errorf("TOML decode file %s: %w", file.Name(), err) + } + + default: + return fmt.Errorf("unsupported file type: %s", ext) + } + + return nil +} + +// Encode encodes data into a file. +// The choice of the encoder is based on the file extension. +func Encode(data any, dstFile File) error { + ext := filepath.Ext(dstFile.Name()) + + switch strings.ToLower(ext) { + case ".yml", ".yaml": + encoder := yaml.NewEncoder(dstFile) + encoder.SetIndent(2) + + return encoder.Encode(data) + + case ".toml": + encoder := toml.NewEncoder(dstFile) + + return encoder.Encode(data) + + case ".json": + // The JSON encoder converts empty struct to `{}` instead of nothing (even with omitempty JSON struct tags). + // So we need to use the YAML encoder as bridge to create JSON file. + + var buf bytes.Buffer + err := yaml.NewEncoder(&buf).Encode(data) + if err != nil { + return err + } + + raw := map[string]any{} + err = yaml.NewDecoder(&buf).Decode(raw) + if err != nil { + return err + } + + encoder := json.NewEncoder(dstFile) + encoder.SetIndent("", " ") + + return encoder.Encode(raw) + + default: + return fmt.Errorf("unsupported file type: %s", ext) + } +} diff --git a/pkg/commands/internal/migrate/testdata/empty.golden.json b/pkg/commands/internal/migrate/testdata/empty.golden.json new file mode 100644 index 000000000000..e739c06b3665 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/empty.golden.json @@ -0,0 +1,18 @@ +{ + "formatters": { + "exclusions": { + "generated": "lax" + } + }, + "linters": { + "exclusions": { + "generated": "lax", + "paths": [ + "third_party$", + "builtin$", + "examples$" + ] + } + }, + "version": "2" +} diff --git a/pkg/commands/internal/migrate/testdata/empty.golden.toml b/pkg/commands/internal/migrate/testdata/empty.golden.toml new file mode 100644 index 000000000000..802a65b5ddad --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/empty.golden.toml @@ -0,0 +1,10 @@ +version = '2' + +[linters] +[linters.exclusions] +generated = 'lax' +paths = ['third_party$', 'builtin$', 'examples$'] + +[formatters] +[formatters.exclusions] +generated = 'lax' diff --git a/pkg/commands/internal/migrate/testdata/empty.json b/pkg/commands/internal/migrate/testdata/empty.json new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/pkg/commands/internal/migrate/testdata/empty.toml b/pkg/commands/internal/migrate/testdata/empty.toml new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml index f8db51dc32a8..c83fb879a702 100644 --- a/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml @@ -231,35 +231,35 @@ linters: - experimental - opinionated settings: - captlocal: - paramsonly: false - commentedoutcode: - minlength: 50 + captLocal: + paramsOnly: false + commentedOutCode: + minLength: 50 elseif: - skipbalanced: false - hugeparam: - sizethreshold: 70 - ifelsechain: - minthreshold: 4 - nestingreduce: - bodywidth: 4 - rangeexprcopy: - sizethreshold: 516 - skiptestfuncs: false - rangevalcopy: - sizethreshold: 32 - skiptestfuncs: false + skipBalanced: false + hugeParam: + sizeThreshold: 70 + ifElseChain: + minThreshold: 4 + nestingReduce: + bodyWidth: 4 + rangeExprCopy: + sizeThreshold: 516 + skipTestFuncs: false + rangeValCopy: + sizeThreshold: 32 + skipTestFuncs: false ruleguard: debug: emptyDecl disable: myGroupName,#myTagName enable: myGroupName,#myTagName - failon: dsl,import + failOn: dsl,import rules: ${base-path}/ruleguard/rules-*.go,${base-path}/myrule1.go - toomanyresultschecker: - maxresults: 10 - truncatecmp: - skiparchdependent: false + tooManyResultsChecker: + maxResults: 10 + truncateCmp: + skipArchDependent: false underef: - skiprecvderef: false - unnamedresult: - checkexported: true + skipRecvDeref: false + unnamedResult: + checkExported: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_goheader.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_goheader.golden.yml index e8bdd5319dff..bedacc82035a 100644 --- a/pkg/commands/internal/migrate/testdata/linters-settings_goheader.golden.yml +++ b/pkg/commands/internal/migrate/testdata/linters-settings_goheader.golden.yml @@ -4,9 +4,9 @@ linters: goheader: values: const: - company: MY COMPANY + COMPANY: MY COMPANY regexp: - author: .*@mycompany\.com + AUTHOR: .*@mycompany\.com template: |- Put here copyright header template for source code files For example: diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gosec.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_gosec.golden.yml index 4cd3e5478fa9..5a87f9b4703e 100644 --- a/pkg/commands/internal/migrate/testdata/linters-settings_gosec.golden.yml +++ b/pkg/commands/internal/migrate/testdata/linters-settings_gosec.golden.yml @@ -87,20 +87,20 @@ linters: severity: medium confidence: medium config: - g101: + G101: entropy_threshold: "80.0" ignore_entropy: false pattern: (?i)example per_char_threshold: "3.0" truncate: "32" - g104: + G104: fmt: - Fscanf - g111: + G111: pattern: custom\.Dir\(\) - g301: "0750" - g302: "0600" - g306: "0600" + G301: "0750" + G302: "0600" + G306: "0600" global: '#nosec': '#my-custom-nosec' audit: true diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_tagliatelle.golden.yml b/pkg/commands/internal/migrate/testdata/linters-settings_tagliatelle.golden.yml index f53ddec0d5d5..b65c3241e5f5 100644 --- a/pkg/commands/internal/migrate/testdata/linters-settings_tagliatelle.golden.yml +++ b/pkg/commands/internal/migrate/testdata/linters-settings_tagliatelle.golden.yml @@ -19,8 +19,8 @@ linters: case: camel extra-initialisms: true initialism-overrides: - db: true - lhs: false + DB: true + LHS: false use-field-name: true ignored-fields: - Bar diff --git a/pkg/commands/internal/migrate/versionone/config.go b/pkg/commands/internal/migrate/versionone/config.go index 9abb9780c679..1e9d0ee151db 100644 --- a/pkg/commands/internal/migrate/versionone/config.go +++ b/pkg/commands/internal/migrate/versionone/config.go @@ -1,8 +1,6 @@ package versionone type Config struct { - cfgDir string // Path to the directory containing golangci-lint config file. - Version string `mapstructure:"version"` // From v2, to be able to detect already migrated config file. Run Run `mapstructure:"run"` @@ -18,12 +16,3 @@ type Config struct { func NewConfig() *Config { return &Config{} } - -// SetConfigDir sets the path to directory that contains golangci-lint config file. -func (c *Config) SetConfigDir(dir string) { - c.cfgDir = dir -} - -func (*Config) IsInternalTest() bool { - return false -} diff --git a/pkg/commands/migrate.go b/pkg/commands/migrate.go index 7410715c7ce4..4ccad17acf79 100644 --- a/pkg/commands/migrate.go +++ b/pkg/commands/migrate.go @@ -1,8 +1,6 @@ package commands import ( - "bytes" - "encoding/json" "errors" "fmt" "os" @@ -10,15 +8,14 @@ import ( "strings" "github.com/fatih/color" - "github.com/pelletier/go-toml/v2" "github.com/santhosh-tekuri/jsonschema/v6" "github.com/spf13/cobra" "github.com/spf13/viper" - "gopkg.in/yaml.v3" "github.com/golangci/golangci-lint/pkg/commands/internal/migrate" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/fakeloader" + "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/parser" "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versionone" - "github.com/golangci/golangci-lint/pkg/commands/internal/migrate/versiontwo" "github.com/golangci/golangci-lint/pkg/config" "github.com/golangci/golangci-lint/pkg/exitcodes" "github.com/golangci/golangci-lint/pkg/logutils" @@ -170,14 +167,21 @@ func (c *migrateCommand) preRunE(cmd *cobra.Command, _ []string) error { func (c *migrateCommand) persistentPreRunE(_ *cobra.Command, args []string) error { c.log.Infof("%s", c.buildInfo.String()) - loader := config.NewBaseLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, c.opts.LoaderOptions, c.cfg, args) + loader := config.NewBaseLoader(c.log.Child(logutils.DebugKeyConfigReader), c.viper, c.opts.LoaderOptions, fakeloader.NewConfig(), args) + // Loads the configuration just to get the effective path of the configuration. err := loader.Load() if err != nil { return fmt.Errorf("can't load config: %w", err) } - return nil + srcPath := c.viper.ConfigFileUsed() + if srcPath == "" { + c.log.Warnf("No config file detected") + os.Exit(exitcodes.NoConfigFileDetected) + } + + return fakeloader.Load(srcPath, c.cfg) } func (c *migrateCommand) backupConfigurationFile(srcPath string) error { @@ -204,7 +208,7 @@ func (c *migrateCommand) backupConfigurationFile(srcPath string) error { return nil } -func saveNewConfiguration(newCfg *versiontwo.Config, dstPath string) error { +func saveNewConfiguration(cfg any, dstPath string) error { dstFile, err := os.Create(dstPath) if err != nil { return err @@ -212,42 +216,5 @@ func saveNewConfiguration(newCfg *versiontwo.Config, dstPath string) error { defer func() { _ = dstFile.Close() }() - ext := filepath.Ext(dstPath) - - switch strings.ToLower(ext) { - case ".yml", ".yaml": - encoder := yaml.NewEncoder(dstFile) - encoder.SetIndent(2) - - return encoder.Encode(newCfg) - - case ".toml": - encoder := toml.NewEncoder(dstFile) - - return encoder.Encode(newCfg) - - case ".json": - // The JSON encoder converts empty struct to `{}` instead of nothing (even with omitempty JSON struct tags). - // So we need to use the YAML encoder as bridge to create JSON file. - - var buf bytes.Buffer - err := yaml.NewEncoder(&buf).Encode(newCfg) - if err != nil { - return err - } - - raw := map[string]any{} - err = yaml.NewDecoder(&buf).Decode(raw) - if err != nil { - return err - } - - encoder := json.NewEncoder(dstFile) - encoder.SetIndent("", " ") - - return encoder.Encode(raw) - - default: - return fmt.Errorf("unsupported file type: %s", ext) - } + return parser.Encode(cfg, dstFile) } diff --git a/pkg/config/base_loader.go b/pkg/config/base_loader.go index 2c061a89ffdd..61e07be0019d 100644 --- a/pkg/config/base_loader.go +++ b/pkg/config/base_loader.go @@ -217,12 +217,16 @@ func (l *BaseLoader) setConfigDir() error { } func customDecoderHook() viper.DecoderConfigOption { - return viper.DecodeHook(mapstructure.ComposeDecodeHookFunc( + return viper.DecodeHook(DecodeHookFunc()) +} + +func DecodeHookFunc() mapstructure.DecodeHookFunc { + return mapstructure.ComposeDecodeHookFunc( // Default hooks (https://github.com/spf13/viper/blob/518241257478c557633ab36e474dfcaeb9a3c623/viper.go#L135-L138). mapstructure.StringToTimeDurationHookFunc(), mapstructure.StringToSliceHookFunc(","), // Needed for forbidigo, and output.formats. mapstructure.TextUnmarshallerHookFunc(), - )) + ) } From 0a90047ff1a3d58b70479e5b6c23ccb84ff71708 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Sun, 9 Mar 2025 05:48:13 +0100 Subject: [PATCH 27/30] fix: toml multiline string --- .../internal/migrate/cloner/cloner.go | 2 +- .../migrate/testdata/empty.golden.toml | 6 +- .../linters-settings_goheader.golden.toml | 32 + .../testdata/linters-settings_goheader.toml | 35 + .../internal/migrate/versiontwo/base_rule.go | 12 +- .../internal/migrate/versiontwo/config.go | 14 +- .../internal/migrate/versiontwo/formatters.go | 10 +- .../migrate/versiontwo/formatters_settings.go | 46 +- .../internal/migrate/versiontwo/issues.go | 18 +- .../internal/migrate/versiontwo/linters.go | 12 +- .../migrate/versiontwo/linters_exclusions.go | 12 +- .../migrate/versiontwo/linters_settings.go | 882 +++++++++--------- .../internal/migrate/versiontwo/output.go | 8 +- .../migrate/versiontwo/output_formats.go | 32 +- .../internal/migrate/versiontwo/run.go | 20 +- .../internal/migrate/versiontwo/severity.go | 6 +- 16 files changed, 609 insertions(+), 538 deletions(-) create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_goheader.golden.toml create mode 100644 pkg/commands/internal/migrate/testdata/linters-settings_goheader.toml diff --git a/pkg/commands/internal/migrate/cloner/cloner.go b/pkg/commands/internal/migrate/cloner/cloner.go index 05620c25a95a..9c2400bc69b1 100644 --- a/pkg/commands/internal/migrate/cloner/cloner.go +++ b/pkg/commands/internal/migrate/cloner/cloner.go @@ -159,7 +159,7 @@ func convertStructTag(value string) string { return wrapStructTag(`yaml:",inline"`) } - return wrapStructTag(fmt.Sprintf(`yaml:"%[1]s,omitempty" toml:"%[1]s,omitempty"`, key)) + return wrapStructTag(fmt.Sprintf(`yaml:"%[1]s,omitempty" toml:"%[1]s,multiline,omitempty"`, key)) } func wrapStructTag(s string) string { diff --git a/pkg/commands/internal/migrate/testdata/empty.golden.toml b/pkg/commands/internal/migrate/testdata/empty.golden.toml index 802a65b5ddad..8f7ce1647ed7 100644 --- a/pkg/commands/internal/migrate/testdata/empty.golden.toml +++ b/pkg/commands/internal/migrate/testdata/empty.golden.toml @@ -3,7 +3,11 @@ version = '2' [linters] [linters.exclusions] generated = 'lax' -paths = ['third_party$', 'builtin$', 'examples$'] +paths = [ + 'third_party$', + 'builtin$', + 'examples$' +] [formatters] [formatters.exclusions] diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_goheader.golden.toml b/pkg/commands/internal/migrate/testdata/linters-settings_goheader.golden.toml new file mode 100644 index 000000000000..a804c1d00564 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_goheader.golden.toml @@ -0,0 +1,32 @@ +version = '2' + +[linters] +[linters.settings] +[linters.settings.goheader] +template = """ +Put here copyright header template for source code files +For example: +Note: {{ YEAR }} is a builtin value that returns the year relative to the current machine time. + +{{ AUTHOR }} {{ COMPANY }} {{ YEAR }} +SPDX-License-Identifier: Apache-2.0 + +Licensed under the Apache License, Version 2.0 (the \"License\"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at: + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an \"AS IS\" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +""" +template-path = '/path/to/my/template.tmpl' + +[linters.settings.goheader.values] +[linters.settings.goheader.values.const] +COMPANY = 'MY COMPANY' + +[linters.settings.goheader.values.regexp] +AUTHOR = '.*@mycompany\.com' diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_goheader.toml b/pkg/commands/internal/migrate/testdata/linters-settings_goheader.toml new file mode 100644 index 000000000000..e9dd921a4ff9 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/linters-settings_goheader.toml @@ -0,0 +1,35 @@ +[issues] +exclude-generated = "strict" +exclude-dirs-use-default = false + +[linters-settings] + +[linters-settings.goheader] +template = """ +Put here copyright header template for source code files +For example: +Note: {{ YEAR }} is a builtin value that returns the year relative to the current machine time. + +{{ AUTHOR }} {{ COMPANY }} {{ YEAR }} +SPDX-License-Identifier: Apache-2.0 + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at: + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +""" +template-path = "/path/to/my/template.tmpl" + +[linters-settings.goheader.values] + +[linters-settings.goheader.values.const] +COMPANY = "MY COMPANY" + +[linters-settings.goheader.values.regexp] +AUTHOR = ".*@mycompany\\.com" diff --git a/pkg/commands/internal/migrate/versiontwo/base_rule.go b/pkg/commands/internal/migrate/versiontwo/base_rule.go index da52ae1242e5..469592dcc14d 100644 --- a/pkg/commands/internal/migrate/versiontwo/base_rule.go +++ b/pkg/commands/internal/migrate/versiontwo/base_rule.go @@ -3,11 +3,11 @@ package versiontwo type BaseRule struct { - Linters []string `yaml:"linters,omitempty" toml:"linters,omitempty"` - Path *string `yaml:"path,omitempty" toml:"path,omitempty"` - PathExcept *string `yaml:"path-except,omitempty" toml:"path-except,omitempty"` - Text *string `yaml:"text,omitempty" toml:"text,omitempty"` - Source *string `yaml:"source,omitempty" toml:"source,omitempty"` + Linters []string `yaml:"linters,omitempty" toml:"linters,multiline,omitempty"` + Path *string `yaml:"path,omitempty" toml:"path,multiline,omitempty"` + PathExcept *string `yaml:"path-except,omitempty" toml:"path-except,multiline,omitempty"` + Text *string `yaml:"text,omitempty" toml:"text,multiline,omitempty"` + Source *string `yaml:"source,omitempty" toml:"source,multiline,omitempty"` - InternalReference *string `yaml:"-,omitempty" toml:"-,omitempty"` + InternalReference *string `yaml:"-,omitempty" toml:"-,multiline,omitempty"` } diff --git a/pkg/commands/internal/migrate/versiontwo/config.go b/pkg/commands/internal/migrate/versiontwo/config.go index 302f089a45b0..341b47b6c79a 100644 --- a/pkg/commands/internal/migrate/versiontwo/config.go +++ b/pkg/commands/internal/migrate/versiontwo/config.go @@ -3,16 +3,16 @@ package versiontwo type Config struct { - Version *string `yaml:"version,omitempty" toml:"version,omitempty"` + Version *string `yaml:"version,omitempty" toml:"version,multiline,omitempty"` - Run Run `yaml:"run,omitempty" toml:"run,omitempty"` + Run Run `yaml:"run,omitempty" toml:"run,multiline,omitempty"` - Output Output `yaml:"output,omitempty" toml:"output,omitempty"` + Output Output `yaml:"output,omitempty" toml:"output,multiline,omitempty"` - Linters Linters `yaml:"linters,omitempty" toml:"linters,omitempty"` + Linters Linters `yaml:"linters,omitempty" toml:"linters,multiline,omitempty"` - Issues Issues `yaml:"issues,omitempty" toml:"issues,omitempty"` - Severity Severity `yaml:"severity,omitempty" toml:"severity,omitempty"` + Issues Issues `yaml:"issues,omitempty" toml:"issues,multiline,omitempty"` + Severity Severity `yaml:"severity,omitempty" toml:"severity,multiline,omitempty"` - Formatters Formatters `yaml:"formatters,omitempty" toml:"formatters,omitempty"` + Formatters Formatters `yaml:"formatters,omitempty" toml:"formatters,multiline,omitempty"` } diff --git a/pkg/commands/internal/migrate/versiontwo/formatters.go b/pkg/commands/internal/migrate/versiontwo/formatters.go index 4fcf34ebc858..bd1b6f931155 100644 --- a/pkg/commands/internal/migrate/versiontwo/formatters.go +++ b/pkg/commands/internal/migrate/versiontwo/formatters.go @@ -3,12 +3,12 @@ package versiontwo type Formatters struct { - Enable []string `yaml:"enable,omitempty" toml:"enable,omitempty"` - Settings FormatterSettings `yaml:"settings,omitempty" toml:"settings,omitempty"` - Exclusions FormatterExclusions `yaml:"exclusions,omitempty" toml:"exclusions,omitempty"` + Enable []string `yaml:"enable,omitempty" toml:"enable,multiline,omitempty"` + Settings FormatterSettings `yaml:"settings,omitempty" toml:"settings,multiline,omitempty"` + Exclusions FormatterExclusions `yaml:"exclusions,omitempty" toml:"exclusions,multiline,omitempty"` } type FormatterExclusions struct { - Generated *string `yaml:"generated,omitempty" toml:"generated,omitempty"` - Paths []string `yaml:"paths,omitempty" toml:"paths,omitempty"` + Generated *string `yaml:"generated,omitempty" toml:"generated,multiline,omitempty"` + Paths []string `yaml:"paths,omitempty" toml:"paths,multiline,omitempty"` } diff --git a/pkg/commands/internal/migrate/versiontwo/formatters_settings.go b/pkg/commands/internal/migrate/versiontwo/formatters_settings.go index d36952eae5cb..878b2c4171e0 100644 --- a/pkg/commands/internal/migrate/versiontwo/formatters_settings.go +++ b/pkg/commands/internal/migrate/versiontwo/formatters_settings.go @@ -3,46 +3,46 @@ package versiontwo type FormatterSettings struct { - Gci GciSettings `yaml:"gci,omitempty" toml:"gci,omitempty"` - GoFmt GoFmtSettings `yaml:"gofmt,omitempty" toml:"gofmt,omitempty"` - GoFumpt GoFumptSettings `yaml:"gofumpt,omitempty" toml:"gofumpt,omitempty"` - GoImports GoImportsSettings `yaml:"goimports,omitempty" toml:"goimports,omitempty"` - GoLines GoLinesSettings `yaml:"golines,omitempty" toml:"golines,omitempty"` + Gci GciSettings `yaml:"gci,omitempty" toml:"gci,multiline,omitempty"` + GoFmt GoFmtSettings `yaml:"gofmt,omitempty" toml:"gofmt,multiline,omitempty"` + GoFumpt GoFumptSettings `yaml:"gofumpt,omitempty" toml:"gofumpt,multiline,omitempty"` + GoImports GoImportsSettings `yaml:"goimports,omitempty" toml:"goimports,multiline,omitempty"` + GoLines GoLinesSettings `yaml:"golines,omitempty" toml:"golines,multiline,omitempty"` } type GciSettings struct { - Sections []string `yaml:"sections,omitempty" toml:"sections,omitempty"` - NoInlineComments *bool `yaml:"no-inline-comments,omitempty" toml:"no-inline-comments,omitempty"` - NoPrefixComments *bool `yaml:"no-prefix-comments,omitempty" toml:"no-prefix-comments,omitempty"` - CustomOrder *bool `yaml:"custom-order,omitempty" toml:"custom-order,omitempty"` - NoLexOrder *bool `yaml:"no-lex-order,omitempty" toml:"no-lex-order,omitempty"` + Sections []string `yaml:"sections,omitempty" toml:"sections,multiline,omitempty"` + NoInlineComments *bool `yaml:"no-inline-comments,omitempty" toml:"no-inline-comments,multiline,omitempty"` + NoPrefixComments *bool `yaml:"no-prefix-comments,omitempty" toml:"no-prefix-comments,multiline,omitempty"` + CustomOrder *bool `yaml:"custom-order,omitempty" toml:"custom-order,multiline,omitempty"` + NoLexOrder *bool `yaml:"no-lex-order,omitempty" toml:"no-lex-order,multiline,omitempty"` } type GoFmtSettings struct { - Simplify *bool `yaml:"simplify,omitempty" toml:"simplify,omitempty"` - RewriteRules []GoFmtRewriteRule `yaml:"rewrite-rules,omitempty" toml:"rewrite-rules,omitempty"` + Simplify *bool `yaml:"simplify,omitempty" toml:"simplify,multiline,omitempty"` + RewriteRules []GoFmtRewriteRule `yaml:"rewrite-rules,omitempty" toml:"rewrite-rules,multiline,omitempty"` } type GoFmtRewriteRule struct { - Pattern *string `yaml:"pattern,omitempty" toml:"pattern,omitempty"` - Replacement *string `yaml:"replacement,omitempty" toml:"replacement,omitempty"` + Pattern *string `yaml:"pattern,omitempty" toml:"pattern,multiline,omitempty"` + Replacement *string `yaml:"replacement,omitempty" toml:"replacement,multiline,omitempty"` } type GoFumptSettings struct { - ModulePath *string `yaml:"module-path,omitempty" toml:"module-path,omitempty"` - ExtraRules *bool `yaml:"extra-rules,omitempty" toml:"extra-rules,omitempty"` + ModulePath *string `yaml:"module-path,omitempty" toml:"module-path,multiline,omitempty"` + ExtraRules *bool `yaml:"extra-rules,omitempty" toml:"extra-rules,multiline,omitempty"` - LangVersion *string `yaml:"-,omitempty" toml:"-,omitempty"` + LangVersion *string `yaml:"-,omitempty" toml:"-,multiline,omitempty"` } type GoImportsSettings struct { - LocalPrefixes []string `yaml:"local-prefixes,omitempty" toml:"local-prefixes,omitempty"` + LocalPrefixes []string `yaml:"local-prefixes,omitempty" toml:"local-prefixes,multiline,omitempty"` } type GoLinesSettings struct { - MaxLen *int `yaml:"max-len,omitempty" toml:"max-len,omitempty"` - TabLen *int `yaml:"tab-len,omitempty" toml:"tab-len,omitempty"` - ShortenComments *bool `yaml:"shorten-comments,omitempty" toml:"shorten-comments,omitempty"` - ReformatTags *bool `yaml:"reformat-tags,omitempty" toml:"reformat-tags,omitempty"` - ChainSplitDots *bool `yaml:"chain-split-dots,omitempty" toml:"chain-split-dots,omitempty"` + MaxLen *int `yaml:"max-len,omitempty" toml:"max-len,multiline,omitempty"` + TabLen *int `yaml:"tab-len,omitempty" toml:"tab-len,multiline,omitempty"` + ShortenComments *bool `yaml:"shorten-comments,omitempty" toml:"shorten-comments,multiline,omitempty"` + ReformatTags *bool `yaml:"reformat-tags,omitempty" toml:"reformat-tags,multiline,omitempty"` + ChainSplitDots *bool `yaml:"chain-split-dots,omitempty" toml:"chain-split-dots,multiline,omitempty"` } diff --git a/pkg/commands/internal/migrate/versiontwo/issues.go b/pkg/commands/internal/migrate/versiontwo/issues.go index 31294a7a69dd..fa3b06ac5de8 100644 --- a/pkg/commands/internal/migrate/versiontwo/issues.go +++ b/pkg/commands/internal/migrate/versiontwo/issues.go @@ -3,15 +3,15 @@ package versiontwo type Issues struct { - MaxIssuesPerLinter *int `yaml:"max-issues-per-linter,omitempty" toml:"max-issues-per-linter,omitempty"` - MaxSameIssues *int `yaml:"max-same-issues,omitempty" toml:"max-same-issues,omitempty"` - UniqByLine *bool `yaml:"uniq-by-line,omitempty" toml:"uniq-by-line,omitempty"` + MaxIssuesPerLinter *int `yaml:"max-issues-per-linter,omitempty" toml:"max-issues-per-linter,multiline,omitempty"` + MaxSameIssues *int `yaml:"max-same-issues,omitempty" toml:"max-same-issues,multiline,omitempty"` + UniqByLine *bool `yaml:"uniq-by-line,omitempty" toml:"uniq-by-line,multiline,omitempty"` - DiffFromRevision *string `yaml:"new-from-rev,omitempty" toml:"new-from-rev,omitempty"` - DiffFromMergeBase *string `yaml:"new-from-merge-base,omitempty" toml:"new-from-merge-base,omitempty"` - DiffPatchFilePath *string `yaml:"new-from-patch,omitempty" toml:"new-from-patch,omitempty"` - WholeFiles *bool `yaml:"whole-files,omitempty" toml:"whole-files,omitempty"` - Diff *bool `yaml:"new,omitempty" toml:"new,omitempty"` + DiffFromRevision *string `yaml:"new-from-rev,omitempty" toml:"new-from-rev,multiline,omitempty"` + DiffFromMergeBase *string `yaml:"new-from-merge-base,omitempty" toml:"new-from-merge-base,multiline,omitempty"` + DiffPatchFilePath *string `yaml:"new-from-patch,omitempty" toml:"new-from-patch,multiline,omitempty"` + WholeFiles *bool `yaml:"whole-files,omitempty" toml:"whole-files,multiline,omitempty"` + Diff *bool `yaml:"new,omitempty" toml:"new,multiline,omitempty"` - NeedFix *bool `yaml:"fix,omitempty" toml:"fix,omitempty"` + NeedFix *bool `yaml:"fix,omitempty" toml:"fix,multiline,omitempty"` } diff --git a/pkg/commands/internal/migrate/versiontwo/linters.go b/pkg/commands/internal/migrate/versiontwo/linters.go index 545108524824..797313111d61 100644 --- a/pkg/commands/internal/migrate/versiontwo/linters.go +++ b/pkg/commands/internal/migrate/versiontwo/linters.go @@ -3,12 +3,12 @@ package versiontwo type Linters struct { - Default *string `yaml:"default,omitempty" toml:"default,omitempty"` - Enable []string `yaml:"enable,omitempty" toml:"enable,omitempty"` - Disable []string `yaml:"disable,omitempty" toml:"disable,omitempty"` - FastOnly *bool `yaml:"fast-only,omitempty" toml:"fast-only,omitempty"` + Default *string `yaml:"default,omitempty" toml:"default,multiline,omitempty"` + Enable []string `yaml:"enable,omitempty" toml:"enable,multiline,omitempty"` + Disable []string `yaml:"disable,omitempty" toml:"disable,multiline,omitempty"` + FastOnly *bool `yaml:"fast-only,omitempty" toml:"fast-only,multiline,omitempty"` - Settings LintersSettings `yaml:"settings,omitempty" toml:"settings,omitempty"` + Settings LintersSettings `yaml:"settings,omitempty" toml:"settings,multiline,omitempty"` - Exclusions LinterExclusions `yaml:"exclusions,omitempty" toml:"exclusions,omitempty"` + Exclusions LinterExclusions `yaml:"exclusions,omitempty" toml:"exclusions,multiline,omitempty"` } diff --git a/pkg/commands/internal/migrate/versiontwo/linters_exclusions.go b/pkg/commands/internal/migrate/versiontwo/linters_exclusions.go index 0715bc5254d4..d4ecb9720474 100644 --- a/pkg/commands/internal/migrate/versiontwo/linters_exclusions.go +++ b/pkg/commands/internal/migrate/versiontwo/linters_exclusions.go @@ -3,12 +3,12 @@ package versiontwo type LinterExclusions struct { - Generated *string `yaml:"generated,omitempty" toml:"generated,omitempty"` - WarnUnused *bool `yaml:"warn-unused,omitempty" toml:"warn-unused,omitempty"` - Presets []string `yaml:"presets,omitempty" toml:"presets,omitempty"` - Rules []ExcludeRule `yaml:"rules,omitempty" toml:"rules,omitempty"` - Paths []string `yaml:"paths,omitempty" toml:"paths,omitempty"` - PathsExcept []string `yaml:"paths-except,omitempty" toml:"paths-except,omitempty"` + Generated *string `yaml:"generated,omitempty" toml:"generated,multiline,omitempty"` + WarnUnused *bool `yaml:"warn-unused,omitempty" toml:"warn-unused,multiline,omitempty"` + Presets []string `yaml:"presets,omitempty" toml:"presets,multiline,omitempty"` + Rules []ExcludeRule `yaml:"rules,omitempty" toml:"rules,multiline,omitempty"` + Paths []string `yaml:"paths,omitempty" toml:"paths,multiline,omitempty"` + PathsExcept []string `yaml:"paths-except,omitempty" toml:"paths-except,multiline,omitempty"` } type ExcludeRule struct { diff --git a/pkg/commands/internal/migrate/versiontwo/linters_settings.go b/pkg/commands/internal/migrate/versiontwo/linters_settings.go index bb668e95611a..2fe5051699bb 100644 --- a/pkg/commands/internal/migrate/versiontwo/linters_settings.go +++ b/pkg/commands/internal/migrate/versiontwo/linters_settings.go @@ -3,765 +3,765 @@ package versiontwo type LintersSettings struct { - FormatterSettings `yaml:"-,omitempty" toml:"-,omitempty"` - - Asasalint AsasalintSettings `yaml:"asasalint,omitempty" toml:"asasalint,omitempty"` - BiDiChk BiDiChkSettings `yaml:"bidichk,omitempty" toml:"bidichk,omitempty"` - CopyLoopVar CopyLoopVarSettings `yaml:"copyloopvar,omitempty" toml:"copyloopvar,omitempty"` - Cyclop CyclopSettings `yaml:"cyclop,omitempty" toml:"cyclop,omitempty"` - Decorder DecorderSettings `yaml:"decorder,omitempty" toml:"decorder,omitempty"` - Depguard DepGuardSettings `yaml:"depguard,omitempty" toml:"depguard,omitempty"` - Dogsled DogsledSettings `yaml:"dogsled,omitempty" toml:"dogsled,omitempty"` - Dupl DuplSettings `yaml:"dupl,omitempty" toml:"dupl,omitempty"` - DupWord DupWordSettings `yaml:"dupword,omitempty" toml:"dupword,omitempty"` - Errcheck ErrcheckSettings `yaml:"errcheck,omitempty" toml:"errcheck,omitempty"` - ErrChkJSON ErrChkJSONSettings `yaml:"errchkjson,omitempty" toml:"errchkjson,omitempty"` - ErrorLint ErrorLintSettings `yaml:"errorlint,omitempty" toml:"errorlint,omitempty"` - Exhaustive ExhaustiveSettings `yaml:"exhaustive,omitempty" toml:"exhaustive,omitempty"` - Exhaustruct ExhaustructSettings `yaml:"exhaustruct,omitempty" toml:"exhaustruct,omitempty"` - Fatcontext FatcontextSettings `yaml:"fatcontext,omitempty" toml:"fatcontext,omitempty"` - Forbidigo ForbidigoSettings `yaml:"forbidigo,omitempty" toml:"forbidigo,omitempty"` - Funlen FunlenSettings `yaml:"funlen,omitempty" toml:"funlen,omitempty"` - GinkgoLinter GinkgoLinterSettings `yaml:"ginkgolinter,omitempty" toml:"ginkgolinter,omitempty"` - Gocognit GocognitSettings `yaml:"gocognit,omitempty" toml:"gocognit,omitempty"` - GoChecksumType GoChecksumTypeSettings `yaml:"gochecksumtype,omitempty" toml:"gochecksumtype,omitempty"` - Goconst GoConstSettings `yaml:"goconst,omitempty" toml:"goconst,omitempty"` - Gocritic GoCriticSettings `yaml:"gocritic,omitempty" toml:"gocritic,omitempty"` - Gocyclo GoCycloSettings `yaml:"gocyclo,omitempty" toml:"gocyclo,omitempty"` - Godot GodotSettings `yaml:"godot,omitempty" toml:"godot,omitempty"` - Godox GodoxSettings `yaml:"godox,omitempty" toml:"godox,omitempty"` - Goheader GoHeaderSettings `yaml:"goheader,omitempty" toml:"goheader,omitempty"` - GoModDirectives GoModDirectivesSettings `yaml:"gomoddirectives,omitempty" toml:"gomoddirectives,omitempty"` - Gomodguard GoModGuardSettings `yaml:"gomodguard,omitempty" toml:"gomodguard,omitempty"` - Gosec GoSecSettings `yaml:"gosec,omitempty" toml:"gosec,omitempty"` - Gosmopolitan GosmopolitanSettings `yaml:"gosmopolitan,omitempty" toml:"gosmopolitan,omitempty"` - Govet GovetSettings `yaml:"govet,omitempty" toml:"govet,omitempty"` - Grouper GrouperSettings `yaml:"grouper,omitempty" toml:"grouper,omitempty"` - Iface IfaceSettings `yaml:"iface,omitempty" toml:"iface,omitempty"` - ImportAs ImportAsSettings `yaml:"importas,omitempty" toml:"importas,omitempty"` - Inamedparam INamedParamSettings `yaml:"inamedparam,omitempty" toml:"inamedparam,omitempty"` - InterfaceBloat InterfaceBloatSettings `yaml:"interfacebloat,omitempty" toml:"interfacebloat,omitempty"` - Ireturn IreturnSettings `yaml:"ireturn,omitempty" toml:"ireturn,omitempty"` - Lll LllSettings `yaml:"lll,omitempty" toml:"lll,omitempty"` - LoggerCheck LoggerCheckSettings `yaml:"loggercheck,omitempty" toml:"loggercheck,omitempty"` - MaintIdx MaintIdxSettings `yaml:"maintidx,omitempty" toml:"maintidx,omitempty"` - Makezero MakezeroSettings `yaml:"makezero,omitempty" toml:"makezero,omitempty"` - Misspell MisspellSettings `yaml:"misspell,omitempty" toml:"misspell,omitempty"` - Mnd MndSettings `yaml:"mnd,omitempty" toml:"mnd,omitempty"` - MustTag MustTagSettings `yaml:"musttag,omitempty" toml:"musttag,omitempty"` - Nakedret NakedretSettings `yaml:"nakedret,omitempty" toml:"nakedret,omitempty"` - Nestif NestifSettings `yaml:"nestif,omitempty" toml:"nestif,omitempty"` - NilNil NilNilSettings `yaml:"nilnil,omitempty" toml:"nilnil,omitempty"` - Nlreturn NlreturnSettings `yaml:"nlreturn,omitempty" toml:"nlreturn,omitempty"` - NoLintLint NoLintLintSettings `yaml:"nolintlint,omitempty" toml:"nolintlint,omitempty"` - NoNamedReturns NoNamedReturnsSettings `yaml:"nonamedreturns,omitempty" toml:"nonamedreturns,omitempty"` - ParallelTest ParallelTestSettings `yaml:"paralleltest,omitempty" toml:"paralleltest,omitempty"` - PerfSprint PerfSprintSettings `yaml:"perfsprint,omitempty" toml:"perfsprint,omitempty"` - Prealloc PreallocSettings `yaml:"prealloc,omitempty" toml:"prealloc,omitempty"` - Predeclared PredeclaredSettings `yaml:"predeclared,omitempty" toml:"predeclared,omitempty"` - Promlinter PromlinterSettings `yaml:"promlinter,omitempty" toml:"promlinter,omitempty"` - ProtoGetter ProtoGetterSettings `yaml:"protogetter,omitempty" toml:"protogetter,omitempty"` - Reassign ReassignSettings `yaml:"reassign,omitempty" toml:"reassign,omitempty"` - Recvcheck RecvcheckSettings `yaml:"recvcheck,omitempty" toml:"recvcheck,omitempty"` - Revive ReviveSettings `yaml:"revive,omitempty" toml:"revive,omitempty"` - RowsErrCheck RowsErrCheckSettings `yaml:"rowserrcheck,omitempty" toml:"rowserrcheck,omitempty"` - SlogLint SlogLintSettings `yaml:"sloglint,omitempty" toml:"sloglint,omitempty"` - Spancheck SpancheckSettings `yaml:"spancheck,omitempty" toml:"spancheck,omitempty"` - Staticcheck StaticCheckSettings `yaml:"staticcheck,omitempty" toml:"staticcheck,omitempty"` - TagAlign TagAlignSettings `yaml:"tagalign,omitempty" toml:"tagalign,omitempty"` - Tagliatelle TagliatelleSettings `yaml:"tagliatelle,omitempty" toml:"tagliatelle,omitempty"` - Testifylint TestifylintSettings `yaml:"testifylint,omitempty" toml:"testifylint,omitempty"` - Testpackage TestpackageSettings `yaml:"testpackage,omitempty" toml:"testpackage,omitempty"` - Thelper ThelperSettings `yaml:"thelper,omitempty" toml:"thelper,omitempty"` - Unconvert UnconvertSettings `yaml:"unconvert,omitempty" toml:"unconvert,omitempty"` - Unparam UnparamSettings `yaml:"unparam,omitempty" toml:"unparam,omitempty"` - Unused UnusedSettings `yaml:"unused,omitempty" toml:"unused,omitempty"` - UseStdlibVars UseStdlibVarsSettings `yaml:"usestdlibvars,omitempty" toml:"usestdlibvars,omitempty"` - UseTesting UseTestingSettings `yaml:"usetesting,omitempty" toml:"usetesting,omitempty"` - Varnamelen VarnamelenSettings `yaml:"varnamelen,omitempty" toml:"varnamelen,omitempty"` - Whitespace WhitespaceSettings `yaml:"whitespace,omitempty" toml:"whitespace,omitempty"` - Wrapcheck WrapcheckSettings `yaml:"wrapcheck,omitempty" toml:"wrapcheck,omitempty"` - WSL WSLSettings `yaml:"wsl,omitempty" toml:"wsl,omitempty"` - - Custom map[string]CustomLinterSettings `yaml:"custom,omitempty" toml:"custom,omitempty"` + FormatterSettings `yaml:"-,omitempty" toml:"-,multiline,omitempty"` + + Asasalint AsasalintSettings `yaml:"asasalint,omitempty" toml:"asasalint,multiline,omitempty"` + BiDiChk BiDiChkSettings `yaml:"bidichk,omitempty" toml:"bidichk,multiline,omitempty"` + CopyLoopVar CopyLoopVarSettings `yaml:"copyloopvar,omitempty" toml:"copyloopvar,multiline,omitempty"` + Cyclop CyclopSettings `yaml:"cyclop,omitempty" toml:"cyclop,multiline,omitempty"` + Decorder DecorderSettings `yaml:"decorder,omitempty" toml:"decorder,multiline,omitempty"` + Depguard DepGuardSettings `yaml:"depguard,omitempty" toml:"depguard,multiline,omitempty"` + Dogsled DogsledSettings `yaml:"dogsled,omitempty" toml:"dogsled,multiline,omitempty"` + Dupl DuplSettings `yaml:"dupl,omitempty" toml:"dupl,multiline,omitempty"` + DupWord DupWordSettings `yaml:"dupword,omitempty" toml:"dupword,multiline,omitempty"` + Errcheck ErrcheckSettings `yaml:"errcheck,omitempty" toml:"errcheck,multiline,omitempty"` + ErrChkJSON ErrChkJSONSettings `yaml:"errchkjson,omitempty" toml:"errchkjson,multiline,omitempty"` + ErrorLint ErrorLintSettings `yaml:"errorlint,omitempty" toml:"errorlint,multiline,omitempty"` + Exhaustive ExhaustiveSettings `yaml:"exhaustive,omitempty" toml:"exhaustive,multiline,omitempty"` + Exhaustruct ExhaustructSettings `yaml:"exhaustruct,omitempty" toml:"exhaustruct,multiline,omitempty"` + Fatcontext FatcontextSettings `yaml:"fatcontext,omitempty" toml:"fatcontext,multiline,omitempty"` + Forbidigo ForbidigoSettings `yaml:"forbidigo,omitempty" toml:"forbidigo,multiline,omitempty"` + Funlen FunlenSettings `yaml:"funlen,omitempty" toml:"funlen,multiline,omitempty"` + GinkgoLinter GinkgoLinterSettings `yaml:"ginkgolinter,omitempty" toml:"ginkgolinter,multiline,omitempty"` + Gocognit GocognitSettings `yaml:"gocognit,omitempty" toml:"gocognit,multiline,omitempty"` + GoChecksumType GoChecksumTypeSettings `yaml:"gochecksumtype,omitempty" toml:"gochecksumtype,multiline,omitempty"` + Goconst GoConstSettings `yaml:"goconst,omitempty" toml:"goconst,multiline,omitempty"` + Gocritic GoCriticSettings `yaml:"gocritic,omitempty" toml:"gocritic,multiline,omitempty"` + Gocyclo GoCycloSettings `yaml:"gocyclo,omitempty" toml:"gocyclo,multiline,omitempty"` + Godot GodotSettings `yaml:"godot,omitempty" toml:"godot,multiline,omitempty"` + Godox GodoxSettings `yaml:"godox,omitempty" toml:"godox,multiline,omitempty"` + Goheader GoHeaderSettings `yaml:"goheader,omitempty" toml:"goheader,multiline,omitempty"` + GoModDirectives GoModDirectivesSettings `yaml:"gomoddirectives,omitempty" toml:"gomoddirectives,multiline,omitempty"` + Gomodguard GoModGuardSettings `yaml:"gomodguard,omitempty" toml:"gomodguard,multiline,omitempty"` + Gosec GoSecSettings `yaml:"gosec,omitempty" toml:"gosec,multiline,omitempty"` + Gosmopolitan GosmopolitanSettings `yaml:"gosmopolitan,omitempty" toml:"gosmopolitan,multiline,omitempty"` + Govet GovetSettings `yaml:"govet,omitempty" toml:"govet,multiline,omitempty"` + Grouper GrouperSettings `yaml:"grouper,omitempty" toml:"grouper,multiline,omitempty"` + Iface IfaceSettings `yaml:"iface,omitempty" toml:"iface,multiline,omitempty"` + ImportAs ImportAsSettings `yaml:"importas,omitempty" toml:"importas,multiline,omitempty"` + Inamedparam INamedParamSettings `yaml:"inamedparam,omitempty" toml:"inamedparam,multiline,omitempty"` + InterfaceBloat InterfaceBloatSettings `yaml:"interfacebloat,omitempty" toml:"interfacebloat,multiline,omitempty"` + Ireturn IreturnSettings `yaml:"ireturn,omitempty" toml:"ireturn,multiline,omitempty"` + Lll LllSettings `yaml:"lll,omitempty" toml:"lll,multiline,omitempty"` + LoggerCheck LoggerCheckSettings `yaml:"loggercheck,omitempty" toml:"loggercheck,multiline,omitempty"` + MaintIdx MaintIdxSettings `yaml:"maintidx,omitempty" toml:"maintidx,multiline,omitempty"` + Makezero MakezeroSettings `yaml:"makezero,omitempty" toml:"makezero,multiline,omitempty"` + Misspell MisspellSettings `yaml:"misspell,omitempty" toml:"misspell,multiline,omitempty"` + Mnd MndSettings `yaml:"mnd,omitempty" toml:"mnd,multiline,omitempty"` + MustTag MustTagSettings `yaml:"musttag,omitempty" toml:"musttag,multiline,omitempty"` + Nakedret NakedretSettings `yaml:"nakedret,omitempty" toml:"nakedret,multiline,omitempty"` + Nestif NestifSettings `yaml:"nestif,omitempty" toml:"nestif,multiline,omitempty"` + NilNil NilNilSettings `yaml:"nilnil,omitempty" toml:"nilnil,multiline,omitempty"` + Nlreturn NlreturnSettings `yaml:"nlreturn,omitempty" toml:"nlreturn,multiline,omitempty"` + NoLintLint NoLintLintSettings `yaml:"nolintlint,omitempty" toml:"nolintlint,multiline,omitempty"` + NoNamedReturns NoNamedReturnsSettings `yaml:"nonamedreturns,omitempty" toml:"nonamedreturns,multiline,omitempty"` + ParallelTest ParallelTestSettings `yaml:"paralleltest,omitempty" toml:"paralleltest,multiline,omitempty"` + PerfSprint PerfSprintSettings `yaml:"perfsprint,omitempty" toml:"perfsprint,multiline,omitempty"` + Prealloc PreallocSettings `yaml:"prealloc,omitempty" toml:"prealloc,multiline,omitempty"` + Predeclared PredeclaredSettings `yaml:"predeclared,omitempty" toml:"predeclared,multiline,omitempty"` + Promlinter PromlinterSettings `yaml:"promlinter,omitempty" toml:"promlinter,multiline,omitempty"` + ProtoGetter ProtoGetterSettings `yaml:"protogetter,omitempty" toml:"protogetter,multiline,omitempty"` + Reassign ReassignSettings `yaml:"reassign,omitempty" toml:"reassign,multiline,omitempty"` + Recvcheck RecvcheckSettings `yaml:"recvcheck,omitempty" toml:"recvcheck,multiline,omitempty"` + Revive ReviveSettings `yaml:"revive,omitempty" toml:"revive,multiline,omitempty"` + RowsErrCheck RowsErrCheckSettings `yaml:"rowserrcheck,omitempty" toml:"rowserrcheck,multiline,omitempty"` + SlogLint SlogLintSettings `yaml:"sloglint,omitempty" toml:"sloglint,multiline,omitempty"` + Spancheck SpancheckSettings `yaml:"spancheck,omitempty" toml:"spancheck,multiline,omitempty"` + Staticcheck StaticCheckSettings `yaml:"staticcheck,omitempty" toml:"staticcheck,multiline,omitempty"` + TagAlign TagAlignSettings `yaml:"tagalign,omitempty" toml:"tagalign,multiline,omitempty"` + Tagliatelle TagliatelleSettings `yaml:"tagliatelle,omitempty" toml:"tagliatelle,multiline,omitempty"` + Testifylint TestifylintSettings `yaml:"testifylint,omitempty" toml:"testifylint,multiline,omitempty"` + Testpackage TestpackageSettings `yaml:"testpackage,omitempty" toml:"testpackage,multiline,omitempty"` + Thelper ThelperSettings `yaml:"thelper,omitempty" toml:"thelper,multiline,omitempty"` + Unconvert UnconvertSettings `yaml:"unconvert,omitempty" toml:"unconvert,multiline,omitempty"` + Unparam UnparamSettings `yaml:"unparam,omitempty" toml:"unparam,multiline,omitempty"` + Unused UnusedSettings `yaml:"unused,omitempty" toml:"unused,multiline,omitempty"` + UseStdlibVars UseStdlibVarsSettings `yaml:"usestdlibvars,omitempty" toml:"usestdlibvars,multiline,omitempty"` + UseTesting UseTestingSettings `yaml:"usetesting,omitempty" toml:"usetesting,multiline,omitempty"` + Varnamelen VarnamelenSettings `yaml:"varnamelen,omitempty" toml:"varnamelen,multiline,omitempty"` + Whitespace WhitespaceSettings `yaml:"whitespace,omitempty" toml:"whitespace,multiline,omitempty"` + Wrapcheck WrapcheckSettings `yaml:"wrapcheck,omitempty" toml:"wrapcheck,multiline,omitempty"` + WSL WSLSettings `yaml:"wsl,omitempty" toml:"wsl,multiline,omitempty"` + + Custom map[string]CustomLinterSettings `yaml:"custom,omitempty" toml:"custom,multiline,omitempty"` } type AsasalintSettings struct { - Exclude []string `yaml:"exclude,omitempty" toml:"exclude,omitempty"` - UseBuiltinExclusions *bool `yaml:"use-builtin-exclusions,omitempty" toml:"use-builtin-exclusions,omitempty"` + Exclude []string `yaml:"exclude,omitempty" toml:"exclude,multiline,omitempty"` + UseBuiltinExclusions *bool `yaml:"use-builtin-exclusions,omitempty" toml:"use-builtin-exclusions,multiline,omitempty"` } type BiDiChkSettings struct { - LeftToRightEmbedding *bool `yaml:"left-to-right-embedding,omitempty" toml:"left-to-right-embedding,omitempty"` - RightToLeftEmbedding *bool `yaml:"right-to-left-embedding,omitempty" toml:"right-to-left-embedding,omitempty"` - PopDirectionalFormatting *bool `yaml:"pop-directional-formatting,omitempty" toml:"pop-directional-formatting,omitempty"` - LeftToRightOverride *bool `yaml:"left-to-right-override,omitempty" toml:"left-to-right-override,omitempty"` - RightToLeftOverride *bool `yaml:"right-to-left-override,omitempty" toml:"right-to-left-override,omitempty"` - LeftToRightIsolate *bool `yaml:"left-to-right-isolate,omitempty" toml:"left-to-right-isolate,omitempty"` - RightToLeftIsolate *bool `yaml:"right-to-left-isolate,omitempty" toml:"right-to-left-isolate,omitempty"` - FirstStrongIsolate *bool `yaml:"first-strong-isolate,omitempty" toml:"first-strong-isolate,omitempty"` - PopDirectionalIsolate *bool `yaml:"pop-directional-isolate,omitempty" toml:"pop-directional-isolate,omitempty"` + LeftToRightEmbedding *bool `yaml:"left-to-right-embedding,omitempty" toml:"left-to-right-embedding,multiline,omitempty"` + RightToLeftEmbedding *bool `yaml:"right-to-left-embedding,omitempty" toml:"right-to-left-embedding,multiline,omitempty"` + PopDirectionalFormatting *bool `yaml:"pop-directional-formatting,omitempty" toml:"pop-directional-formatting,multiline,omitempty"` + LeftToRightOverride *bool `yaml:"left-to-right-override,omitempty" toml:"left-to-right-override,multiline,omitempty"` + RightToLeftOverride *bool `yaml:"right-to-left-override,omitempty" toml:"right-to-left-override,multiline,omitempty"` + LeftToRightIsolate *bool `yaml:"left-to-right-isolate,omitempty" toml:"left-to-right-isolate,multiline,omitempty"` + RightToLeftIsolate *bool `yaml:"right-to-left-isolate,omitempty" toml:"right-to-left-isolate,multiline,omitempty"` + FirstStrongIsolate *bool `yaml:"first-strong-isolate,omitempty" toml:"first-strong-isolate,multiline,omitempty"` + PopDirectionalIsolate *bool `yaml:"pop-directional-isolate,omitempty" toml:"pop-directional-isolate,multiline,omitempty"` } type CopyLoopVarSettings struct { - CheckAlias *bool `yaml:"check-alias,omitempty" toml:"check-alias,omitempty"` + CheckAlias *bool `yaml:"check-alias,omitempty" toml:"check-alias,multiline,omitempty"` } type CyclopSettings struct { - MaxComplexity *int `yaml:"max-complexity,omitempty" toml:"max-complexity,omitempty"` - PackageAverage *float64 `yaml:"package-average,omitempty" toml:"package-average,omitempty"` + MaxComplexity *int `yaml:"max-complexity,omitempty" toml:"max-complexity,multiline,omitempty"` + PackageAverage *float64 `yaml:"package-average,omitempty" toml:"package-average,multiline,omitempty"` } type DepGuardSettings struct { - Rules map[string]*DepGuardList `yaml:"rules,omitempty" toml:"rules,omitempty"` + Rules map[string]*DepGuardList `yaml:"rules,omitempty" toml:"rules,multiline,omitempty"` } type DepGuardList struct { - ListMode *string `yaml:"list-mode,omitempty" toml:"list-mode,omitempty"` - Files []string `yaml:"files,omitempty" toml:"files,omitempty"` - Allow []string `yaml:"allow,omitempty" toml:"allow,omitempty"` - Deny []DepGuardDeny `yaml:"deny,omitempty" toml:"deny,omitempty"` + ListMode *string `yaml:"list-mode,omitempty" toml:"list-mode,multiline,omitempty"` + Files []string `yaml:"files,omitempty" toml:"files,multiline,omitempty"` + Allow []string `yaml:"allow,omitempty" toml:"allow,multiline,omitempty"` + Deny []DepGuardDeny `yaml:"deny,omitempty" toml:"deny,multiline,omitempty"` } type DepGuardDeny struct { - Pkg *string `yaml:"pkg,omitempty" toml:"pkg,omitempty"` - Desc *string `yaml:"desc,omitempty" toml:"desc,omitempty"` + Pkg *string `yaml:"pkg,omitempty" toml:"pkg,multiline,omitempty"` + Desc *string `yaml:"desc,omitempty" toml:"desc,multiline,omitempty"` } type DecorderSettings struct { - DecOrder []string `yaml:"dec-order,omitempty" toml:"dec-order,omitempty"` - IgnoreUnderscoreVars *bool `yaml:"ignore-underscore-vars,omitempty" toml:"ignore-underscore-vars,omitempty"` - DisableDecNumCheck *bool `yaml:"disable-dec-num-check,omitempty" toml:"disable-dec-num-check,omitempty"` - DisableTypeDecNumCheck *bool `yaml:"disable-type-dec-num-check,omitempty" toml:"disable-type-dec-num-check,omitempty"` - DisableConstDecNumCheck *bool `yaml:"disable-const-dec-num-check,omitempty" toml:"disable-const-dec-num-check,omitempty"` - DisableVarDecNumCheck *bool `yaml:"disable-var-dec-num-check,omitempty" toml:"disable-var-dec-num-check,omitempty"` - DisableDecOrderCheck *bool `yaml:"disable-dec-order-check,omitempty" toml:"disable-dec-order-check,omitempty"` - DisableInitFuncFirstCheck *bool `yaml:"disable-init-func-first-check,omitempty" toml:"disable-init-func-first-check,omitempty"` + DecOrder []string `yaml:"dec-order,omitempty" toml:"dec-order,multiline,omitempty"` + IgnoreUnderscoreVars *bool `yaml:"ignore-underscore-vars,omitempty" toml:"ignore-underscore-vars,multiline,omitempty"` + DisableDecNumCheck *bool `yaml:"disable-dec-num-check,omitempty" toml:"disable-dec-num-check,multiline,omitempty"` + DisableTypeDecNumCheck *bool `yaml:"disable-type-dec-num-check,omitempty" toml:"disable-type-dec-num-check,multiline,omitempty"` + DisableConstDecNumCheck *bool `yaml:"disable-const-dec-num-check,omitempty" toml:"disable-const-dec-num-check,multiline,omitempty"` + DisableVarDecNumCheck *bool `yaml:"disable-var-dec-num-check,omitempty" toml:"disable-var-dec-num-check,multiline,omitempty"` + DisableDecOrderCheck *bool `yaml:"disable-dec-order-check,omitempty" toml:"disable-dec-order-check,multiline,omitempty"` + DisableInitFuncFirstCheck *bool `yaml:"disable-init-func-first-check,omitempty" toml:"disable-init-func-first-check,multiline,omitempty"` } type DogsledSettings struct { - MaxBlankIdentifiers *int `yaml:"max-blank-identifiers,omitempty" toml:"max-blank-identifiers,omitempty"` + MaxBlankIdentifiers *int `yaml:"max-blank-identifiers,omitempty" toml:"max-blank-identifiers,multiline,omitempty"` } type DuplSettings struct { - Threshold *int `yaml:"threshold,omitempty" toml:"threshold,omitempty"` + Threshold *int `yaml:"threshold,omitempty" toml:"threshold,multiline,omitempty"` } type DupWordSettings struct { - Keywords []string `yaml:"keywords,omitempty" toml:"keywords,omitempty"` - Ignore []string `yaml:"ignore,omitempty" toml:"ignore,omitempty"` + Keywords []string `yaml:"keywords,omitempty" toml:"keywords,multiline,omitempty"` + Ignore []string `yaml:"ignore,omitempty" toml:"ignore,multiline,omitempty"` } type ErrcheckSettings struct { - DisableDefaultExclusions *bool `yaml:"disable-default-exclusions,omitempty" toml:"disable-default-exclusions,omitempty"` - CheckTypeAssertions *bool `yaml:"check-type-assertions,omitempty" toml:"check-type-assertions,omitempty"` - CheckAssignToBlank *bool `yaml:"check-blank,omitempty" toml:"check-blank,omitempty"` - ExcludeFunctions []string `yaml:"exclude-functions,omitempty" toml:"exclude-functions,omitempty"` + DisableDefaultExclusions *bool `yaml:"disable-default-exclusions,omitempty" toml:"disable-default-exclusions,multiline,omitempty"` + CheckTypeAssertions *bool `yaml:"check-type-assertions,omitempty" toml:"check-type-assertions,multiline,omitempty"` + CheckAssignToBlank *bool `yaml:"check-blank,omitempty" toml:"check-blank,multiline,omitempty"` + ExcludeFunctions []string `yaml:"exclude-functions,omitempty" toml:"exclude-functions,multiline,omitempty"` } type ErrChkJSONSettings struct { - CheckErrorFreeEncoding *bool `yaml:"check-error-free-encoding,omitempty" toml:"check-error-free-encoding,omitempty"` - ReportNoExported *bool `yaml:"report-no-exported,omitempty" toml:"report-no-exported,omitempty"` + CheckErrorFreeEncoding *bool `yaml:"check-error-free-encoding,omitempty" toml:"check-error-free-encoding,multiline,omitempty"` + ReportNoExported *bool `yaml:"report-no-exported,omitempty" toml:"report-no-exported,multiline,omitempty"` } type ErrorLintSettings struct { - Errorf *bool `yaml:"errorf,omitempty" toml:"errorf,omitempty"` - ErrorfMulti *bool `yaml:"errorf-multi,omitempty" toml:"errorf-multi,omitempty"` - Asserts *bool `yaml:"asserts,omitempty" toml:"asserts,omitempty"` - Comparison *bool `yaml:"comparison,omitempty" toml:"comparison,omitempty"` - AllowedErrors []ErrorLintAllowPair `yaml:"allowed-errors,omitempty" toml:"allowed-errors,omitempty"` - AllowedErrorsWildcard []ErrorLintAllowPair `yaml:"allowed-errors-wildcard,omitempty" toml:"allowed-errors-wildcard,omitempty"` + Errorf *bool `yaml:"errorf,omitempty" toml:"errorf,multiline,omitempty"` + ErrorfMulti *bool `yaml:"errorf-multi,omitempty" toml:"errorf-multi,multiline,omitempty"` + Asserts *bool `yaml:"asserts,omitempty" toml:"asserts,multiline,omitempty"` + Comparison *bool `yaml:"comparison,omitempty" toml:"comparison,multiline,omitempty"` + AllowedErrors []ErrorLintAllowPair `yaml:"allowed-errors,omitempty" toml:"allowed-errors,multiline,omitempty"` + AllowedErrorsWildcard []ErrorLintAllowPair `yaml:"allowed-errors-wildcard,omitempty" toml:"allowed-errors-wildcard,multiline,omitempty"` } type ErrorLintAllowPair struct { - Err *string `yaml:"err,omitempty" toml:"err,omitempty"` - Fun *string `yaml:"fun,omitempty" toml:"fun,omitempty"` + Err *string `yaml:"err,omitempty" toml:"err,multiline,omitempty"` + Fun *string `yaml:"fun,omitempty" toml:"fun,multiline,omitempty"` } type ExhaustiveSettings struct { - Check []string `yaml:"check,omitempty" toml:"check,omitempty"` - DefaultSignifiesExhaustive *bool `yaml:"default-signifies-exhaustive,omitempty" toml:"default-signifies-exhaustive,omitempty"` - IgnoreEnumMembers *string `yaml:"ignore-enum-members,omitempty" toml:"ignore-enum-members,omitempty"` - IgnoreEnumTypes *string `yaml:"ignore-enum-types,omitempty" toml:"ignore-enum-types,omitempty"` - PackageScopeOnly *bool `yaml:"package-scope-only,omitempty" toml:"package-scope-only,omitempty"` - ExplicitExhaustiveMap *bool `yaml:"explicit-exhaustive-map,omitempty" toml:"explicit-exhaustive-map,omitempty"` - ExplicitExhaustiveSwitch *bool `yaml:"explicit-exhaustive-switch,omitempty" toml:"explicit-exhaustive-switch,omitempty"` - DefaultCaseRequired *bool `yaml:"default-case-required,omitempty" toml:"default-case-required,omitempty"` + Check []string `yaml:"check,omitempty" toml:"check,multiline,omitempty"` + DefaultSignifiesExhaustive *bool `yaml:"default-signifies-exhaustive,omitempty" toml:"default-signifies-exhaustive,multiline,omitempty"` + IgnoreEnumMembers *string `yaml:"ignore-enum-members,omitempty" toml:"ignore-enum-members,multiline,omitempty"` + IgnoreEnumTypes *string `yaml:"ignore-enum-types,omitempty" toml:"ignore-enum-types,multiline,omitempty"` + PackageScopeOnly *bool `yaml:"package-scope-only,omitempty" toml:"package-scope-only,multiline,omitempty"` + ExplicitExhaustiveMap *bool `yaml:"explicit-exhaustive-map,omitempty" toml:"explicit-exhaustive-map,multiline,omitempty"` + ExplicitExhaustiveSwitch *bool `yaml:"explicit-exhaustive-switch,omitempty" toml:"explicit-exhaustive-switch,multiline,omitempty"` + DefaultCaseRequired *bool `yaml:"default-case-required,omitempty" toml:"default-case-required,multiline,omitempty"` } type ExhaustructSettings struct { - Include []string `yaml:"include,omitempty" toml:"include,omitempty"` - Exclude []string `yaml:"exclude,omitempty" toml:"exclude,omitempty"` + Include []string `yaml:"include,omitempty" toml:"include,multiline,omitempty"` + Exclude []string `yaml:"exclude,omitempty" toml:"exclude,multiline,omitempty"` } type FatcontextSettings struct { - CheckStructPointers *bool `yaml:"check-struct-pointers,omitempty" toml:"check-struct-pointers,omitempty"` + CheckStructPointers *bool `yaml:"check-struct-pointers,omitempty" toml:"check-struct-pointers,multiline,omitempty"` } type ForbidigoSettings struct { - Forbid []ForbidigoPattern `yaml:"forbid,omitempty" toml:"forbid,omitempty"` - ExcludeGodocExamples *bool `yaml:"exclude-godoc-examples,omitempty" toml:"exclude-godoc-examples,omitempty"` - AnalyzeTypes *bool `yaml:"analyze-types,omitempty" toml:"analyze-types,omitempty"` + Forbid []ForbidigoPattern `yaml:"forbid,omitempty" toml:"forbid,multiline,omitempty"` + ExcludeGodocExamples *bool `yaml:"exclude-godoc-examples,omitempty" toml:"exclude-godoc-examples,multiline,omitempty"` + AnalyzeTypes *bool `yaml:"analyze-types,omitempty" toml:"analyze-types,multiline,omitempty"` } type ForbidigoPattern struct { - Pattern *string `yaml:"pattern,omitempty" toml:"pattern,omitempty"` - Package *string `yaml:"pkg,omitempty,omitempty" toml:"pkg,omitempty,omitempty"` - Msg *string `yaml:"msg,omitempty,omitempty" toml:"msg,omitempty,omitempty"` + Pattern *string `yaml:"pattern,omitempty" toml:"pattern,multiline,omitempty"` + Package *string `yaml:"pkg,omitempty,omitempty" toml:"pkg,omitempty,multiline,omitempty"` + Msg *string `yaml:"msg,omitempty,omitempty" toml:"msg,omitempty,multiline,omitempty"` } type FunlenSettings struct { - Lines *int `yaml:"lines,omitempty" toml:"lines,omitempty"` - Statements *int `yaml:"statements,omitempty" toml:"statements,omitempty"` - IgnoreComments *bool `yaml:"ignore-comments,omitempty" toml:"ignore-comments,omitempty"` + Lines *int `yaml:"lines,omitempty" toml:"lines,multiline,omitempty"` + Statements *int `yaml:"statements,omitempty" toml:"statements,multiline,omitempty"` + IgnoreComments *bool `yaml:"ignore-comments,omitempty" toml:"ignore-comments,multiline,omitempty"` } type GinkgoLinterSettings struct { - SuppressLenAssertion *bool `yaml:"suppress-len-assertion,omitempty" toml:"suppress-len-assertion,omitempty"` - SuppressNilAssertion *bool `yaml:"suppress-nil-assertion,omitempty" toml:"suppress-nil-assertion,omitempty"` - SuppressErrAssertion *bool `yaml:"suppress-err-assertion,omitempty" toml:"suppress-err-assertion,omitempty"` - SuppressCompareAssertion *bool `yaml:"suppress-compare-assertion,omitempty" toml:"suppress-compare-assertion,omitempty"` - SuppressAsyncAssertion *bool `yaml:"suppress-async-assertion,omitempty" toml:"suppress-async-assertion,omitempty"` - SuppressTypeCompareWarning *bool `yaml:"suppress-type-compare-assertion,omitempty" toml:"suppress-type-compare-assertion,omitempty"` - ForbidFocusContainer *bool `yaml:"forbid-focus-container,omitempty" toml:"forbid-focus-container,omitempty"` - AllowHaveLenZero *bool `yaml:"allow-havelen-zero,omitempty" toml:"allow-havelen-zero,omitempty"` - ForceExpectTo *bool `yaml:"force-expect-to,omitempty" toml:"force-expect-to,omitempty"` - ValidateAsyncIntervals *bool `yaml:"validate-async-intervals,omitempty" toml:"validate-async-intervals,omitempty"` - ForbidSpecPollution *bool `yaml:"forbid-spec-pollution,omitempty" toml:"forbid-spec-pollution,omitempty"` - ForceSucceedForFuncs *bool `yaml:"force-succeed,omitempty" toml:"force-succeed,omitempty"` + SuppressLenAssertion *bool `yaml:"suppress-len-assertion,omitempty" toml:"suppress-len-assertion,multiline,omitempty"` + SuppressNilAssertion *bool `yaml:"suppress-nil-assertion,omitempty" toml:"suppress-nil-assertion,multiline,omitempty"` + SuppressErrAssertion *bool `yaml:"suppress-err-assertion,omitempty" toml:"suppress-err-assertion,multiline,omitempty"` + SuppressCompareAssertion *bool `yaml:"suppress-compare-assertion,omitempty" toml:"suppress-compare-assertion,multiline,omitempty"` + SuppressAsyncAssertion *bool `yaml:"suppress-async-assertion,omitempty" toml:"suppress-async-assertion,multiline,omitempty"` + SuppressTypeCompareWarning *bool `yaml:"suppress-type-compare-assertion,omitempty" toml:"suppress-type-compare-assertion,multiline,omitempty"` + ForbidFocusContainer *bool `yaml:"forbid-focus-container,omitempty" toml:"forbid-focus-container,multiline,omitempty"` + AllowHaveLenZero *bool `yaml:"allow-havelen-zero,omitempty" toml:"allow-havelen-zero,multiline,omitempty"` + ForceExpectTo *bool `yaml:"force-expect-to,omitempty" toml:"force-expect-to,multiline,omitempty"` + ValidateAsyncIntervals *bool `yaml:"validate-async-intervals,omitempty" toml:"validate-async-intervals,multiline,omitempty"` + ForbidSpecPollution *bool `yaml:"forbid-spec-pollution,omitempty" toml:"forbid-spec-pollution,multiline,omitempty"` + ForceSucceedForFuncs *bool `yaml:"force-succeed,omitempty" toml:"force-succeed,multiline,omitempty"` } type GoChecksumTypeSettings struct { - DefaultSignifiesExhaustive *bool `yaml:"default-signifies-exhaustive,omitempty" toml:"default-signifies-exhaustive,omitempty"` - IncludeSharedInterfaces *bool `yaml:"include-shared-interfaces,omitempty" toml:"include-shared-interfaces,omitempty"` + DefaultSignifiesExhaustive *bool `yaml:"default-signifies-exhaustive,omitempty" toml:"default-signifies-exhaustive,multiline,omitempty"` + IncludeSharedInterfaces *bool `yaml:"include-shared-interfaces,omitempty" toml:"include-shared-interfaces,multiline,omitempty"` } type GocognitSettings struct { - MinComplexity *int `yaml:"min-complexity,omitempty" toml:"min-complexity,omitempty"` + MinComplexity *int `yaml:"min-complexity,omitempty" toml:"min-complexity,multiline,omitempty"` } type GoConstSettings struct { - IgnoreStrings *string `yaml:"ignore-strings,omitempty" toml:"ignore-strings,omitempty"` - MatchWithConstants *bool `yaml:"match-constant,omitempty" toml:"match-constant,omitempty"` - MinStringLen *int `yaml:"min-len,omitempty" toml:"min-len,omitempty"` - MinOccurrencesCount *int `yaml:"min-occurrences,omitempty" toml:"min-occurrences,omitempty"` - ParseNumbers *bool `yaml:"numbers,omitempty" toml:"numbers,omitempty"` - NumberMin *int `yaml:"min,omitempty" toml:"min,omitempty"` - NumberMax *int `yaml:"max,omitempty" toml:"max,omitempty"` - IgnoreCalls *bool `yaml:"ignore-calls,omitempty" toml:"ignore-calls,omitempty"` + IgnoreStrings *string `yaml:"ignore-strings,omitempty" toml:"ignore-strings,multiline,omitempty"` + MatchWithConstants *bool `yaml:"match-constant,omitempty" toml:"match-constant,multiline,omitempty"` + MinStringLen *int `yaml:"min-len,omitempty" toml:"min-len,multiline,omitempty"` + MinOccurrencesCount *int `yaml:"min-occurrences,omitempty" toml:"min-occurrences,multiline,omitempty"` + ParseNumbers *bool `yaml:"numbers,omitempty" toml:"numbers,multiline,omitempty"` + NumberMin *int `yaml:"min,omitempty" toml:"min,multiline,omitempty"` + NumberMax *int `yaml:"max,omitempty" toml:"max,multiline,omitempty"` + IgnoreCalls *bool `yaml:"ignore-calls,omitempty" toml:"ignore-calls,multiline,omitempty"` } type GoCriticSettings struct { - Go *string `yaml:"-,omitempty" toml:"-,omitempty"` - DisableAll *bool `yaml:"disable-all,omitempty" toml:"disable-all,omitempty"` - EnabledChecks []string `yaml:"enabled-checks,omitempty" toml:"enabled-checks,omitempty"` - EnableAll *bool `yaml:"enable-all,omitempty" toml:"enable-all,omitempty"` - DisabledChecks []string `yaml:"disabled-checks,omitempty" toml:"disabled-checks,omitempty"` - EnabledTags []string `yaml:"enabled-tags,omitempty" toml:"enabled-tags,omitempty"` - DisabledTags []string `yaml:"disabled-tags,omitempty" toml:"disabled-tags,omitempty"` - SettingsPerCheck map[string]GoCriticCheckSettings `yaml:"settings,omitempty" toml:"settings,omitempty"` + Go *string `yaml:"-,omitempty" toml:"-,multiline,omitempty"` + DisableAll *bool `yaml:"disable-all,omitempty" toml:"disable-all,multiline,omitempty"` + EnabledChecks []string `yaml:"enabled-checks,omitempty" toml:"enabled-checks,multiline,omitempty"` + EnableAll *bool `yaml:"enable-all,omitempty" toml:"enable-all,multiline,omitempty"` + DisabledChecks []string `yaml:"disabled-checks,omitempty" toml:"disabled-checks,multiline,omitempty"` + EnabledTags []string `yaml:"enabled-tags,omitempty" toml:"enabled-tags,multiline,omitempty"` + DisabledTags []string `yaml:"disabled-tags,omitempty" toml:"disabled-tags,multiline,omitempty"` + SettingsPerCheck map[string]GoCriticCheckSettings `yaml:"settings,omitempty" toml:"settings,multiline,omitempty"` } type GoCriticCheckSettings map[string]any type GoCycloSettings struct { - MinComplexity *int `yaml:"min-complexity,omitempty" toml:"min-complexity,omitempty"` + MinComplexity *int `yaml:"min-complexity,omitempty" toml:"min-complexity,multiline,omitempty"` } type GodotSettings struct { - Scope *string `yaml:"scope,omitempty" toml:"scope,omitempty"` - Exclude []string `yaml:"exclude,omitempty" toml:"exclude,omitempty"` - Capital *bool `yaml:"capital,omitempty" toml:"capital,omitempty"` - Period *bool `yaml:"period,omitempty" toml:"period,omitempty"` + Scope *string `yaml:"scope,omitempty" toml:"scope,multiline,omitempty"` + Exclude []string `yaml:"exclude,omitempty" toml:"exclude,multiline,omitempty"` + Capital *bool `yaml:"capital,omitempty" toml:"capital,multiline,omitempty"` + Period *bool `yaml:"period,omitempty" toml:"period,multiline,omitempty"` } type GodoxSettings struct { - Keywords []string `yaml:"keywords,omitempty" toml:"keywords,omitempty"` + Keywords []string `yaml:"keywords,omitempty" toml:"keywords,multiline,omitempty"` } type GoHeaderSettings struct { - Values map[string]map[string]string `yaml:"values,omitempty" toml:"values,omitempty"` - Template *string `yaml:"template,omitempty" toml:"template,omitempty"` - TemplatePath *string `yaml:"template-path,omitempty" toml:"template-path,omitempty"` + Values map[string]map[string]string `yaml:"values,omitempty" toml:"values,multiline,omitempty"` + Template *string `yaml:"template,omitempty" toml:"template,multiline,omitempty"` + TemplatePath *string `yaml:"template-path,omitempty" toml:"template-path,multiline,omitempty"` } type GoModDirectivesSettings struct { - ReplaceAllowList []string `yaml:"replace-allow-list,omitempty" toml:"replace-allow-list,omitempty"` - ReplaceLocal *bool `yaml:"replace-local,omitempty" toml:"replace-local,omitempty"` - ExcludeForbidden *bool `yaml:"exclude-forbidden,omitempty" toml:"exclude-forbidden,omitempty"` - RetractAllowNoExplanation *bool `yaml:"retract-allow-no-explanation,omitempty" toml:"retract-allow-no-explanation,omitempty"` - ToolchainForbidden *bool `yaml:"toolchain-forbidden,omitempty" toml:"toolchain-forbidden,omitempty"` - ToolchainPattern *string `yaml:"toolchain-pattern,omitempty" toml:"toolchain-pattern,omitempty"` - ToolForbidden *bool `yaml:"tool-forbidden,omitempty" toml:"tool-forbidden,omitempty"` - GoDebugForbidden *bool `yaml:"go-debug-forbidden,omitempty" toml:"go-debug-forbidden,omitempty"` - GoVersionPattern *string `yaml:"go-version-pattern,omitempty" toml:"go-version-pattern,omitempty"` + ReplaceAllowList []string `yaml:"replace-allow-list,omitempty" toml:"replace-allow-list,multiline,omitempty"` + ReplaceLocal *bool `yaml:"replace-local,omitempty" toml:"replace-local,multiline,omitempty"` + ExcludeForbidden *bool `yaml:"exclude-forbidden,omitempty" toml:"exclude-forbidden,multiline,omitempty"` + RetractAllowNoExplanation *bool `yaml:"retract-allow-no-explanation,omitempty" toml:"retract-allow-no-explanation,multiline,omitempty"` + ToolchainForbidden *bool `yaml:"toolchain-forbidden,omitempty" toml:"toolchain-forbidden,multiline,omitempty"` + ToolchainPattern *string `yaml:"toolchain-pattern,omitempty" toml:"toolchain-pattern,multiline,omitempty"` + ToolForbidden *bool `yaml:"tool-forbidden,omitempty" toml:"tool-forbidden,multiline,omitempty"` + GoDebugForbidden *bool `yaml:"go-debug-forbidden,omitempty" toml:"go-debug-forbidden,multiline,omitempty"` + GoVersionPattern *string `yaml:"go-version-pattern,omitempty" toml:"go-version-pattern,multiline,omitempty"` } type GoModGuardSettings struct { - Allowed GoModGuardAllowed `yaml:"allowed,omitempty" toml:"allowed,omitempty"` - Blocked GoModGuardBlocked `yaml:"blocked,omitempty" toml:"blocked,omitempty"` + Allowed GoModGuardAllowed `yaml:"allowed,omitempty" toml:"allowed,multiline,omitempty"` + Blocked GoModGuardBlocked `yaml:"blocked,omitempty" toml:"blocked,multiline,omitempty"` } type GoModGuardAllowed struct { - Modules []string `yaml:"modules,omitempty" toml:"modules,omitempty"` - Domains []string `yaml:"domains,omitempty" toml:"domains,omitempty"` + Modules []string `yaml:"modules,omitempty" toml:"modules,multiline,omitempty"` + Domains []string `yaml:"domains,omitempty" toml:"domains,multiline,omitempty"` } type GoModGuardBlocked struct { - Modules []map[string]GoModGuardModule `yaml:"modules,omitempty" toml:"modules,omitempty"` - Versions []map[string]GoModGuardVersion `yaml:"versions,omitempty" toml:"versions,omitempty"` - LocalReplaceDirectives *bool `yaml:"local-replace-directives,omitempty" toml:"local-replace-directives,omitempty"` + Modules []map[string]GoModGuardModule `yaml:"modules,omitempty" toml:"modules,multiline,omitempty"` + Versions []map[string]GoModGuardVersion `yaml:"versions,omitempty" toml:"versions,multiline,omitempty"` + LocalReplaceDirectives *bool `yaml:"local-replace-directives,omitempty" toml:"local-replace-directives,multiline,omitempty"` } type GoModGuardModule struct { - Recommendations []string `yaml:"recommendations,omitempty" toml:"recommendations,omitempty"` - Reason *string `yaml:"reason,omitempty" toml:"reason,omitempty"` + Recommendations []string `yaml:"recommendations,omitempty" toml:"recommendations,multiline,omitempty"` + Reason *string `yaml:"reason,omitempty" toml:"reason,multiline,omitempty"` } type GoModGuardVersion struct { - Version *string `yaml:"version,omitempty" toml:"version,omitempty"` - Reason *string `yaml:"reason,omitempty" toml:"reason,omitempty"` + Version *string `yaml:"version,omitempty" toml:"version,multiline,omitempty"` + Reason *string `yaml:"reason,omitempty" toml:"reason,multiline,omitempty"` } type GoSecSettings struct { - Includes []string `yaml:"includes,omitempty" toml:"includes,omitempty"` - Excludes []string `yaml:"excludes,omitempty" toml:"excludes,omitempty"` - Severity *string `yaml:"severity,omitempty" toml:"severity,omitempty"` - Confidence *string `yaml:"confidence,omitempty" toml:"confidence,omitempty"` - Config map[string]any `yaml:"config,omitempty" toml:"config,omitempty"` - Concurrency *int `yaml:"concurrency,omitempty" toml:"concurrency,omitempty"` + Includes []string `yaml:"includes,omitempty" toml:"includes,multiline,omitempty"` + Excludes []string `yaml:"excludes,omitempty" toml:"excludes,multiline,omitempty"` + Severity *string `yaml:"severity,omitempty" toml:"severity,multiline,omitempty"` + Confidence *string `yaml:"confidence,omitempty" toml:"confidence,multiline,omitempty"` + Config map[string]any `yaml:"config,omitempty" toml:"config,multiline,omitempty"` + Concurrency *int `yaml:"concurrency,omitempty" toml:"concurrency,multiline,omitempty"` } type GosmopolitanSettings struct { - AllowTimeLocal *bool `yaml:"allow-time-local,omitempty" toml:"allow-time-local,omitempty"` - EscapeHatches []string `yaml:"escape-hatches,omitempty" toml:"escape-hatches,omitempty"` - WatchForScripts []string `yaml:"watch-for-scripts,omitempty" toml:"watch-for-scripts,omitempty"` + AllowTimeLocal *bool `yaml:"allow-time-local,omitempty" toml:"allow-time-local,multiline,omitempty"` + EscapeHatches []string `yaml:"escape-hatches,omitempty" toml:"escape-hatches,multiline,omitempty"` + WatchForScripts []string `yaml:"watch-for-scripts,omitempty" toml:"watch-for-scripts,multiline,omitempty"` } type GovetSettings struct { - Go *string `yaml:"-,omitempty" toml:"-,omitempty"` + Go *string `yaml:"-,omitempty" toml:"-,multiline,omitempty"` - Enable []string `yaml:"enable,omitempty" toml:"enable,omitempty"` - Disable []string `yaml:"disable,omitempty" toml:"disable,omitempty"` - EnableAll *bool `yaml:"enable-all,omitempty" toml:"enable-all,omitempty"` - DisableAll *bool `yaml:"disable-all,omitempty" toml:"disable-all,omitempty"` + Enable []string `yaml:"enable,omitempty" toml:"enable,multiline,omitempty"` + Disable []string `yaml:"disable,omitempty" toml:"disable,multiline,omitempty"` + EnableAll *bool `yaml:"enable-all,omitempty" toml:"enable-all,multiline,omitempty"` + DisableAll *bool `yaml:"disable-all,omitempty" toml:"disable-all,multiline,omitempty"` - Settings map[string]map[string]any `yaml:"settings,omitempty" toml:"settings,omitempty"` + Settings map[string]map[string]any `yaml:"settings,omitempty" toml:"settings,multiline,omitempty"` } type GrouperSettings struct { - ConstRequireSingleConst *bool `yaml:"const-require-single-const,omitempty" toml:"const-require-single-const,omitempty"` - ConstRequireGrouping *bool `yaml:"const-require-grouping,omitempty" toml:"const-require-grouping,omitempty"` - ImportRequireSingleImport *bool `yaml:"import-require-single-import,omitempty" toml:"import-require-single-import,omitempty"` - ImportRequireGrouping *bool `yaml:"import-require-grouping,omitempty" toml:"import-require-grouping,omitempty"` - TypeRequireSingleType *bool `yaml:"type-require-single-type,omitempty" toml:"type-require-single-type,omitempty"` - TypeRequireGrouping *bool `yaml:"type-require-grouping,omitempty" toml:"type-require-grouping,omitempty"` - VarRequireSingleVar *bool `yaml:"var-require-single-var,omitempty" toml:"var-require-single-var,omitempty"` - VarRequireGrouping *bool `yaml:"var-require-grouping,omitempty" toml:"var-require-grouping,omitempty"` + ConstRequireSingleConst *bool `yaml:"const-require-single-const,omitempty" toml:"const-require-single-const,multiline,omitempty"` + ConstRequireGrouping *bool `yaml:"const-require-grouping,omitempty" toml:"const-require-grouping,multiline,omitempty"` + ImportRequireSingleImport *bool `yaml:"import-require-single-import,omitempty" toml:"import-require-single-import,multiline,omitempty"` + ImportRequireGrouping *bool `yaml:"import-require-grouping,omitempty" toml:"import-require-grouping,multiline,omitempty"` + TypeRequireSingleType *bool `yaml:"type-require-single-type,omitempty" toml:"type-require-single-type,multiline,omitempty"` + TypeRequireGrouping *bool `yaml:"type-require-grouping,omitempty" toml:"type-require-grouping,multiline,omitempty"` + VarRequireSingleVar *bool `yaml:"var-require-single-var,omitempty" toml:"var-require-single-var,multiline,omitempty"` + VarRequireGrouping *bool `yaml:"var-require-grouping,omitempty" toml:"var-require-grouping,multiline,omitempty"` } type IfaceSettings struct { - Enable []string `yaml:"enable,omitempty" toml:"enable,omitempty"` - Settings map[string]map[string]any `yaml:"settings,omitempty" toml:"settings,omitempty"` + Enable []string `yaml:"enable,omitempty" toml:"enable,multiline,omitempty"` + Settings map[string]map[string]any `yaml:"settings,omitempty" toml:"settings,multiline,omitempty"` } type ImportAsSettings struct { - Alias []ImportAsAlias `yaml:"alias,omitempty" toml:"alias,omitempty"` - NoUnaliased *bool `yaml:"no-unaliased,omitempty" toml:"no-unaliased,omitempty"` - NoExtraAliases *bool `yaml:"no-extra-aliases,omitempty" toml:"no-extra-aliases,omitempty"` + Alias []ImportAsAlias `yaml:"alias,omitempty" toml:"alias,multiline,omitempty"` + NoUnaliased *bool `yaml:"no-unaliased,omitempty" toml:"no-unaliased,multiline,omitempty"` + NoExtraAliases *bool `yaml:"no-extra-aliases,omitempty" toml:"no-extra-aliases,multiline,omitempty"` } type ImportAsAlias struct { - Pkg *string `yaml:"pkg,omitempty" toml:"pkg,omitempty"` - Alias *string `yaml:"alias,omitempty" toml:"alias,omitempty"` + Pkg *string `yaml:"pkg,omitempty" toml:"pkg,multiline,omitempty"` + Alias *string `yaml:"alias,omitempty" toml:"alias,multiline,omitempty"` } type INamedParamSettings struct { - SkipSingleParam *bool `yaml:"skip-single-param,omitempty" toml:"skip-single-param,omitempty"` + SkipSingleParam *bool `yaml:"skip-single-param,omitempty" toml:"skip-single-param,multiline,omitempty"` } type InterfaceBloatSettings struct { - Max *int `yaml:"max,omitempty" toml:"max,omitempty"` + Max *int `yaml:"max,omitempty" toml:"max,multiline,omitempty"` } type IreturnSettings struct { - Allow []string `yaml:"allow,omitempty" toml:"allow,omitempty"` - Reject []string `yaml:"reject,omitempty" toml:"reject,omitempty"` + Allow []string `yaml:"allow,omitempty" toml:"allow,multiline,omitempty"` + Reject []string `yaml:"reject,omitempty" toml:"reject,multiline,omitempty"` } type LllSettings struct { - LineLength *int `yaml:"line-length,omitempty" toml:"line-length,omitempty"` - TabWidth *int `yaml:"tab-width,omitempty" toml:"tab-width,omitempty"` + LineLength *int `yaml:"line-length,omitempty" toml:"line-length,multiline,omitempty"` + TabWidth *int `yaml:"tab-width,omitempty" toml:"tab-width,multiline,omitempty"` } type LoggerCheckSettings struct { - Kitlog *bool `yaml:"kitlog,omitempty" toml:"kitlog,omitempty"` - Klog *bool `yaml:"klog,omitempty" toml:"klog,omitempty"` - Logr *bool `yaml:"logr,omitempty" toml:"logr,omitempty"` - Slog *bool `yaml:"slog,omitempty" toml:"slog,omitempty"` - Zap *bool `yaml:"zap,omitempty" toml:"zap,omitempty"` - RequireStringKey *bool `yaml:"require-string-key,omitempty" toml:"require-string-key,omitempty"` - NoPrintfLike *bool `yaml:"no-printf-like,omitempty" toml:"no-printf-like,omitempty"` - Rules []string `yaml:"rules,omitempty" toml:"rules,omitempty"` + Kitlog *bool `yaml:"kitlog,omitempty" toml:"kitlog,multiline,omitempty"` + Klog *bool `yaml:"klog,omitempty" toml:"klog,multiline,omitempty"` + Logr *bool `yaml:"logr,omitempty" toml:"logr,multiline,omitempty"` + Slog *bool `yaml:"slog,omitempty" toml:"slog,multiline,omitempty"` + Zap *bool `yaml:"zap,omitempty" toml:"zap,multiline,omitempty"` + RequireStringKey *bool `yaml:"require-string-key,omitempty" toml:"require-string-key,multiline,omitempty"` + NoPrintfLike *bool `yaml:"no-printf-like,omitempty" toml:"no-printf-like,multiline,omitempty"` + Rules []string `yaml:"rules,omitempty" toml:"rules,multiline,omitempty"` } type MaintIdxSettings struct { - Under *int `yaml:"under,omitempty" toml:"under,omitempty"` + Under *int `yaml:"under,omitempty" toml:"under,multiline,omitempty"` } type MakezeroSettings struct { - Always *bool `yaml:"always,omitempty" toml:"always,omitempty"` + Always *bool `yaml:"always,omitempty" toml:"always,multiline,omitempty"` } type MisspellSettings struct { - Mode *string `yaml:"mode,omitempty" toml:"mode,omitempty"` - Locale *string `yaml:"locale,omitempty" toml:"locale,omitempty"` - ExtraWords []MisspellExtraWords `yaml:"extra-words,omitempty" toml:"extra-words,omitempty"` - IgnoreRules []string `yaml:"ignore-rules,omitempty" toml:"ignore-rules,omitempty"` + Mode *string `yaml:"mode,omitempty" toml:"mode,multiline,omitempty"` + Locale *string `yaml:"locale,omitempty" toml:"locale,multiline,omitempty"` + ExtraWords []MisspellExtraWords `yaml:"extra-words,omitempty" toml:"extra-words,multiline,omitempty"` + IgnoreRules []string `yaml:"ignore-rules,omitempty" toml:"ignore-rules,multiline,omitempty"` } type MisspellExtraWords struct { - Typo *string `yaml:"typo,omitempty" toml:"typo,omitempty"` - Correction *string `yaml:"correction,omitempty" toml:"correction,omitempty"` + Typo *string `yaml:"typo,omitempty" toml:"typo,multiline,omitempty"` + Correction *string `yaml:"correction,omitempty" toml:"correction,multiline,omitempty"` } type MustTagSettings struct { - Functions []MustTagFunction `yaml:"functions,omitempty" toml:"functions,omitempty"` + Functions []MustTagFunction `yaml:"functions,omitempty" toml:"functions,multiline,omitempty"` } type MustTagFunction struct { - Name *string `yaml:"name,omitempty" toml:"name,omitempty"` - Tag *string `yaml:"tag,omitempty" toml:"tag,omitempty"` - ArgPos *int `yaml:"arg-pos,omitempty" toml:"arg-pos,omitempty"` + Name *string `yaml:"name,omitempty" toml:"name,multiline,omitempty"` + Tag *string `yaml:"tag,omitempty" toml:"tag,multiline,omitempty"` + ArgPos *int `yaml:"arg-pos,omitempty" toml:"arg-pos,multiline,omitempty"` } type NakedretSettings struct { - MaxFuncLines uint `yaml:"max-func-lines,omitempty" toml:"max-func-lines,omitempty"` + MaxFuncLines uint `yaml:"max-func-lines,omitempty" toml:"max-func-lines,multiline,omitempty"` } type NestifSettings struct { - MinComplexity *int `yaml:"min-complexity,omitempty" toml:"min-complexity,omitempty"` + MinComplexity *int `yaml:"min-complexity,omitempty" toml:"min-complexity,multiline,omitempty"` } type NilNilSettings struct { - DetectOpposite *bool `yaml:"detect-opposite,omitempty" toml:"detect-opposite,omitempty"` - CheckedTypes []string `yaml:"checked-types,omitempty" toml:"checked-types,omitempty"` + DetectOpposite *bool `yaml:"detect-opposite,omitempty" toml:"detect-opposite,multiline,omitempty"` + CheckedTypes []string `yaml:"checked-types,omitempty" toml:"checked-types,multiline,omitempty"` } type NlreturnSettings struct { - BlockSize *int `yaml:"block-size,omitempty" toml:"block-size,omitempty"` + BlockSize *int `yaml:"block-size,omitempty" toml:"block-size,multiline,omitempty"` } type MndSettings struct { - Checks []string `yaml:"checks,omitempty" toml:"checks,omitempty"` - IgnoredNumbers []string `yaml:"ignored-numbers,omitempty" toml:"ignored-numbers,omitempty"` - IgnoredFiles []string `yaml:"ignored-files,omitempty" toml:"ignored-files,omitempty"` - IgnoredFunctions []string `yaml:"ignored-functions,omitempty" toml:"ignored-functions,omitempty"` + Checks []string `yaml:"checks,omitempty" toml:"checks,multiline,omitempty"` + IgnoredNumbers []string `yaml:"ignored-numbers,omitempty" toml:"ignored-numbers,multiline,omitempty"` + IgnoredFiles []string `yaml:"ignored-files,omitempty" toml:"ignored-files,multiline,omitempty"` + IgnoredFunctions []string `yaml:"ignored-functions,omitempty" toml:"ignored-functions,multiline,omitempty"` } type NoLintLintSettings struct { - RequireExplanation *bool `yaml:"require-explanation,omitempty" toml:"require-explanation,omitempty"` - RequireSpecific *bool `yaml:"require-specific,omitempty" toml:"require-specific,omitempty"` - AllowNoExplanation []string `yaml:"allow-no-explanation,omitempty" toml:"allow-no-explanation,omitempty"` - AllowUnused *bool `yaml:"allow-unused,omitempty" toml:"allow-unused,omitempty"` + RequireExplanation *bool `yaml:"require-explanation,omitempty" toml:"require-explanation,multiline,omitempty"` + RequireSpecific *bool `yaml:"require-specific,omitempty" toml:"require-specific,multiline,omitempty"` + AllowNoExplanation []string `yaml:"allow-no-explanation,omitempty" toml:"allow-no-explanation,multiline,omitempty"` + AllowUnused *bool `yaml:"allow-unused,omitempty" toml:"allow-unused,multiline,omitempty"` } type NoNamedReturnsSettings struct { - ReportErrorInDefer *bool `yaml:"report-error-in-defer,omitempty" toml:"report-error-in-defer,omitempty"` + ReportErrorInDefer *bool `yaml:"report-error-in-defer,omitempty" toml:"report-error-in-defer,multiline,omitempty"` } type ParallelTestSettings struct { - Go *string `yaml:"-,omitempty" toml:"-,omitempty"` - IgnoreMissing *bool `yaml:"ignore-missing,omitempty" toml:"ignore-missing,omitempty"` - IgnoreMissingSubtests *bool `yaml:"ignore-missing-subtests,omitempty" toml:"ignore-missing-subtests,omitempty"` + Go *string `yaml:"-,omitempty" toml:"-,multiline,omitempty"` + IgnoreMissing *bool `yaml:"ignore-missing,omitempty" toml:"ignore-missing,multiline,omitempty"` + IgnoreMissingSubtests *bool `yaml:"ignore-missing-subtests,omitempty" toml:"ignore-missing-subtests,multiline,omitempty"` } type PerfSprintSettings struct { - IntegerFormat *bool `yaml:"integer-format,omitempty" toml:"integer-format,omitempty"` - IntConversion *bool `yaml:"int-conversion,omitempty" toml:"int-conversion,omitempty"` + IntegerFormat *bool `yaml:"integer-format,omitempty" toml:"integer-format,multiline,omitempty"` + IntConversion *bool `yaml:"int-conversion,omitempty" toml:"int-conversion,multiline,omitempty"` - ErrorFormat *bool `yaml:"error-format,omitempty" toml:"error-format,omitempty"` - ErrError *bool `yaml:"err-error,omitempty" toml:"err-error,omitempty"` - ErrorF *bool `yaml:"errorf,omitempty" toml:"errorf,omitempty"` + ErrorFormat *bool `yaml:"error-format,omitempty" toml:"error-format,multiline,omitempty"` + ErrError *bool `yaml:"err-error,omitempty" toml:"err-error,multiline,omitempty"` + ErrorF *bool `yaml:"errorf,omitempty" toml:"errorf,multiline,omitempty"` - StringFormat *bool `yaml:"string-format,omitempty" toml:"string-format,omitempty"` - SprintF1 *bool `yaml:"sprintf1,omitempty" toml:"sprintf1,omitempty"` - StrConcat *bool `yaml:"strconcat,omitempty" toml:"strconcat,omitempty"` + StringFormat *bool `yaml:"string-format,omitempty" toml:"string-format,multiline,omitempty"` + SprintF1 *bool `yaml:"sprintf1,omitempty" toml:"sprintf1,multiline,omitempty"` + StrConcat *bool `yaml:"strconcat,omitempty" toml:"strconcat,multiline,omitempty"` - BoolFormat *bool `yaml:"bool-format,omitempty" toml:"bool-format,omitempty"` - HexFormat *bool `yaml:"hex-format,omitempty" toml:"hex-format,omitempty"` + BoolFormat *bool `yaml:"bool-format,omitempty" toml:"bool-format,multiline,omitempty"` + HexFormat *bool `yaml:"hex-format,omitempty" toml:"hex-format,multiline,omitempty"` } type PreallocSettings struct { - Simple *bool `yaml:"simple,omitempty" toml:"simple,omitempty"` - RangeLoops *bool `yaml:"range-loops,omitempty" toml:"range-loops,omitempty"` - ForLoops *bool `yaml:"for-loops,omitempty" toml:"for-loops,omitempty"` + Simple *bool `yaml:"simple,omitempty" toml:"simple,multiline,omitempty"` + RangeLoops *bool `yaml:"range-loops,omitempty" toml:"range-loops,multiline,omitempty"` + ForLoops *bool `yaml:"for-loops,omitempty" toml:"for-loops,multiline,omitempty"` } type PredeclaredSettings struct { - Ignore []string `yaml:"ignore,omitempty" toml:"ignore,omitempty"` - Qualified *bool `yaml:"qualified-name,omitempty" toml:"qualified-name,omitempty"` + Ignore []string `yaml:"ignore,omitempty" toml:"ignore,multiline,omitempty"` + Qualified *bool `yaml:"qualified-name,omitempty" toml:"qualified-name,multiline,omitempty"` } type PromlinterSettings struct { - Strict *bool `yaml:"strict,omitempty" toml:"strict,omitempty"` - DisabledLinters []string `yaml:"disabled-linters,omitempty" toml:"disabled-linters,omitempty"` + Strict *bool `yaml:"strict,omitempty" toml:"strict,multiline,omitempty"` + DisabledLinters []string `yaml:"disabled-linters,omitempty" toml:"disabled-linters,multiline,omitempty"` } type ProtoGetterSettings struct { - SkipGeneratedBy []string `yaml:"skip-generated-by,omitempty" toml:"skip-generated-by,omitempty"` - SkipFiles []string `yaml:"skip-files,omitempty" toml:"skip-files,omitempty"` - SkipAnyGenerated *bool `yaml:"skip-any-generated,omitempty" toml:"skip-any-generated,omitempty"` - ReplaceFirstArgInAppend *bool `yaml:"replace-first-arg-in-append,omitempty" toml:"replace-first-arg-in-append,omitempty"` + SkipGeneratedBy []string `yaml:"skip-generated-by,omitempty" toml:"skip-generated-by,multiline,omitempty"` + SkipFiles []string `yaml:"skip-files,omitempty" toml:"skip-files,multiline,omitempty"` + SkipAnyGenerated *bool `yaml:"skip-any-generated,omitempty" toml:"skip-any-generated,multiline,omitempty"` + ReplaceFirstArgInAppend *bool `yaml:"replace-first-arg-in-append,omitempty" toml:"replace-first-arg-in-append,multiline,omitempty"` } type ReassignSettings struct { - Patterns []string `yaml:"patterns,omitempty" toml:"patterns,omitempty"` + Patterns []string `yaml:"patterns,omitempty" toml:"patterns,multiline,omitempty"` } type RecvcheckSettings struct { - DisableBuiltin *bool `yaml:"disable-builtin,omitempty" toml:"disable-builtin,omitempty"` - Exclusions []string `yaml:"exclusions,omitempty" toml:"exclusions,omitempty"` + DisableBuiltin *bool `yaml:"disable-builtin,omitempty" toml:"disable-builtin,multiline,omitempty"` + Exclusions []string `yaml:"exclusions,omitempty" toml:"exclusions,multiline,omitempty"` } type ReviveSettings struct { - Go *string `yaml:"-,omitempty" toml:"-,omitempty"` - MaxOpenFiles *int `yaml:"max-open-files,omitempty" toml:"max-open-files,omitempty"` - Confidence *float64 `yaml:"confidence,omitempty" toml:"confidence,omitempty"` - Severity *string `yaml:"severity,omitempty" toml:"severity,omitempty"` - EnableAllRules *bool `yaml:"enable-all-rules,omitempty" toml:"enable-all-rules,omitempty"` - Rules []ReviveRule `yaml:"rules,omitempty" toml:"rules,omitempty"` - ErrorCode *int `yaml:"error-code,omitempty" toml:"error-code,omitempty"` - WarningCode *int `yaml:"warning-code,omitempty" toml:"warning-code,omitempty"` - Directives []ReviveDirective `yaml:"directives,omitempty" toml:"directives,omitempty"` + Go *string `yaml:"-,omitempty" toml:"-,multiline,omitempty"` + MaxOpenFiles *int `yaml:"max-open-files,omitempty" toml:"max-open-files,multiline,omitempty"` + Confidence *float64 `yaml:"confidence,omitempty" toml:"confidence,multiline,omitempty"` + Severity *string `yaml:"severity,omitempty" toml:"severity,multiline,omitempty"` + EnableAllRules *bool `yaml:"enable-all-rules,omitempty" toml:"enable-all-rules,multiline,omitempty"` + Rules []ReviveRule `yaml:"rules,omitempty" toml:"rules,multiline,omitempty"` + ErrorCode *int `yaml:"error-code,omitempty" toml:"error-code,multiline,omitempty"` + WarningCode *int `yaml:"warning-code,omitempty" toml:"warning-code,multiline,omitempty"` + Directives []ReviveDirective `yaml:"directives,omitempty" toml:"directives,multiline,omitempty"` } type ReviveRule struct { - Name *string `yaml:"name,omitempty" toml:"name,omitempty"` - Arguments []any `yaml:"arguments,omitempty" toml:"arguments,omitempty"` - Severity *string `yaml:"severity,omitempty" toml:"severity,omitempty"` - Disabled *bool `yaml:"disabled,omitempty" toml:"disabled,omitempty"` - Exclude []string `yaml:"exclude,omitempty" toml:"exclude,omitempty"` + Name *string `yaml:"name,omitempty" toml:"name,multiline,omitempty"` + Arguments []any `yaml:"arguments,omitempty" toml:"arguments,multiline,omitempty"` + Severity *string `yaml:"severity,omitempty" toml:"severity,multiline,omitempty"` + Disabled *bool `yaml:"disabled,omitempty" toml:"disabled,multiline,omitempty"` + Exclude []string `yaml:"exclude,omitempty" toml:"exclude,multiline,omitempty"` } type ReviveDirective struct { - Name *string `yaml:"name,omitempty" toml:"name,omitempty"` - Severity *string `yaml:"severity,omitempty" toml:"severity,omitempty"` + Name *string `yaml:"name,omitempty" toml:"name,multiline,omitempty"` + Severity *string `yaml:"severity,omitempty" toml:"severity,multiline,omitempty"` } type RowsErrCheckSettings struct { - Packages []string `yaml:"packages,omitempty" toml:"packages,omitempty"` + Packages []string `yaml:"packages,omitempty" toml:"packages,multiline,omitempty"` } type SlogLintSettings struct { - NoMixedArgs *bool `yaml:"no-mixed-args,omitempty" toml:"no-mixed-args,omitempty"` - KVOnly *bool `yaml:"kv-only,omitempty" toml:"kv-only,omitempty"` - AttrOnly *bool `yaml:"attr-only,omitempty" toml:"attr-only,omitempty"` - NoGlobal *string `yaml:"no-global,omitempty" toml:"no-global,omitempty"` - Context *string `yaml:"context,omitempty" toml:"context,omitempty"` - StaticMsg *bool `yaml:"static-msg,omitempty" toml:"static-msg,omitempty"` - NoRawKeys *bool `yaml:"no-raw-keys,omitempty" toml:"no-raw-keys,omitempty"` - KeyNamingCase *string `yaml:"key-naming-case,omitempty" toml:"key-naming-case,omitempty"` - ForbiddenKeys []string `yaml:"forbidden-keys,omitempty" toml:"forbidden-keys,omitempty"` - ArgsOnSepLines *bool `yaml:"args-on-sep-lines,omitempty" toml:"args-on-sep-lines,omitempty"` + NoMixedArgs *bool `yaml:"no-mixed-args,omitempty" toml:"no-mixed-args,multiline,omitempty"` + KVOnly *bool `yaml:"kv-only,omitempty" toml:"kv-only,multiline,omitempty"` + AttrOnly *bool `yaml:"attr-only,omitempty" toml:"attr-only,multiline,omitempty"` + NoGlobal *string `yaml:"no-global,omitempty" toml:"no-global,multiline,omitempty"` + Context *string `yaml:"context,omitempty" toml:"context,multiline,omitempty"` + StaticMsg *bool `yaml:"static-msg,omitempty" toml:"static-msg,multiline,omitempty"` + NoRawKeys *bool `yaml:"no-raw-keys,omitempty" toml:"no-raw-keys,multiline,omitempty"` + KeyNamingCase *string `yaml:"key-naming-case,omitempty" toml:"key-naming-case,multiline,omitempty"` + ForbiddenKeys []string `yaml:"forbidden-keys,omitempty" toml:"forbidden-keys,multiline,omitempty"` + ArgsOnSepLines *bool `yaml:"args-on-sep-lines,omitempty" toml:"args-on-sep-lines,multiline,omitempty"` } type SpancheckSettings struct { - Checks []string `yaml:"checks,omitempty" toml:"checks,omitempty"` - IgnoreCheckSignatures []string `yaml:"ignore-check-signatures,omitempty" toml:"ignore-check-signatures,omitempty"` - ExtraStartSpanSignatures []string `yaml:"extra-start-span-signatures,omitempty" toml:"extra-start-span-signatures,omitempty"` + Checks []string `yaml:"checks,omitempty" toml:"checks,multiline,omitempty"` + IgnoreCheckSignatures []string `yaml:"ignore-check-signatures,omitempty" toml:"ignore-check-signatures,multiline,omitempty"` + ExtraStartSpanSignatures []string `yaml:"extra-start-span-signatures,omitempty" toml:"extra-start-span-signatures,multiline,omitempty"` } type StaticCheckSettings struct { - Checks []string `yaml:"checks,omitempty" toml:"checks,omitempty"` - Initialisms []string `yaml:"initialisms,omitempty" toml:"initialisms,omitempty"` - DotImportWhitelist []string `yaml:"dot-import-whitelist,omitempty" toml:"dot-import-whitelist,omitempty"` - HTTPStatusCodeWhitelist []string `yaml:"http-status-code-whitelist,omitempty" toml:"http-status-code-whitelist,omitempty"` + Checks []string `yaml:"checks,omitempty" toml:"checks,multiline,omitempty"` + Initialisms []string `yaml:"initialisms,omitempty" toml:"initialisms,multiline,omitempty"` + DotImportWhitelist []string `yaml:"dot-import-whitelist,omitempty" toml:"dot-import-whitelist,multiline,omitempty"` + HTTPStatusCodeWhitelist []string `yaml:"http-status-code-whitelist,omitempty" toml:"http-status-code-whitelist,multiline,omitempty"` } type TagAlignSettings struct { - Align *bool `yaml:"align,omitempty" toml:"align,omitempty"` - Sort *bool `yaml:"sort,omitempty" toml:"sort,omitempty"` - Order []string `yaml:"order,omitempty" toml:"order,omitempty"` - Strict *bool `yaml:"strict,omitempty" toml:"strict,omitempty"` + Align *bool `yaml:"align,omitempty" toml:"align,multiline,omitempty"` + Sort *bool `yaml:"sort,omitempty" toml:"sort,multiline,omitempty"` + Order []string `yaml:"order,omitempty" toml:"order,multiline,omitempty"` + Strict *bool `yaml:"strict,omitempty" toml:"strict,multiline,omitempty"` } type TagliatelleSettings struct { - Case TagliatelleCase `yaml:"case,omitempty" toml:"case,omitempty"` + Case TagliatelleCase `yaml:"case,omitempty" toml:"case,multiline,omitempty"` } type TagliatelleCase struct { TagliatelleBase `yaml:",inline"` - Overrides []TagliatelleOverrides `yaml:"overrides,omitempty" toml:"overrides,omitempty"` + Overrides []TagliatelleOverrides `yaml:"overrides,omitempty" toml:"overrides,multiline,omitempty"` } type TagliatelleOverrides struct { TagliatelleBase `yaml:",inline"` - Package *string `yaml:"pkg,omitempty" toml:"pkg,omitempty"` - Ignore *bool `yaml:"ignore,omitempty" toml:"ignore,omitempty"` + Package *string `yaml:"pkg,omitempty" toml:"pkg,multiline,omitempty"` + Ignore *bool `yaml:"ignore,omitempty" toml:"ignore,multiline,omitempty"` } type TagliatelleBase struct { - Rules map[string]string `yaml:"rules,omitempty" toml:"rules,omitempty"` - ExtendedRules map[string]TagliatelleExtendedRule `yaml:"extended-rules,omitempty" toml:"extended-rules,omitempty"` - UseFieldName *bool `yaml:"use-field-name,omitempty" toml:"use-field-name,omitempty"` - IgnoredFields []string `yaml:"ignored-fields,omitempty" toml:"ignored-fields,omitempty"` + Rules map[string]string `yaml:"rules,omitempty" toml:"rules,multiline,omitempty"` + ExtendedRules map[string]TagliatelleExtendedRule `yaml:"extended-rules,omitempty" toml:"extended-rules,multiline,omitempty"` + UseFieldName *bool `yaml:"use-field-name,omitempty" toml:"use-field-name,multiline,omitempty"` + IgnoredFields []string `yaml:"ignored-fields,omitempty" toml:"ignored-fields,multiline,omitempty"` } type TagliatelleExtendedRule struct { - Case *string `yaml:"case,omitempty" toml:"case,omitempty"` - ExtraInitialisms *bool `yaml:"extra-initialisms,omitempty" toml:"extra-initialisms,omitempty"` - InitialismOverrides map[string]bool `yaml:"initialism-overrides,omitempty" toml:"initialism-overrides,omitempty"` + Case *string `yaml:"case,omitempty" toml:"case,multiline,omitempty"` + ExtraInitialisms *bool `yaml:"extra-initialisms,omitempty" toml:"extra-initialisms,multiline,omitempty"` + InitialismOverrides map[string]bool `yaml:"initialism-overrides,omitempty" toml:"initialism-overrides,multiline,omitempty"` } type TestifylintSettings struct { - EnableAll *bool `yaml:"enable-all,omitempty" toml:"enable-all,omitempty"` - DisableAll *bool `yaml:"disable-all,omitempty" toml:"disable-all,omitempty"` - EnabledCheckers []string `yaml:"enable,omitempty" toml:"enable,omitempty"` - DisabledCheckers []string `yaml:"disable,omitempty" toml:"disable,omitempty"` + EnableAll *bool `yaml:"enable-all,omitempty" toml:"enable-all,multiline,omitempty"` + DisableAll *bool `yaml:"disable-all,omitempty" toml:"disable-all,multiline,omitempty"` + EnabledCheckers []string `yaml:"enable,omitempty" toml:"enable,multiline,omitempty"` + DisabledCheckers []string `yaml:"disable,omitempty" toml:"disable,multiline,omitempty"` - BoolCompare TestifylintBoolCompare `yaml:"bool-compare,omitempty" toml:"bool-compare,omitempty"` - ExpectedActual TestifylintExpectedActual `yaml:"expected-actual,omitempty" toml:"expected-actual,omitempty"` - Formatter TestifylintFormatter `yaml:"formatter,omitempty" toml:"formatter,omitempty"` - GoRequire TestifylintGoRequire `yaml:"go-require,omitempty" toml:"go-require,omitempty"` - RequireError TestifylintRequireError `yaml:"require-error,omitempty" toml:"require-error,omitempty"` - SuiteExtraAssertCall TestifylintSuiteExtraAssertCall `yaml:"suite-extra-assert-call,omitempty" toml:"suite-extra-assert-call,omitempty"` + BoolCompare TestifylintBoolCompare `yaml:"bool-compare,omitempty" toml:"bool-compare,multiline,omitempty"` + ExpectedActual TestifylintExpectedActual `yaml:"expected-actual,omitempty" toml:"expected-actual,multiline,omitempty"` + Formatter TestifylintFormatter `yaml:"formatter,omitempty" toml:"formatter,multiline,omitempty"` + GoRequire TestifylintGoRequire `yaml:"go-require,omitempty" toml:"go-require,multiline,omitempty"` + RequireError TestifylintRequireError `yaml:"require-error,omitempty" toml:"require-error,multiline,omitempty"` + SuiteExtraAssertCall TestifylintSuiteExtraAssertCall `yaml:"suite-extra-assert-call,omitempty" toml:"suite-extra-assert-call,multiline,omitempty"` } type TestifylintBoolCompare struct { - IgnoreCustomTypes *bool `yaml:"ignore-custom-types,omitempty" toml:"ignore-custom-types,omitempty"` + IgnoreCustomTypes *bool `yaml:"ignore-custom-types,omitempty" toml:"ignore-custom-types,multiline,omitempty"` } type TestifylintExpectedActual struct { - ExpVarPattern *string `yaml:"pattern,omitempty" toml:"pattern,omitempty"` + ExpVarPattern *string `yaml:"pattern,omitempty" toml:"pattern,multiline,omitempty"` } type TestifylintFormatter struct { - CheckFormatString *bool `yaml:"check-format-string,omitempty" toml:"check-format-string,omitempty"` - RequireFFuncs *bool `yaml:"require-f-funcs,omitempty" toml:"require-f-funcs,omitempty"` + CheckFormatString *bool `yaml:"check-format-string,omitempty" toml:"check-format-string,multiline,omitempty"` + RequireFFuncs *bool `yaml:"require-f-funcs,omitempty" toml:"require-f-funcs,multiline,omitempty"` } type TestifylintGoRequire struct { - IgnoreHTTPHandlers *bool `yaml:"ignore-http-handlers,omitempty" toml:"ignore-http-handlers,omitempty"` + IgnoreHTTPHandlers *bool `yaml:"ignore-http-handlers,omitempty" toml:"ignore-http-handlers,multiline,omitempty"` } type TestifylintRequireError struct { - FnPattern *string `yaml:"fn-pattern,omitempty" toml:"fn-pattern,omitempty"` + FnPattern *string `yaml:"fn-pattern,omitempty" toml:"fn-pattern,multiline,omitempty"` } type TestifylintSuiteExtraAssertCall struct { - Mode *string `yaml:"mode,omitempty" toml:"mode,omitempty"` + Mode *string `yaml:"mode,omitempty" toml:"mode,multiline,omitempty"` } type TestpackageSettings struct { - SkipRegexp *string `yaml:"skip-regexp,omitempty" toml:"skip-regexp,omitempty"` - AllowPackages []string `yaml:"allow-packages,omitempty" toml:"allow-packages,omitempty"` + SkipRegexp *string `yaml:"skip-regexp,omitempty" toml:"skip-regexp,multiline,omitempty"` + AllowPackages []string `yaml:"allow-packages,omitempty" toml:"allow-packages,multiline,omitempty"` } type ThelperSettings struct { - Test ThelperOptions `yaml:"test,omitempty" toml:"test,omitempty"` - Fuzz ThelperOptions `yaml:"fuzz,omitempty" toml:"fuzz,omitempty"` - Benchmark ThelperOptions `yaml:"benchmark,omitempty" toml:"benchmark,omitempty"` - TB ThelperOptions `yaml:"tb,omitempty" toml:"tb,omitempty"` + Test ThelperOptions `yaml:"test,omitempty" toml:"test,multiline,omitempty"` + Fuzz ThelperOptions `yaml:"fuzz,omitempty" toml:"fuzz,multiline,omitempty"` + Benchmark ThelperOptions `yaml:"benchmark,omitempty" toml:"benchmark,multiline,omitempty"` + TB ThelperOptions `yaml:"tb,omitempty" toml:"tb,multiline,omitempty"` } type ThelperOptions struct { - First *bool `yaml:"first,omitempty" toml:"first,omitempty"` - Name *bool `yaml:"name,omitempty" toml:"name,omitempty"` - Begin *bool `yaml:"begin,omitempty" toml:"begin,omitempty"` + First *bool `yaml:"first,omitempty" toml:"first,multiline,omitempty"` + Name *bool `yaml:"name,omitempty" toml:"name,multiline,omitempty"` + Begin *bool `yaml:"begin,omitempty" toml:"begin,multiline,omitempty"` } type UseStdlibVarsSettings struct { - HTTPMethod *bool `yaml:"http-method,omitempty" toml:"http-method,omitempty"` - HTTPStatusCode *bool `yaml:"http-status-code,omitempty" toml:"http-status-code,omitempty"` - TimeWeekday *bool `yaml:"time-weekday,omitempty" toml:"time-weekday,omitempty"` - TimeMonth *bool `yaml:"time-month,omitempty" toml:"time-month,omitempty"` - TimeLayout *bool `yaml:"time-layout,omitempty" toml:"time-layout,omitempty"` - CryptoHash *bool `yaml:"crypto-hash,omitempty" toml:"crypto-hash,omitempty"` - DefaultRPCPath *bool `yaml:"default-rpc-path,omitempty" toml:"default-rpc-path,omitempty"` - SQLIsolationLevel *bool `yaml:"sql-isolation-level,omitempty" toml:"sql-isolation-level,omitempty"` - TLSSignatureScheme *bool `yaml:"tls-signature-scheme,omitempty" toml:"tls-signature-scheme,omitempty"` - ConstantKind *bool `yaml:"constant-kind,omitempty" toml:"constant-kind,omitempty"` + HTTPMethod *bool `yaml:"http-method,omitempty" toml:"http-method,multiline,omitempty"` + HTTPStatusCode *bool `yaml:"http-status-code,omitempty" toml:"http-status-code,multiline,omitempty"` + TimeWeekday *bool `yaml:"time-weekday,omitempty" toml:"time-weekday,multiline,omitempty"` + TimeMonth *bool `yaml:"time-month,omitempty" toml:"time-month,multiline,omitempty"` + TimeLayout *bool `yaml:"time-layout,omitempty" toml:"time-layout,multiline,omitempty"` + CryptoHash *bool `yaml:"crypto-hash,omitempty" toml:"crypto-hash,multiline,omitempty"` + DefaultRPCPath *bool `yaml:"default-rpc-path,omitempty" toml:"default-rpc-path,multiline,omitempty"` + SQLIsolationLevel *bool `yaml:"sql-isolation-level,omitempty" toml:"sql-isolation-level,multiline,omitempty"` + TLSSignatureScheme *bool `yaml:"tls-signature-scheme,omitempty" toml:"tls-signature-scheme,multiline,omitempty"` + ConstantKind *bool `yaml:"constant-kind,omitempty" toml:"constant-kind,multiline,omitempty"` } type UseTestingSettings struct { - ContextBackground *bool `yaml:"context-background,omitempty" toml:"context-background,omitempty"` - ContextTodo *bool `yaml:"context-todo,omitempty" toml:"context-todo,omitempty"` - OSChdir *bool `yaml:"os-chdir,omitempty" toml:"os-chdir,omitempty"` - OSMkdirTemp *bool `yaml:"os-mkdir-temp,omitempty" toml:"os-mkdir-temp,omitempty"` - OSSetenv *bool `yaml:"os-setenv,omitempty" toml:"os-setenv,omitempty"` - OSTempDir *bool `yaml:"os-temp-dir,omitempty" toml:"os-temp-dir,omitempty"` - OSCreateTemp *bool `yaml:"os-create-temp,omitempty" toml:"os-create-temp,omitempty"` + ContextBackground *bool `yaml:"context-background,omitempty" toml:"context-background,multiline,omitempty"` + ContextTodo *bool `yaml:"context-todo,omitempty" toml:"context-todo,multiline,omitempty"` + OSChdir *bool `yaml:"os-chdir,omitempty" toml:"os-chdir,multiline,omitempty"` + OSMkdirTemp *bool `yaml:"os-mkdir-temp,omitempty" toml:"os-mkdir-temp,multiline,omitempty"` + OSSetenv *bool `yaml:"os-setenv,omitempty" toml:"os-setenv,multiline,omitempty"` + OSTempDir *bool `yaml:"os-temp-dir,omitempty" toml:"os-temp-dir,multiline,omitempty"` + OSCreateTemp *bool `yaml:"os-create-temp,omitempty" toml:"os-create-temp,multiline,omitempty"` } type UnconvertSettings struct { - FastMath *bool `yaml:"fast-math,omitempty" toml:"fast-math,omitempty"` - Safe *bool `yaml:"safe,omitempty" toml:"safe,omitempty"` + FastMath *bool `yaml:"fast-math,omitempty" toml:"fast-math,multiline,omitempty"` + Safe *bool `yaml:"safe,omitempty" toml:"safe,multiline,omitempty"` } type UnparamSettings struct { - CheckExported *bool `yaml:"check-exported,omitempty" toml:"check-exported,omitempty"` + CheckExported *bool `yaml:"check-exported,omitempty" toml:"check-exported,multiline,omitempty"` } type UnusedSettings struct { - FieldWritesAreUses *bool `yaml:"field-writes-are-uses,omitempty" toml:"field-writes-are-uses,omitempty"` - PostStatementsAreReads *bool `yaml:"post-statements-are-reads,omitempty" toml:"post-statements-are-reads,omitempty"` - ExportedFieldsAreUsed *bool `yaml:"exported-fields-are-used,omitempty" toml:"exported-fields-are-used,omitempty"` - ParametersAreUsed *bool `yaml:"parameters-are-used,omitempty" toml:"parameters-are-used,omitempty"` - LocalVariablesAreUsed *bool `yaml:"local-variables-are-used,omitempty" toml:"local-variables-are-used,omitempty"` - GeneratedIsUsed *bool `yaml:"generated-is-used,omitempty" toml:"generated-is-used,omitempty"` + FieldWritesAreUses *bool `yaml:"field-writes-are-uses,omitempty" toml:"field-writes-are-uses,multiline,omitempty"` + PostStatementsAreReads *bool `yaml:"post-statements-are-reads,omitempty" toml:"post-statements-are-reads,multiline,omitempty"` + ExportedFieldsAreUsed *bool `yaml:"exported-fields-are-used,omitempty" toml:"exported-fields-are-used,multiline,omitempty"` + ParametersAreUsed *bool `yaml:"parameters-are-used,omitempty" toml:"parameters-are-used,multiline,omitempty"` + LocalVariablesAreUsed *bool `yaml:"local-variables-are-used,omitempty" toml:"local-variables-are-used,multiline,omitempty"` + GeneratedIsUsed *bool `yaml:"generated-is-used,omitempty" toml:"generated-is-used,multiline,omitempty"` } type VarnamelenSettings struct { - MaxDistance *int `yaml:"max-distance,omitempty" toml:"max-distance,omitempty"` - MinNameLength *int `yaml:"min-name-length,omitempty" toml:"min-name-length,omitempty"` - CheckReceiver *bool `yaml:"check-receiver,omitempty" toml:"check-receiver,omitempty"` - CheckReturn *bool `yaml:"check-return,omitempty" toml:"check-return,omitempty"` - CheckTypeParam *bool `yaml:"check-type-param,omitempty" toml:"check-type-param,omitempty"` - IgnoreNames []string `yaml:"ignore-names,omitempty" toml:"ignore-names,omitempty"` - IgnoreTypeAssertOk *bool `yaml:"ignore-type-assert-ok,omitempty" toml:"ignore-type-assert-ok,omitempty"` - IgnoreMapIndexOk *bool `yaml:"ignore-map-index-ok,omitempty" toml:"ignore-map-index-ok,omitempty"` - IgnoreChanRecvOk *bool `yaml:"ignore-chan-recv-ok,omitempty" toml:"ignore-chan-recv-ok,omitempty"` - IgnoreDecls []string `yaml:"ignore-decls,omitempty" toml:"ignore-decls,omitempty"` + MaxDistance *int `yaml:"max-distance,omitempty" toml:"max-distance,multiline,omitempty"` + MinNameLength *int `yaml:"min-name-length,omitempty" toml:"min-name-length,multiline,omitempty"` + CheckReceiver *bool `yaml:"check-receiver,omitempty" toml:"check-receiver,multiline,omitempty"` + CheckReturn *bool `yaml:"check-return,omitempty" toml:"check-return,multiline,omitempty"` + CheckTypeParam *bool `yaml:"check-type-param,omitempty" toml:"check-type-param,multiline,omitempty"` + IgnoreNames []string `yaml:"ignore-names,omitempty" toml:"ignore-names,multiline,omitempty"` + IgnoreTypeAssertOk *bool `yaml:"ignore-type-assert-ok,omitempty" toml:"ignore-type-assert-ok,multiline,omitempty"` + IgnoreMapIndexOk *bool `yaml:"ignore-map-index-ok,omitempty" toml:"ignore-map-index-ok,multiline,omitempty"` + IgnoreChanRecvOk *bool `yaml:"ignore-chan-recv-ok,omitempty" toml:"ignore-chan-recv-ok,multiline,omitempty"` + IgnoreDecls []string `yaml:"ignore-decls,omitempty" toml:"ignore-decls,multiline,omitempty"` } type WhitespaceSettings struct { - MultiIf *bool `yaml:"multi-if,omitempty" toml:"multi-if,omitempty"` - MultiFunc *bool `yaml:"multi-func,omitempty" toml:"multi-func,omitempty"` + MultiIf *bool `yaml:"multi-if,omitempty" toml:"multi-if,multiline,omitempty"` + MultiFunc *bool `yaml:"multi-func,omitempty" toml:"multi-func,multiline,omitempty"` } type WrapcheckSettings struct { - ExtraIgnoreSigs []string `yaml:"extra-ignore-sigs,omitempty" toml:"extra-ignore-sigs,omitempty"` - IgnoreSigs []string `yaml:"ignore-sigs,omitempty" toml:"ignore-sigs,omitempty"` - IgnoreSigRegexps []string `yaml:"ignore-sig-regexps,omitempty" toml:"ignore-sig-regexps,omitempty"` - IgnorePackageGlobs []string `yaml:"ignore-package-globs,omitempty" toml:"ignore-package-globs,omitempty"` - IgnoreInterfaceRegexps []string `yaml:"ignore-interface-regexps,omitempty" toml:"ignore-interface-regexps,omitempty"` + ExtraIgnoreSigs []string `yaml:"extra-ignore-sigs,omitempty" toml:"extra-ignore-sigs,multiline,omitempty"` + IgnoreSigs []string `yaml:"ignore-sigs,omitempty" toml:"ignore-sigs,multiline,omitempty"` + IgnoreSigRegexps []string `yaml:"ignore-sig-regexps,omitempty" toml:"ignore-sig-regexps,multiline,omitempty"` + IgnorePackageGlobs []string `yaml:"ignore-package-globs,omitempty" toml:"ignore-package-globs,multiline,omitempty"` + IgnoreInterfaceRegexps []string `yaml:"ignore-interface-regexps,omitempty" toml:"ignore-interface-regexps,multiline,omitempty"` } type WSLSettings struct { - StrictAppend *bool `yaml:"strict-append,omitempty" toml:"strict-append,omitempty"` - AllowAssignAndCallCuddle *bool `yaml:"allow-assign-and-call,omitempty" toml:"allow-assign-and-call,omitempty"` - AllowAssignAndAnythingCuddle *bool `yaml:"allow-assign-and-anything,omitempty" toml:"allow-assign-and-anything,omitempty"` - AllowMultiLineAssignCuddle *bool `yaml:"allow-multiline-assign,omitempty" toml:"allow-multiline-assign,omitempty"` - ForceCaseTrailingWhitespaceLimit *int `yaml:"force-case-trailing-whitespace,omitempty" toml:"force-case-trailing-whitespace,omitempty"` - AllowTrailingComment *bool `yaml:"allow-trailing-comment,omitempty" toml:"allow-trailing-comment,omitempty"` - AllowSeparatedLeadingComment *bool `yaml:"allow-separated-leading-comment,omitempty" toml:"allow-separated-leading-comment,omitempty"` - AllowCuddleDeclaration *bool `yaml:"allow-cuddle-declarations,omitempty" toml:"allow-cuddle-declarations,omitempty"` - AllowCuddleWithCalls []string `yaml:"allow-cuddle-with-calls,omitempty" toml:"allow-cuddle-with-calls,omitempty"` - AllowCuddleWithRHS []string `yaml:"allow-cuddle-with-rhs,omitempty" toml:"allow-cuddle-with-rhs,omitempty"` - ForceCuddleErrCheckAndAssign *bool `yaml:"force-err-cuddling,omitempty" toml:"force-err-cuddling,omitempty"` - ErrorVariableNames []string `yaml:"error-variable-names,omitempty" toml:"error-variable-names,omitempty"` - ForceExclusiveShortDeclarations *bool `yaml:"force-short-decl-cuddling,omitempty" toml:"force-short-decl-cuddling,omitempty"` + StrictAppend *bool `yaml:"strict-append,omitempty" toml:"strict-append,multiline,omitempty"` + AllowAssignAndCallCuddle *bool `yaml:"allow-assign-and-call,omitempty" toml:"allow-assign-and-call,multiline,omitempty"` + AllowAssignAndAnythingCuddle *bool `yaml:"allow-assign-and-anything,omitempty" toml:"allow-assign-and-anything,multiline,omitempty"` + AllowMultiLineAssignCuddle *bool `yaml:"allow-multiline-assign,omitempty" toml:"allow-multiline-assign,multiline,omitempty"` + ForceCaseTrailingWhitespaceLimit *int `yaml:"force-case-trailing-whitespace,omitempty" toml:"force-case-trailing-whitespace,multiline,omitempty"` + AllowTrailingComment *bool `yaml:"allow-trailing-comment,omitempty" toml:"allow-trailing-comment,multiline,omitempty"` + AllowSeparatedLeadingComment *bool `yaml:"allow-separated-leading-comment,omitempty" toml:"allow-separated-leading-comment,multiline,omitempty"` + AllowCuddleDeclaration *bool `yaml:"allow-cuddle-declarations,omitempty" toml:"allow-cuddle-declarations,multiline,omitempty"` + AllowCuddleWithCalls []string `yaml:"allow-cuddle-with-calls,omitempty" toml:"allow-cuddle-with-calls,multiline,omitempty"` + AllowCuddleWithRHS []string `yaml:"allow-cuddle-with-rhs,omitempty" toml:"allow-cuddle-with-rhs,multiline,omitempty"` + ForceCuddleErrCheckAndAssign *bool `yaml:"force-err-cuddling,omitempty" toml:"force-err-cuddling,multiline,omitempty"` + ErrorVariableNames []string `yaml:"error-variable-names,omitempty" toml:"error-variable-names,multiline,omitempty"` + ForceExclusiveShortDeclarations *bool `yaml:"force-short-decl-cuddling,omitempty" toml:"force-short-decl-cuddling,multiline,omitempty"` } type CustomLinterSettings struct { - Type *string `yaml:"type,omitempty" toml:"type,omitempty"` + Type *string `yaml:"type,omitempty" toml:"type,multiline,omitempty"` - Path *string `yaml:"path,omitempty" toml:"path,omitempty"` + Path *string `yaml:"path,omitempty" toml:"path,multiline,omitempty"` - Description *string `yaml:"description,omitempty" toml:"description,omitempty"` + Description *string `yaml:"description,omitempty" toml:"description,multiline,omitempty"` - OriginalURL *string `yaml:"original-url,omitempty" toml:"original-url,omitempty"` + OriginalURL *string `yaml:"original-url,omitempty" toml:"original-url,multiline,omitempty"` - Settings any `yaml:"settings,omitempty" toml:"settings,omitempty"` + Settings any `yaml:"settings,omitempty" toml:"settings,multiline,omitempty"` } diff --git a/pkg/commands/internal/migrate/versiontwo/output.go b/pkg/commands/internal/migrate/versiontwo/output.go index 33211f08fb5c..ed6bab7e375d 100644 --- a/pkg/commands/internal/migrate/versiontwo/output.go +++ b/pkg/commands/internal/migrate/versiontwo/output.go @@ -3,8 +3,8 @@ package versiontwo type Output struct { - Formats Formats `yaml:"formats,omitempty" toml:"formats,omitempty"` - SortOrder []string `yaml:"sort-order,omitempty" toml:"sort-order,omitempty"` - PathPrefix *string `yaml:"path-prefix,omitempty" toml:"path-prefix,omitempty"` - ShowStats *bool `yaml:"show-stats,omitempty" toml:"show-stats,omitempty"` + Formats Formats `yaml:"formats,omitempty" toml:"formats,multiline,omitempty"` + SortOrder []string `yaml:"sort-order,omitempty" toml:"sort-order,multiline,omitempty"` + PathPrefix *string `yaml:"path-prefix,omitempty" toml:"path-prefix,multiline,omitempty"` + ShowStats *bool `yaml:"show-stats,omitempty" toml:"show-stats,multiline,omitempty"` } diff --git a/pkg/commands/internal/migrate/versiontwo/output_formats.go b/pkg/commands/internal/migrate/versiontwo/output_formats.go index 699f12c6385c..dbc5665f78ab 100644 --- a/pkg/commands/internal/migrate/versiontwo/output_formats.go +++ b/pkg/commands/internal/migrate/versiontwo/output_formats.go @@ -3,35 +3,35 @@ package versiontwo type Formats struct { - Text Text `yaml:"text,omitempty" toml:"text,omitempty"` - JSON SimpleFormat `yaml:"json,omitempty" toml:"json,omitempty"` - Tab Tab `yaml:"tab,omitempty" toml:"tab,omitempty"` - HTML SimpleFormat `yaml:"html,omitempty" toml:"html,omitempty"` - Checkstyle SimpleFormat `yaml:"checkstyle,omitempty" toml:"checkstyle,omitempty"` - CodeClimate SimpleFormat `yaml:"code-climate,omitempty" toml:"code-climate,omitempty"` - JUnitXML JUnitXML `yaml:"junit-xml,omitempty" toml:"junit-xml,omitempty"` - TeamCity SimpleFormat `yaml:"teamcity,omitempty" toml:"teamcity,omitempty"` - Sarif SimpleFormat `yaml:"sarif,omitempty" toml:"sarif,omitempty"` + Text Text `yaml:"text,omitempty" toml:"text,multiline,omitempty"` + JSON SimpleFormat `yaml:"json,omitempty" toml:"json,multiline,omitempty"` + Tab Tab `yaml:"tab,omitempty" toml:"tab,multiline,omitempty"` + HTML SimpleFormat `yaml:"html,omitempty" toml:"html,multiline,omitempty"` + Checkstyle SimpleFormat `yaml:"checkstyle,omitempty" toml:"checkstyle,multiline,omitempty"` + CodeClimate SimpleFormat `yaml:"code-climate,omitempty" toml:"code-climate,multiline,omitempty"` + JUnitXML JUnitXML `yaml:"junit-xml,omitempty" toml:"junit-xml,multiline,omitempty"` + TeamCity SimpleFormat `yaml:"teamcity,omitempty" toml:"teamcity,multiline,omitempty"` + Sarif SimpleFormat `yaml:"sarif,omitempty" toml:"sarif,multiline,omitempty"` } type SimpleFormat struct { - Path *string `yaml:"path,omitempty" toml:"path,omitempty"` + Path *string `yaml:"path,omitempty" toml:"path,multiline,omitempty"` } type Text struct { SimpleFormat `yaml:",inline"` - PrintLinterName *bool `yaml:"print-linter-name,omitempty" toml:"print-linter-name,omitempty"` - PrintIssuedLine *bool `yaml:"print-issued-lines,omitempty" toml:"print-issued-lines,omitempty"` - Colors *bool `yaml:"colors,omitempty" toml:"colors,omitempty"` + PrintLinterName *bool `yaml:"print-linter-name,omitempty" toml:"print-linter-name,multiline,omitempty"` + PrintIssuedLine *bool `yaml:"print-issued-lines,omitempty" toml:"print-issued-lines,multiline,omitempty"` + Colors *bool `yaml:"colors,omitempty" toml:"colors,multiline,omitempty"` } type Tab struct { SimpleFormat `yaml:",inline"` - PrintLinterName *bool `yaml:"print-linter-name,omitempty" toml:"print-linter-name,omitempty"` - Colors *bool `yaml:"colors,omitempty" toml:"colors,omitempty"` + PrintLinterName *bool `yaml:"print-linter-name,omitempty" toml:"print-linter-name,multiline,omitempty"` + Colors *bool `yaml:"colors,omitempty" toml:"colors,multiline,omitempty"` } type JUnitXML struct { SimpleFormat `yaml:",inline"` - Extended *bool `yaml:"extended,omitempty" toml:"extended,omitempty"` + Extended *bool `yaml:"extended,omitempty" toml:"extended,multiline,omitempty"` } diff --git a/pkg/commands/internal/migrate/versiontwo/run.go b/pkg/commands/internal/migrate/versiontwo/run.go index afb8af6516ca..501d3e9fca23 100644 --- a/pkg/commands/internal/migrate/versiontwo/run.go +++ b/pkg/commands/internal/migrate/versiontwo/run.go @@ -7,20 +7,20 @@ import ( ) type Run struct { - Timeout time.Duration `yaml:"timeout,omitempty" toml:"timeout,omitempty"` + Timeout time.Duration `yaml:"timeout,omitempty" toml:"timeout,multiline,omitempty"` - Concurrency *int `yaml:"concurrency,omitempty" toml:"concurrency,omitempty"` + Concurrency *int `yaml:"concurrency,omitempty" toml:"concurrency,multiline,omitempty"` - Go *string `yaml:"go,omitempty" toml:"go,omitempty"` + Go *string `yaml:"go,omitempty" toml:"go,multiline,omitempty"` - RelativePathMode *string `yaml:"relative-path-mode,omitempty" toml:"relative-path-mode,omitempty"` + RelativePathMode *string `yaml:"relative-path-mode,omitempty" toml:"relative-path-mode,multiline,omitempty"` - BuildTags []string `yaml:"build-tags,omitempty" toml:"build-tags,omitempty"` - ModulesDownloadMode *string `yaml:"modules-download-mode,omitempty" toml:"modules-download-mode,omitempty"` + BuildTags []string `yaml:"build-tags,omitempty" toml:"build-tags,multiline,omitempty"` + ModulesDownloadMode *string `yaml:"modules-download-mode,omitempty" toml:"modules-download-mode,multiline,omitempty"` - ExitCodeIfIssuesFound *int `yaml:"issues-exit-code,omitempty" toml:"issues-exit-code,omitempty"` - AnalyzeTests *bool `yaml:"tests,omitempty" toml:"tests,omitempty"` + ExitCodeIfIssuesFound *int `yaml:"issues-exit-code,omitempty" toml:"issues-exit-code,multiline,omitempty"` + AnalyzeTests *bool `yaml:"tests,omitempty" toml:"tests,multiline,omitempty"` - AllowParallelRunners *bool `yaml:"allow-parallel-runners,omitempty" toml:"allow-parallel-runners,omitempty"` - AllowSerialRunners *bool `yaml:"allow-serial-runners,omitempty" toml:"allow-serial-runners,omitempty"` + AllowParallelRunners *bool `yaml:"allow-parallel-runners,omitempty" toml:"allow-parallel-runners,multiline,omitempty"` + AllowSerialRunners *bool `yaml:"allow-serial-runners,omitempty" toml:"allow-serial-runners,multiline,omitempty"` } diff --git a/pkg/commands/internal/migrate/versiontwo/severity.go b/pkg/commands/internal/migrate/versiontwo/severity.go index 486dece00aa9..248ddf1f1825 100644 --- a/pkg/commands/internal/migrate/versiontwo/severity.go +++ b/pkg/commands/internal/migrate/versiontwo/severity.go @@ -3,11 +3,11 @@ package versiontwo type Severity struct { - Default *string `yaml:"default,omitempty" toml:"default,omitempty"` - Rules []SeverityRule `yaml:"rules,omitempty" toml:"rules,omitempty"` + Default *string `yaml:"default,omitempty" toml:"default,multiline,omitempty"` + Rules []SeverityRule `yaml:"rules,omitempty" toml:"rules,multiline,omitempty"` } type SeverityRule struct { BaseRule `yaml:",inline"` - Severity *string `yaml:"severity,omitempty" toml:"severity,omitempty"` + Severity *string `yaml:"severity,omitempty" toml:"severity,multiline,omitempty"` } From 8883832dde15d05eaa20bd563f5823dbe3927cc5 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Mon, 10 Mar 2025 01:03:29 +0100 Subject: [PATCH 28/30] chore: split test files by extensions --- .../internal/migrate/testdata/{ => json}/empty.golden.json | 0 pkg/commands/internal/migrate/testdata/{ => json}/empty.json | 0 .../internal/migrate/testdata/{ => toml}/empty.golden.toml | 0 pkg/commands/internal/migrate/testdata/{ => toml}/empty.toml | 0 .../testdata/{ => toml}/linters-settings_goheader.golden.toml | 0 .../migrate/testdata/{ => toml}/linters-settings_goheader.toml | 0 .../internal/migrate/testdata/{ => yaml}/empty.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/empty.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_01_a.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_01_a.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_01_b.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_01_b.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_02_a.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_02_a.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_02_b.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_02_b.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_04_a.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_04_a.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_04_b.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_04_b.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_05_a.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_05_a.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_05_b.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_05_b.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_05_c.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_05_c.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_06_a.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_a.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_06_b.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_b.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_06_c.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_c.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_06_d.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_d.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_06_e.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_e.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_06_f.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_f.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_06_g.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_g.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_07_a.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_07_a.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_07_b.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_07_b.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_08_a.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_08_a.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_08_b.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_08_b.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_09_a.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_09_a.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_09_b.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_09_b.yml | 0 .../internal/migrate/testdata/{ => yaml}/issues_10.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/issues_10.yml | 0 .../testdata/{ => yaml}/linters-settings_asasalint.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_asasalint.yml | 0 .../testdata/{ => yaml}/linters-settings_bidichk.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_bidichk.yml | 0 .../testdata/{ => yaml}/linters-settings_copyloopvar.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_copyloopvar.yml | 0 .../testdata/{ => yaml}/linters-settings_custom.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_custom.yml | 0 .../testdata/{ => yaml}/linters-settings_cyclop.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_cyclop.yml | 0 .../testdata/{ => yaml}/linters-settings_decorder.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_decorder.yml | 0 .../testdata/{ => yaml}/linters-settings_depguard.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_depguard.yml | 0 .../testdata/{ => yaml}/linters-settings_dogsled.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_dogsled.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_dupl.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_dupl.yml | 0 .../testdata/{ => yaml}/linters-settings_dupword.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_dupword.yml | 0 .../testdata/{ => yaml}/linters-settings_errcheck.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_errcheck.yml | 0 .../testdata/{ => yaml}/linters-settings_errchkjson.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_errchkjson.yml | 0 .../testdata/{ => yaml}/linters-settings_errorlint.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_errorlint.yml | 0 .../testdata/{ => yaml}/linters-settings_exhaustive.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_exhaustive.yml | 0 .../testdata/{ => yaml}/linters-settings_exhaustruct.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_exhaustruct.yml | 0 .../testdata/{ => yaml}/linters-settings_fatcontext.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_fatcontext.yml | 0 .../testdata/{ => yaml}/linters-settings_forbidigo.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_forbidigo.yml | 0 .../testdata/{ => yaml}/linters-settings_funlen.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_funlen.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_gci.golden.yml | 0 .../internal/migrate/testdata/{ => yaml}/linters-settings_gci.yml | 0 .../testdata/{ => yaml}/linters-settings_ginkgolinter.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_ginkgolinter.yml | 0 .../{ => yaml}/linters-settings_gochecksumtype.golden.yml | 0 .../testdata/{ => yaml}/linters-settings_gochecksumtype.yml | 0 .../testdata/{ => yaml}/linters-settings_gocognit.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_gocognit.yml | 0 .../testdata/{ => yaml}/linters-settings_goconst.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_goconst.yml | 0 .../testdata/{ => yaml}/linters-settings_gocritic.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_gocritic.yml | 0 .../testdata/{ => yaml}/linters-settings_gocyclo.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_gocyclo.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_godot.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_godot.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_godox.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_godox.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_gofmt.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_gofmt.yml | 0 .../testdata/{ => yaml}/linters-settings_gofumpt.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_gofumpt.yml | 0 .../testdata/{ => yaml}/linters-settings_goheader.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_goheader.yml | 0 .../testdata/{ => yaml}/linters-settings_goimports.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_goimports.yml | 0 .../{ => yaml}/linters-settings_gomoddirectives.golden.yml | 0 .../testdata/{ => yaml}/linters-settings_gomoddirectives.yml | 0 .../testdata/{ => yaml}/linters-settings_gomodguard.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_gomodguard.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_gosec.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_gosec.yml | 0 .../testdata/{ => yaml}/linters-settings_gosimple.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_gosimple.yml | 0 .../testdata/{ => yaml}/linters-settings_gosmopolitan.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_gosmopolitan.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_govet.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_govet.yml | 0 .../testdata/{ => yaml}/linters-settings_grouper.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_grouper.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_iface.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_iface.yml | 0 .../testdata/{ => yaml}/linters-settings_importas.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_importas.yml | 0 .../testdata/{ => yaml}/linters-settings_inamedparam.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_inamedparam.yml | 0 .../{ => yaml}/linters-settings_interfacebloat.golden.yml | 0 .../testdata/{ => yaml}/linters-settings_interfacebloat.yml | 0 .../testdata/{ => yaml}/linters-settings_ireturn.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_ireturn.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_lll.golden.yml | 0 .../internal/migrate/testdata/{ => yaml}/linters-settings_lll.yml | 0 .../testdata/{ => yaml}/linters-settings_loggercheck.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_loggercheck.yml | 0 .../testdata/{ => yaml}/linters-settings_maintidx.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_maintidx.yml | 0 .../testdata/{ => yaml}/linters-settings_makezero.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_makezero.yml | 0 .../testdata/{ => yaml}/linters-settings_misspell.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_misspell.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_mnd.golden.yml | 0 .../internal/migrate/testdata/{ => yaml}/linters-settings_mnd.yml | 0 .../testdata/{ => yaml}/linters-settings_musttag.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_musttag.yml | 0 .../testdata/{ => yaml}/linters-settings_nakedret.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_nakedret.yml | 0 .../testdata/{ => yaml}/linters-settings_nestif.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_nestif.yml | 0 .../testdata/{ => yaml}/linters-settings_nilnil.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_nilnil.yml | 0 .../testdata/{ => yaml}/linters-settings_nlreturn.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_nlreturn.yml | 0 .../testdata/{ => yaml}/linters-settings_nolintlint.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_nolintlint.yml | 0 .../{ => yaml}/linters-settings_nonamedreturns.golden.yml | 0 .../testdata/{ => yaml}/linters-settings_nonamedreturns.yml | 0 .../testdata/{ => yaml}/linters-settings_paralleltest.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_paralleltest.yml | 0 .../testdata/{ => yaml}/linters-settings_perfsprint.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_perfsprint.yml | 0 .../testdata/{ => yaml}/linters-settings_prealloc.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_prealloc.yml | 0 .../testdata/{ => yaml}/linters-settings_predeclared.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_predeclared.yml | 0 .../testdata/{ => yaml}/linters-settings_promlinter.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_promlinter.yml | 0 .../testdata/{ => yaml}/linters-settings_protogetter.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_protogetter.yml | 0 .../testdata/{ => yaml}/linters-settings_reassign.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_reassign.yml | 0 .../testdata/{ => yaml}/linters-settings_recvcheck.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_recvcheck.yml | 0 .../testdata/{ => yaml}/linters-settings_revive.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_revive.yml | 0 .../testdata/{ => yaml}/linters-settings_rowserrcheck.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_rowserrcheck.yml | 0 .../testdata/{ => yaml}/linters-settings_sloglint.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_sloglint.yml | 0 .../testdata/{ => yaml}/linters-settings_spancheck.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_spancheck.yml | 0 .../testdata/{ => yaml}/linters-settings_staticcheck.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_staticcheck.yml | 0 .../testdata/{ => yaml}/linters-settings_stylecheck.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_stylecheck.yml | 0 .../testdata/{ => yaml}/linters-settings_tagalign.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_tagalign.yml | 0 .../testdata/{ => yaml}/linters-settings_tagliatelle.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_tagliatelle.yml | 0 .../testdata/{ => yaml}/linters-settings_testifylint.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_testifylint.yml | 0 .../testdata/{ => yaml}/linters-settings_testpackage.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_testpackage.yml | 0 .../testdata/{ => yaml}/linters-settings_thelper.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_thelper.yml | 0 .../testdata/{ => yaml}/linters-settings_unconvert.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_unconvert.yml | 0 .../testdata/{ => yaml}/linters-settings_unparam.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_unparam.yml | 0 .../testdata/{ => yaml}/linters-settings_unused.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_unused.yml | 0 .../testdata/{ => yaml}/linters-settings_usestdlibvars.golden.yml | 0 .../testdata/{ => yaml}/linters-settings_usestdlibvars.yml | 0 .../testdata/{ => yaml}/linters-settings_usetesting.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_usetesting.yml | 0 .../testdata/{ => yaml}/linters-settings_varnamelen.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_varnamelen.yml | 0 .../testdata/{ => yaml}/linters-settings_whitespace.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_whitespace.yml | 0 .../testdata/{ => yaml}/linters-settings_wrapcheck.golden.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_wrapcheck.yml | 0 .../migrate/testdata/{ => yaml}/linters-settings_wsl.golden.yml | 0 .../internal/migrate/testdata/{ => yaml}/linters-settings_wsl.yml | 0 .../internal/migrate/testdata/{ => yaml}/linters_01.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/linters_01.yml | 0 .../internal/migrate/testdata/{ => yaml}/linters_02.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/linters_02.yml | 0 .../internal/migrate/testdata/{ => yaml}/linters_03.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/linters_03.yml | 0 .../internal/migrate/testdata/{ => yaml}/linters_04.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/linters_04.yml | 0 .../internal/migrate/testdata/{ => yaml}/linters_05.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/linters_05.yml | 0 .../internal/migrate/testdata/{ => yaml}/linters_06.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/linters_06.yml | 0 .../internal/migrate/testdata/{ => yaml}/linters_07.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/linters_07.yml | 0 .../internal/migrate/testdata/{ => yaml}/linters_08.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/linters_08.yml | 0 .../internal/migrate/testdata/{ => yaml}/linters_09.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/linters_09.yml | 0 .../internal/migrate/testdata/{ => yaml}/linters_10.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/linters_10.yml | 0 .../internal/migrate/testdata/{ => yaml}/linters_11.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/linters_11.yml | 0 .../internal/migrate/testdata/{ => yaml}/linters_12.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/linters_12.yml | 0 .../internal/migrate/testdata/{ => yaml}/output_01_a.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_a.yml | 0 .../internal/migrate/testdata/{ => yaml}/output_01_b.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_b.yml | 0 .../internal/migrate/testdata/{ => yaml}/output_01_c.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_c.yml | 0 .../internal/migrate/testdata/{ => yaml}/output_01_d.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_d.yml | 0 .../internal/migrate/testdata/{ => yaml}/output_01_f.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_f.yml | 0 .../internal/migrate/testdata/{ => yaml}/output_01_g.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_g.yml | 0 .../internal/migrate/testdata/{ => yaml}/output_01_h.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_h.yml | 0 .../internal/migrate/testdata/{ => yaml}/output_01_i.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_i.yml | 0 .../internal/migrate/testdata/{ => yaml}/output_01_j.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_j.yml | 0 .../internal/migrate/testdata/{ => yaml}/output_01_k.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_k.yml | 0 .../internal/migrate/testdata/{ => yaml}/output_01_l.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_l.yml | 0 .../internal/migrate/testdata/{ => yaml}/output_01_m.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_m.yml | 0 .../internal/migrate/testdata/{ => yaml}/output_01_o.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_o.yml | 0 .../internal/migrate/testdata/{ => yaml}/output_01_p.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_p.yml | 0 .../internal/migrate/testdata/{ => yaml}/output_02.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/output_02.yml | 0 .../internal/migrate/testdata/{ => yaml}/output_03.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/output_03.yml | 0 .../internal/migrate/testdata/{ => yaml}/output_04.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/output_04.yml | 0 .../internal/migrate/testdata/{ => yaml}/run_01.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/run_01.yml | 0 .../internal/migrate/testdata/{ => yaml}/run_02_a.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/run_02_a.yml | 0 .../internal/migrate/testdata/{ => yaml}/run_02_b.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/run_02_b.yml | 0 .../internal/migrate/testdata/{ => yaml}/run_03_a.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/run_03_a.yml | 0 .../internal/migrate/testdata/{ => yaml}/run_03_b.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/run_03_b.yml | 0 .../internal/migrate/testdata/{ => yaml}/run_04_a.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/run_04_a.yml | 0 .../internal/migrate/testdata/{ => yaml}/run_04_b.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/run_04_b.yml | 0 .../internal/migrate/testdata/{ => yaml}/run_05.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/run_05.yml | 0 .../internal/migrate/testdata/{ => yaml}/run_06.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/run_06.yml | 0 .../internal/migrate/testdata/{ => yaml}/run_07.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/run_07.yml | 0 .../internal/migrate/testdata/{ => yaml}/run_08.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/run_08.yml | 0 .../internal/migrate/testdata/{ => yaml}/run_09_a.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/run_09_a.yml | 0 .../internal/migrate/testdata/{ => yaml}/run_09_b.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/run_09_b.yml | 0 .../internal/migrate/testdata/{ => yaml}/run_10.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/run_10.yml | 0 .../internal/migrate/testdata/{ => yaml}/severity_01.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/severity_01.yml | 0 .../internal/migrate/testdata/{ => yaml}/severity_02.golden.yml | 0 pkg/commands/internal/migrate/testdata/{ => yaml}/severity_02.yml | 0 .../migrate/testdata/{ => yaml}/unknown-fields.golden.yml | 0 .../internal/migrate/testdata/{ => yaml}/unknown-fields.yml | 0 314 files changed, 0 insertions(+), 0 deletions(-) rename pkg/commands/internal/migrate/testdata/{ => json}/empty.golden.json (100%) rename pkg/commands/internal/migrate/testdata/{ => json}/empty.json (100%) rename pkg/commands/internal/migrate/testdata/{ => toml}/empty.golden.toml (100%) rename pkg/commands/internal/migrate/testdata/{ => toml}/empty.toml (100%) rename pkg/commands/internal/migrate/testdata/{ => toml}/linters-settings_goheader.golden.toml (100%) rename pkg/commands/internal/migrate/testdata/{ => toml}/linters-settings_goheader.toml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/empty.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/empty.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_01_a.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_01_a.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_01_b.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_01_b.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_02_a.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_02_a.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_02_b.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_02_b.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_04_a.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_04_a.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_04_b.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_04_b.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_05_a.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_05_a.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_05_b.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_05_b.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_05_c.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_05_c.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_a.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_a.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_b.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_b.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_c.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_c.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_d.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_d.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_e.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_e.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_f.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_f.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_g.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_06_g.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_07_a.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_07_a.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_07_b.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_07_b.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_08_a.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_08_a.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_08_b.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_08_b.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_09_a.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_09_a.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_09_b.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_09_b.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_10.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/issues_10.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_asasalint.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_asasalint.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_bidichk.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_bidichk.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_copyloopvar.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_copyloopvar.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_custom.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_custom.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_cyclop.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_cyclop.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_decorder.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_decorder.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_depguard.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_depguard.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_dogsled.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_dogsled.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_dupl.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_dupl.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_dupword.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_dupword.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_errcheck.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_errcheck.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_errchkjson.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_errchkjson.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_errorlint.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_errorlint.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_exhaustive.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_exhaustive.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_exhaustruct.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_exhaustruct.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_fatcontext.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_fatcontext.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_forbidigo.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_forbidigo.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_funlen.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_funlen.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gci.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gci.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_ginkgolinter.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_ginkgolinter.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gochecksumtype.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gochecksumtype.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gocognit.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gocognit.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_goconst.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_goconst.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gocritic.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gocritic.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gocyclo.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gocyclo.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_godot.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_godot.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_godox.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_godox.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gofmt.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gofmt.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gofumpt.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gofumpt.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_goheader.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_goheader.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_goimports.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_goimports.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gomoddirectives.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gomoddirectives.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gomodguard.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gomodguard.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gosec.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gosec.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gosimple.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gosimple.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gosmopolitan.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_gosmopolitan.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_govet.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_govet.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_grouper.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_grouper.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_iface.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_iface.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_importas.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_importas.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_inamedparam.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_inamedparam.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_interfacebloat.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_interfacebloat.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_ireturn.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_ireturn.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_lll.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_lll.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_loggercheck.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_loggercheck.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_maintidx.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_maintidx.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_makezero.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_makezero.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_misspell.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_misspell.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_mnd.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_mnd.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_musttag.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_musttag.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_nakedret.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_nakedret.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_nestif.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_nestif.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_nilnil.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_nilnil.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_nlreturn.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_nlreturn.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_nolintlint.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_nolintlint.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_nonamedreturns.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_nonamedreturns.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_paralleltest.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_paralleltest.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_perfsprint.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_perfsprint.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_prealloc.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_prealloc.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_predeclared.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_predeclared.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_promlinter.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_promlinter.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_protogetter.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_protogetter.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_reassign.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_reassign.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_recvcheck.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_recvcheck.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_revive.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_revive.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_rowserrcheck.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_rowserrcheck.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_sloglint.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_sloglint.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_spancheck.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_spancheck.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_staticcheck.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_staticcheck.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_stylecheck.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_stylecheck.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_tagalign.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_tagalign.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_tagliatelle.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_tagliatelle.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_testifylint.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_testifylint.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_testpackage.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_testpackage.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_thelper.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_thelper.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_unconvert.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_unconvert.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_unparam.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_unparam.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_unused.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_unused.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_usestdlibvars.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_usestdlibvars.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_usetesting.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_usetesting.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_varnamelen.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_varnamelen.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_whitespace.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_whitespace.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_wrapcheck.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_wrapcheck.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_wsl.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters-settings_wsl.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_01.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_01.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_02.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_02.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_03.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_03.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_04.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_04.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_05.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_05.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_06.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_06.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_07.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_07.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_08.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_08.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_09.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_09.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_10.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_10.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_11.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_11.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_12.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/linters_12.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_a.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_a.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_b.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_b.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_c.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_c.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_d.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_d.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_f.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_f.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_g.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_g.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_h.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_h.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_i.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_i.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_j.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_j.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_k.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_k.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_l.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_l.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_m.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_m.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_o.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_o.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_p.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_01_p.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_02.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_02.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_03.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_03.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_04.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/output_04.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_01.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_01.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_02_a.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_02_a.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_02_b.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_02_b.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_03_a.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_03_a.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_03_b.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_03_b.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_04_a.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_04_a.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_04_b.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_04_b.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_05.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_05.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_06.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_06.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_07.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_07.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_08.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_08.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_09_a.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_09_a.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_09_b.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_09_b.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_10.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/run_10.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/severity_01.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/severity_01.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/severity_02.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/severity_02.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/unknown-fields.golden.yml (100%) rename pkg/commands/internal/migrate/testdata/{ => yaml}/unknown-fields.yml (100%) diff --git a/pkg/commands/internal/migrate/testdata/empty.golden.json b/pkg/commands/internal/migrate/testdata/json/empty.golden.json similarity index 100% rename from pkg/commands/internal/migrate/testdata/empty.golden.json rename to pkg/commands/internal/migrate/testdata/json/empty.golden.json diff --git a/pkg/commands/internal/migrate/testdata/empty.json b/pkg/commands/internal/migrate/testdata/json/empty.json similarity index 100% rename from pkg/commands/internal/migrate/testdata/empty.json rename to pkg/commands/internal/migrate/testdata/json/empty.json diff --git a/pkg/commands/internal/migrate/testdata/empty.golden.toml b/pkg/commands/internal/migrate/testdata/toml/empty.golden.toml similarity index 100% rename from pkg/commands/internal/migrate/testdata/empty.golden.toml rename to pkg/commands/internal/migrate/testdata/toml/empty.golden.toml diff --git a/pkg/commands/internal/migrate/testdata/empty.toml b/pkg/commands/internal/migrate/testdata/toml/empty.toml similarity index 100% rename from pkg/commands/internal/migrate/testdata/empty.toml rename to pkg/commands/internal/migrate/testdata/toml/empty.toml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_goheader.golden.toml b/pkg/commands/internal/migrate/testdata/toml/linters-settings_goheader.golden.toml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_goheader.golden.toml rename to pkg/commands/internal/migrate/testdata/toml/linters-settings_goheader.golden.toml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_goheader.toml b/pkg/commands/internal/migrate/testdata/toml/linters-settings_goheader.toml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_goheader.toml rename to pkg/commands/internal/migrate/testdata/toml/linters-settings_goheader.toml diff --git a/pkg/commands/internal/migrate/testdata/empty.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/empty.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/empty.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/empty.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/empty.yml b/pkg/commands/internal/migrate/testdata/yaml/empty.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/empty.yml rename to pkg/commands/internal/migrate/testdata/yaml/empty.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_01_a.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_01_a.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_01_a.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_01_a.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_01_a.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_01_a.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_01_a.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_01_a.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_01_b.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_01_b.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_01_b.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_01_b.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_01_b.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_01_b.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_01_b.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_01_b.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_02_a.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_02_a.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_02_a.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_02_a.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_02_a.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_02_a.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_02_a.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_02_a.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_02_b.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_02_b.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_02_b.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_02_b.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_02_b.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_02_b.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_02_b.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_02_b.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_04_a.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_04_a.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_04_a.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_04_a.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_04_a.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_04_a.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_04_a.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_04_a.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_04_b.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_04_b.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_04_b.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_04_b.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_04_b.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_04_b.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_04_b.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_04_b.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_05_a.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_05_a.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_05_a.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_05_a.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_05_a.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_05_a.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_05_a.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_05_a.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_05_b.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_05_b.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_05_b.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_05_b.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_05_b.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_05_b.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_05_b.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_05_b.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_05_c.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_05_c.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_05_c.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_05_c.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_05_c.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_05_c.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_05_c.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_05_c.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_06_a.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_06_a.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_06_a.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_06_a.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_06_a.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_06_a.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_06_a.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_06_a.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_06_b.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_06_b.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_06_b.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_06_b.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_06_b.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_06_b.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_06_b.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_06_b.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_06_c.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_06_c.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_06_c.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_06_c.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_06_c.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_06_c.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_06_c.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_06_c.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_06_d.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_06_d.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_06_d.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_06_d.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_06_d.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_06_d.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_06_d.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_06_d.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_06_e.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_06_e.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_06_e.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_06_e.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_06_e.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_06_e.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_06_e.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_06_e.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_06_f.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_06_f.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_06_f.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_06_f.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_06_f.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_06_f.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_06_f.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_06_f.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_06_g.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_06_g.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_06_g.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_06_g.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_06_g.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_06_g.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_06_g.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_06_g.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_07_a.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_07_a.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_07_a.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_07_a.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_07_a.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_07_a.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_07_a.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_07_a.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_07_b.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_07_b.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_07_b.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_07_b.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_07_b.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_07_b.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_07_b.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_07_b.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_08_a.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_08_a.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_08_a.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_08_a.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_08_a.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_08_a.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_08_a.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_08_a.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_08_b.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_08_b.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_08_b.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_08_b.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_08_b.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_08_b.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_08_b.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_08_b.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_09_a.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_09_a.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_09_a.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_09_a.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_09_a.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_09_a.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_09_a.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_09_a.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_09_b.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_09_b.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_09_b.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_09_b.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_09_b.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_09_b.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_09_b.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_09_b.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_10.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_10.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_10.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_10.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/issues_10.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_10.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/issues_10.yml rename to pkg/commands/internal/migrate/testdata/yaml/issues_10.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_asasalint.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_asasalint.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_asasalint.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_asasalint.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_asasalint.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_asasalint.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_asasalint.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_asasalint.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_bidichk.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_bidichk.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_bidichk.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_bidichk.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_bidichk.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_bidichk.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_bidichk.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_bidichk.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_copyloopvar.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_copyloopvar.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_copyloopvar.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_copyloopvar.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_copyloopvar.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_copyloopvar.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_copyloopvar.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_copyloopvar.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_custom.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_custom.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_custom.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_custom.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_custom.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_custom.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_custom.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_custom.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_cyclop.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_cyclop.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_cyclop.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_cyclop.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_cyclop.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_cyclop.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_cyclop.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_cyclop.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_decorder.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_decorder.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_decorder.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_decorder.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_decorder.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_decorder.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_decorder.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_decorder.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_depguard.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_depguard.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_depguard.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_depguard.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_depguard.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_depguard.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_depguard.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_depguard.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_dogsled.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dogsled.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_dogsled.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_dogsled.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_dogsled.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dogsled.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_dogsled.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_dogsled.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_dupl.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dupl.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_dupl.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_dupl.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_dupl.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dupl.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_dupl.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_dupl.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_dupword.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dupword.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_dupword.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_dupword.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_dupword.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dupword.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_dupword.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_dupword.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_errcheck.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errcheck.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_errcheck.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_errcheck.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_errcheck.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errcheck.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_errcheck.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_errcheck.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_errchkjson.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errchkjson.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_errchkjson.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_errchkjson.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_errchkjson.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errchkjson.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_errchkjson.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_errchkjson.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_errorlint.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errorlint.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_errorlint.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_errorlint.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_errorlint.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errorlint.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_errorlint.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_errorlint.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_exhaustive.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_exhaustive.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_exhaustive.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_exhaustive.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_exhaustive.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_exhaustive.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_exhaustive.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_exhaustive.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_exhaustruct.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_exhaustruct.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_exhaustruct.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_exhaustruct.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_exhaustruct.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_exhaustruct.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_exhaustruct.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_exhaustruct.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_fatcontext.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_fatcontext.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_fatcontext.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_fatcontext.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_fatcontext.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_fatcontext.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_fatcontext.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_fatcontext.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_forbidigo.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_forbidigo.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_forbidigo.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_forbidigo.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_forbidigo.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_forbidigo.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_forbidigo.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_forbidigo.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_funlen.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_funlen.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_funlen.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_funlen.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_funlen.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_funlen.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_funlen.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_funlen.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gci.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gci.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gci.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gci.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gci.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gci.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gci.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gci.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_ginkgolinter.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_ginkgolinter.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_ginkgolinter.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_ginkgolinter.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_ginkgolinter.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_ginkgolinter.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_ginkgolinter.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_ginkgolinter.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gochecksumtype.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gochecksumtype.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gochecksumtype.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gochecksumtype.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gochecksumtype.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gochecksumtype.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gochecksumtype.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gochecksumtype.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gocognit.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocognit.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gocognit.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocognit.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gocognit.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocognit.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gocognit.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocognit.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_goconst.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goconst.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_goconst.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_goconst.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_goconst.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goconst.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_goconst.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_goconst.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocritic.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gocritic.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocritic.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gocritic.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocritic.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gocritic.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocritic.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gocyclo.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocyclo.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gocyclo.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocyclo.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gocyclo.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocyclo.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gocyclo.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocyclo.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_godot.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_godot.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_godot.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_godot.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_godot.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_godot.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_godot.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_godot.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_godox.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_godox.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_godox.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_godox.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_godox.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_godox.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_godox.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_godox.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gofmt.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gofmt.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gofmt.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gofmt.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gofmt.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gofmt.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gofmt.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gofmt.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gofumpt.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gofumpt.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gofumpt.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gofumpt.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gofumpt.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gofumpt.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gofumpt.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gofumpt.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_goheader.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goheader.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_goheader.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_goheader.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_goheader.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goheader.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_goheader.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_goheader.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_goimports.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goimports.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_goimports.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_goimports.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_goimports.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goimports.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_goimports.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_goimports.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gomoddirectives.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gomoddirectives.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gomoddirectives.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gomoddirectives.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gomoddirectives.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gomoddirectives.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gomoddirectives.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gomoddirectives.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gomodguard.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gomodguard.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gomodguard.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gomodguard.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gomodguard.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gomodguard.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gomodguard.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gomodguard.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gosec.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosec.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gosec.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosec.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gosec.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosec.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gosec.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosec.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gosimple.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosimple.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gosimple.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosimple.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gosimple.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosimple.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gosimple.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosimple.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gosmopolitan.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosmopolitan.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gosmopolitan.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosmopolitan.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_gosmopolitan.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosmopolitan.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_gosmopolitan.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosmopolitan.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_govet.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_govet.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_govet.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_govet.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_govet.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_govet.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_govet.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_govet.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_grouper.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_grouper.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_grouper.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_grouper.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_grouper.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_grouper.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_grouper.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_grouper.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_iface.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_iface.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_iface.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_iface.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_iface.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_iface.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_iface.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_iface.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_importas.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_importas.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_importas.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_importas.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_importas.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_importas.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_importas.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_importas.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_inamedparam.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_inamedparam.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_inamedparam.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_inamedparam.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_inamedparam.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_inamedparam.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_inamedparam.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_inamedparam.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_interfacebloat.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_interfacebloat.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_interfacebloat.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_interfacebloat.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_interfacebloat.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_interfacebloat.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_interfacebloat.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_interfacebloat.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_ireturn.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_ireturn.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_ireturn.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_ireturn.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_ireturn.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_ireturn.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_ireturn.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_ireturn.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_lll.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_lll.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_lll.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_lll.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_lll.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_lll.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_lll.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_lll.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_loggercheck.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_loggercheck.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_loggercheck.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_loggercheck.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_loggercheck.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_loggercheck.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_loggercheck.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_loggercheck.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_maintidx.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_maintidx.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_maintidx.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_maintidx.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_maintidx.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_maintidx.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_maintidx.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_maintidx.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_makezero.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_makezero.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_makezero.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_makezero.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_makezero.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_makezero.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_makezero.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_makezero.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_misspell.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_misspell.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_misspell.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_misspell.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_misspell.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_misspell.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_misspell.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_misspell.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_mnd.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_mnd.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_mnd.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_mnd.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_mnd.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_mnd.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_mnd.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_mnd.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_musttag.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_musttag.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_musttag.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_musttag.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_musttag.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_musttag.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_musttag.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_musttag.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nakedret.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nakedret.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_nakedret.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_nakedret.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nakedret.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nakedret.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_nakedret.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_nakedret.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nestif.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nestif.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_nestif.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_nestif.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nestif.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nestif.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_nestif.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_nestif.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nilnil.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nilnil.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_nilnil.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_nilnil.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nilnil.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nilnil.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_nilnil.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_nilnil.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nlreturn.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nlreturn.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_nlreturn.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_nlreturn.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nlreturn.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nlreturn.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_nlreturn.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_nlreturn.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nolintlint.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nolintlint.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_nolintlint.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_nolintlint.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nolintlint.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nolintlint.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_nolintlint.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_nolintlint.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nonamedreturns.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nonamedreturns.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_nonamedreturns.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_nonamedreturns.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_nonamedreturns.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nonamedreturns.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_nonamedreturns.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_nonamedreturns.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_paralleltest.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_paralleltest.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_paralleltest.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_paralleltest.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_paralleltest.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_paralleltest.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_paralleltest.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_paralleltest.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_perfsprint.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_perfsprint.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_perfsprint.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_perfsprint.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_perfsprint.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_perfsprint.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_perfsprint.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_perfsprint.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_prealloc.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_prealloc.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_prealloc.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_prealloc.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_prealloc.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_prealloc.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_prealloc.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_prealloc.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_predeclared.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_predeclared.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_predeclared.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_predeclared.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_predeclared.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_predeclared.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_predeclared.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_predeclared.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_promlinter.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_promlinter.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_promlinter.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_promlinter.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_promlinter.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_promlinter.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_promlinter.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_promlinter.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_protogetter.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_protogetter.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_protogetter.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_protogetter.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_protogetter.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_protogetter.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_protogetter.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_protogetter.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_reassign.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_reassign.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_reassign.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_reassign.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_reassign.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_reassign.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_reassign.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_reassign.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_recvcheck.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_recvcheck.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_recvcheck.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_recvcheck.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_recvcheck.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_recvcheck.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_recvcheck.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_recvcheck.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_revive.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_revive.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_revive.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_revive.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_revive.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_revive.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_revive.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_revive.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_rowserrcheck.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_rowserrcheck.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_rowserrcheck.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_rowserrcheck.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_rowserrcheck.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_rowserrcheck.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_rowserrcheck.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_rowserrcheck.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_sloglint.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_sloglint.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_sloglint.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_sloglint.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_sloglint.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_sloglint.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_sloglint.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_sloglint.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_spancheck.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_spancheck.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_spancheck.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_spancheck.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_spancheck.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_spancheck.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_spancheck.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_spancheck.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_staticcheck.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_staticcheck.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_staticcheck.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_staticcheck.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_staticcheck.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_staticcheck.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_staticcheck.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_staticcheck.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_stylecheck.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_stylecheck.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_stylecheck.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_stylecheck.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_stylecheck.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_stylecheck.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_stylecheck.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_stylecheck.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_tagalign.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_tagalign.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_tagalign.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_tagalign.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_tagalign.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_tagalign.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_tagalign.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_tagalign.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_tagliatelle.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_tagliatelle.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_tagliatelle.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_tagliatelle.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_tagliatelle.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_tagliatelle.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_tagliatelle.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_tagliatelle.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_testifylint.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_testifylint.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_testifylint.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_testifylint.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_testifylint.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_testifylint.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_testifylint.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_testifylint.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_testpackage.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_testpackage.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_testpackage.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_testpackage.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_testpackage.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_testpackage.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_testpackage.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_testpackage.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_thelper.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_thelper.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_thelper.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_thelper.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_thelper.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_thelper.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_thelper.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_thelper.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_unconvert.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unconvert.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_unconvert.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_unconvert.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_unconvert.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unconvert.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_unconvert.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_unconvert.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_unparam.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unparam.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_unparam.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_unparam.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_unparam.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unparam.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_unparam.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_unparam.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_unused.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unused.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_unused.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_unused.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_unused.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unused.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_unused.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_unused.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_usestdlibvars.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_usestdlibvars.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_usestdlibvars.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_usestdlibvars.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_usestdlibvars.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_usestdlibvars.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_usestdlibvars.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_usestdlibvars.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_usetesting.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_usetesting.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_usetesting.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_usetesting.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_usetesting.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_usetesting.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_usetesting.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_usetesting.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_varnamelen.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_varnamelen.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_varnamelen.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_varnamelen.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_varnamelen.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_varnamelen.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_varnamelen.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_varnamelen.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_whitespace.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_whitespace.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_whitespace.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_whitespace.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_whitespace.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_whitespace.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_whitespace.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_whitespace.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_wrapcheck.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_wrapcheck.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_wrapcheck.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_wrapcheck.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_wrapcheck.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_wrapcheck.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_wrapcheck.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_wrapcheck.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_wsl.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_wsl.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_wsl.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_wsl.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters-settings_wsl.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_wsl.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters-settings_wsl.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters-settings_wsl.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_01.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_01.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_01.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_01.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_01.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_01.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_01.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_01.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_02.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_02.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_02.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_02.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_02.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_02.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_02.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_02.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_03.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_03.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_03.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_03.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_03.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_03.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_03.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_03.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_04.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_04.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_04.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_04.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_04.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_04.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_04.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_04.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_05.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_05.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_05.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_05.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_05.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_05.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_05.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_05.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_06.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_06.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_06.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_06.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_06.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_06.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_06.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_06.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_07.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_07.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_07.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_07.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_07.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_07.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_07.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_07.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_08.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_08.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_08.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_08.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_08.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_08.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_08.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_08.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_09.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_09.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_09.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_09.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_09.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_09.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_09.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_09.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_10.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_10.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_10.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_10.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_10.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_10.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_10.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_10.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_11.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_11.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_11.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_11.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_11.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_11.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_11.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_11.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_12.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_12.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_12.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_12.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/linters_12.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_12.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/linters_12.yml rename to pkg/commands/internal/migrate/testdata/yaml/linters_12.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_a.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_a.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_a.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_a.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_a.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_a.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_a.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_a.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_b.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_b.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_b.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_b.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_b.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_b.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_b.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_b.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_c.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_c.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_c.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_c.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_c.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_c.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_c.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_c.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_d.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_d.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_d.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_d.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_d.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_d.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_d.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_d.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_f.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_f.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_f.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_f.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_f.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_f.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_f.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_f.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_g.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_g.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_g.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_g.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_g.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_g.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_g.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_g.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_h.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_h.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_h.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_h.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_h.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_h.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_h.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_h.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_i.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_i.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_i.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_i.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_i.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_i.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_i.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_i.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_j.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_j.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_j.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_j.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_j.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_j.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_j.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_j.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_k.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_k.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_k.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_k.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_k.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_k.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_k.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_k.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_l.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_l.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_l.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_l.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_l.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_l.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_l.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_l.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_m.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_m.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_m.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_m.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_m.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_m.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_m.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_m.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_o.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_o.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_o.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_o.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_o.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_o.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_o.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_o.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_p.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_p.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_p.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_p.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/output_01_p.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_p.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_01_p.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_01_p.yml diff --git a/pkg/commands/internal/migrate/testdata/output_02.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/output_02.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_02.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_02.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/output_02.yml b/pkg/commands/internal/migrate/testdata/yaml/output_02.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_02.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_02.yml diff --git a/pkg/commands/internal/migrate/testdata/output_03.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/output_03.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_03.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_03.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/output_03.yml b/pkg/commands/internal/migrate/testdata/yaml/output_03.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_03.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_03.yml diff --git a/pkg/commands/internal/migrate/testdata/output_04.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/output_04.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_04.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_04.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/output_04.yml b/pkg/commands/internal/migrate/testdata/yaml/output_04.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/output_04.yml rename to pkg/commands/internal/migrate/testdata/yaml/output_04.yml diff --git a/pkg/commands/internal/migrate/testdata/run_01.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/run_01.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_01.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_01.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/run_01.yml b/pkg/commands/internal/migrate/testdata/yaml/run_01.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_01.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_01.yml diff --git a/pkg/commands/internal/migrate/testdata/run_02_a.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/run_02_a.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_02_a.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_02_a.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/run_02_a.yml b/pkg/commands/internal/migrate/testdata/yaml/run_02_a.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_02_a.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_02_a.yml diff --git a/pkg/commands/internal/migrate/testdata/run_02_b.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/run_02_b.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_02_b.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_02_b.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/run_02_b.yml b/pkg/commands/internal/migrate/testdata/yaml/run_02_b.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_02_b.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_02_b.yml diff --git a/pkg/commands/internal/migrate/testdata/run_03_a.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/run_03_a.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_03_a.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_03_a.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/run_03_a.yml b/pkg/commands/internal/migrate/testdata/yaml/run_03_a.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_03_a.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_03_a.yml diff --git a/pkg/commands/internal/migrate/testdata/run_03_b.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/run_03_b.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_03_b.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_03_b.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/run_03_b.yml b/pkg/commands/internal/migrate/testdata/yaml/run_03_b.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_03_b.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_03_b.yml diff --git a/pkg/commands/internal/migrate/testdata/run_04_a.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/run_04_a.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_04_a.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_04_a.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/run_04_a.yml b/pkg/commands/internal/migrate/testdata/yaml/run_04_a.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_04_a.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_04_a.yml diff --git a/pkg/commands/internal/migrate/testdata/run_04_b.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/run_04_b.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_04_b.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_04_b.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/run_04_b.yml b/pkg/commands/internal/migrate/testdata/yaml/run_04_b.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_04_b.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_04_b.yml diff --git a/pkg/commands/internal/migrate/testdata/run_05.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/run_05.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_05.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_05.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/run_05.yml b/pkg/commands/internal/migrate/testdata/yaml/run_05.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_05.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_05.yml diff --git a/pkg/commands/internal/migrate/testdata/run_06.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/run_06.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_06.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_06.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/run_06.yml b/pkg/commands/internal/migrate/testdata/yaml/run_06.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_06.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_06.yml diff --git a/pkg/commands/internal/migrate/testdata/run_07.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/run_07.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_07.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_07.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/run_07.yml b/pkg/commands/internal/migrate/testdata/yaml/run_07.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_07.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_07.yml diff --git a/pkg/commands/internal/migrate/testdata/run_08.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/run_08.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_08.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_08.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/run_08.yml b/pkg/commands/internal/migrate/testdata/yaml/run_08.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_08.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_08.yml diff --git a/pkg/commands/internal/migrate/testdata/run_09_a.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/run_09_a.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_09_a.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_09_a.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/run_09_a.yml b/pkg/commands/internal/migrate/testdata/yaml/run_09_a.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_09_a.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_09_a.yml diff --git a/pkg/commands/internal/migrate/testdata/run_09_b.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/run_09_b.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_09_b.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_09_b.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/run_09_b.yml b/pkg/commands/internal/migrate/testdata/yaml/run_09_b.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_09_b.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_09_b.yml diff --git a/pkg/commands/internal/migrate/testdata/run_10.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/run_10.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_10.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_10.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/run_10.yml b/pkg/commands/internal/migrate/testdata/yaml/run_10.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/run_10.yml rename to pkg/commands/internal/migrate/testdata/yaml/run_10.yml diff --git a/pkg/commands/internal/migrate/testdata/severity_01.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/severity_01.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/severity_01.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/severity_01.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/severity_01.yml b/pkg/commands/internal/migrate/testdata/yaml/severity_01.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/severity_01.yml rename to pkg/commands/internal/migrate/testdata/yaml/severity_01.yml diff --git a/pkg/commands/internal/migrate/testdata/severity_02.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/severity_02.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/severity_02.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/severity_02.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/severity_02.yml b/pkg/commands/internal/migrate/testdata/yaml/severity_02.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/severity_02.yml rename to pkg/commands/internal/migrate/testdata/yaml/severity_02.yml diff --git a/pkg/commands/internal/migrate/testdata/unknown-fields.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/unknown-fields.golden.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/unknown-fields.golden.yml rename to pkg/commands/internal/migrate/testdata/yaml/unknown-fields.golden.yml diff --git a/pkg/commands/internal/migrate/testdata/unknown-fields.yml b/pkg/commands/internal/migrate/testdata/yaml/unknown-fields.yml similarity index 100% rename from pkg/commands/internal/migrate/testdata/unknown-fields.yml rename to pkg/commands/internal/migrate/testdata/yaml/unknown-fields.yml From d35e0d438e8eac7c6bafa9021e1917dbd9ab5b30 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Mon, 10 Mar 2025 01:16:10 +0100 Subject: [PATCH 29/30] fix: exclude-use-default is true by default --- pkg/commands/internal/migrate/migrate_formatters.go | 6 +++--- .../internal/migrate/migrate_linters_exclusions.go | 2 +- .../internal/migrate/testdata/json/empty.golden.json | 11 ++++++++++- .../internal/migrate/testdata/toml/empty.golden.toml | 9 +++++++++ .../testdata/toml/linters-settings_goheader.toml | 4 ++++ .../internal/migrate/testdata/yaml/empty.golden.yml | 7 +++++++ .../internal/migrate/testdata/yaml/issues_01_a.yml | 2 ++ .../internal/migrate/testdata/yaml/issues_01_b.yml | 2 ++ .../internal/migrate/testdata/yaml/issues_02_a.yml | 2 ++ .../internal/migrate/testdata/yaml/issues_02_b.yml | 2 ++ .../internal/migrate/testdata/yaml/issues_04_a.yml | 2 ++ .../internal/migrate/testdata/yaml/issues_04_b.yml | 2 ++ .../internal/migrate/testdata/yaml/issues_05_a.yml | 2 ++ .../internal/migrate/testdata/yaml/issues_05_b.yml | 2 ++ .../internal/migrate/testdata/yaml/issues_05_c.yml | 2 ++ .../migrate/testdata/yaml/issues_06_h.golden.yml | 8 ++++++++ .../internal/migrate/testdata/yaml/issues_06_h.yml | 5 +++++ .../migrate/testdata/yaml/issues_07_a.golden.yml | 4 ++++ .../internal/migrate/testdata/yaml/issues_07_a.yml | 2 ++ .../internal/migrate/testdata/yaml/issues_07_b.yml | 2 ++ .../internal/migrate/testdata/yaml/issues_08_a.yml | 2 ++ .../internal/migrate/testdata/yaml/issues_08_b.yml | 2 ++ .../internal/migrate/testdata/yaml/issues_09_a.yml | 2 ++ .../internal/migrate/testdata/yaml/issues_09_b.yml | 2 ++ .../internal/migrate/testdata/yaml/issues_10.yml | 2 ++ .../testdata/yaml/linters-settings_asasalint.yml | 2 ++ .../testdata/yaml/linters-settings_bidichk.yml | 2 ++ .../testdata/yaml/linters-settings_copyloopvar.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_custom.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_cyclop.yml | 2 ++ .../testdata/yaml/linters-settings_decorder.yml | 2 ++ .../testdata/yaml/linters-settings_depguard.yml | 2 ++ .../testdata/yaml/linters-settings_dogsled.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_dupl.yml | 2 ++ .../testdata/yaml/linters-settings_dupword.yml | 2 ++ .../testdata/yaml/linters-settings_errcheck.yml | 2 ++ .../testdata/yaml/linters-settings_errchkjson.yml | 2 ++ .../testdata/yaml/linters-settings_errorlint.yml | 2 ++ .../testdata/yaml/linters-settings_exhaustive.yml | 2 ++ .../testdata/yaml/linters-settings_exhaustruct.yml | 2 ++ .../testdata/yaml/linters-settings_fatcontext.yml | 2 ++ .../testdata/yaml/linters-settings_forbidigo.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_funlen.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_gci.yml | 2 ++ .../testdata/yaml/linters-settings_ginkgolinter.yml | 2 ++ .../testdata/yaml/linters-settings_gochecksumtype.yml | 2 ++ .../testdata/yaml/linters-settings_gocognit.yml | 2 ++ .../testdata/yaml/linters-settings_goconst.yml | 2 ++ .../testdata/yaml/linters-settings_gocritic.yml | 2 ++ .../testdata/yaml/linters-settings_gocyclo.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_godot.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_godox.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_gofmt.yml | 2 ++ .../testdata/yaml/linters-settings_gofumpt.yml | 2 ++ .../testdata/yaml/linters-settings_goheader.yml | 2 ++ .../testdata/yaml/linters-settings_goimports.yml | 2 ++ .../yaml/linters-settings_gomoddirectives.yml | 2 ++ .../testdata/yaml/linters-settings_gomodguard.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_gosec.yml | 2 ++ .../testdata/yaml/linters-settings_gosimple.yml | 2 ++ .../testdata/yaml/linters-settings_gosmopolitan.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_govet.yml | 2 ++ .../testdata/yaml/linters-settings_grouper.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_iface.yml | 2 ++ .../testdata/yaml/linters-settings_importas.yml | 2 ++ .../testdata/yaml/linters-settings_inamedparam.yml | 2 ++ .../testdata/yaml/linters-settings_interfacebloat.yml | 2 ++ .../testdata/yaml/linters-settings_ireturn.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_lll.yml | 2 ++ .../testdata/yaml/linters-settings_loggercheck.yml | 2 ++ .../testdata/yaml/linters-settings_maintidx.yml | 2 ++ .../testdata/yaml/linters-settings_makezero.yml | 2 ++ .../testdata/yaml/linters-settings_misspell.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_mnd.yml | 2 ++ .../testdata/yaml/linters-settings_musttag.yml | 2 ++ .../testdata/yaml/linters-settings_nakedret.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_nestif.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_nilnil.yml | 2 ++ .../testdata/yaml/linters-settings_nlreturn.yml | 2 ++ .../testdata/yaml/linters-settings_nolintlint.yml | 2 ++ .../testdata/yaml/linters-settings_nonamedreturns.yml | 2 ++ .../testdata/yaml/linters-settings_paralleltest.yml | 2 ++ .../testdata/yaml/linters-settings_perfsprint.yml | 2 ++ .../testdata/yaml/linters-settings_prealloc.yml | 2 ++ .../testdata/yaml/linters-settings_predeclared.yml | 2 ++ .../testdata/yaml/linters-settings_promlinter.yml | 2 ++ .../testdata/yaml/linters-settings_protogetter.yml | 2 ++ .../testdata/yaml/linters-settings_reassign.yml | 2 ++ .../testdata/yaml/linters-settings_recvcheck.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_revive.yml | 2 ++ .../testdata/yaml/linters-settings_rowserrcheck.yml | 2 ++ .../testdata/yaml/linters-settings_sloglint.yml | 2 ++ .../testdata/yaml/linters-settings_spancheck.yml | 2 ++ .../testdata/yaml/linters-settings_staticcheck.yml | 2 ++ .../testdata/yaml/linters-settings_stylecheck.yml | 2 ++ .../testdata/yaml/linters-settings_tagalign.yml | 2 ++ .../testdata/yaml/linters-settings_tagliatelle.yml | 2 ++ .../testdata/yaml/linters-settings_testifylint.yml | 2 ++ .../testdata/yaml/linters-settings_testpackage.yml | 2 ++ .../testdata/yaml/linters-settings_thelper.yml | 2 ++ .../testdata/yaml/linters-settings_unconvert.yml | 2 ++ .../testdata/yaml/linters-settings_unparam.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_unused.yml | 2 ++ .../testdata/yaml/linters-settings_usestdlibvars.yml | 2 ++ .../testdata/yaml/linters-settings_usetesting.yml | 2 ++ .../testdata/yaml/linters-settings_varnamelen.yml | 2 ++ .../testdata/yaml/linters-settings_whitespace.yml | 2 ++ .../testdata/yaml/linters-settings_wrapcheck.yml | 2 ++ .../migrate/testdata/yaml/linters-settings_wsl.yml | 2 ++ .../internal/migrate/testdata/yaml/linters_01.yml | 2 ++ .../internal/migrate/testdata/yaml/linters_02.yml | 2 ++ .../internal/migrate/testdata/yaml/linters_03.yml | 2 ++ .../internal/migrate/testdata/yaml/linters_04.yml | 2 ++ .../internal/migrate/testdata/yaml/linters_05.yml | 2 ++ .../internal/migrate/testdata/yaml/linters_06.yml | 2 ++ .../internal/migrate/testdata/yaml/linters_07.yml | 2 ++ .../internal/migrate/testdata/yaml/linters_08.yml | 2 ++ .../internal/migrate/testdata/yaml/linters_09.yml | 2 ++ .../internal/migrate/testdata/yaml/linters_10.yml | 2 ++ .../internal/migrate/testdata/yaml/linters_11.yml | 2 ++ .../internal/migrate/testdata/yaml/linters_12.yml | 2 ++ .../internal/migrate/testdata/yaml/output_01_a.yml | 2 ++ .../internal/migrate/testdata/yaml/output_01_b.yml | 2 ++ .../internal/migrate/testdata/yaml/output_01_c.yml | 2 ++ .../internal/migrate/testdata/yaml/output_01_d.yml | 2 ++ .../internal/migrate/testdata/yaml/output_01_f.yml | 2 ++ .../internal/migrate/testdata/yaml/output_01_g.yml | 2 ++ .../internal/migrate/testdata/yaml/output_01_h.yml | 2 ++ .../internal/migrate/testdata/yaml/output_01_i.yml | 2 ++ .../internal/migrate/testdata/yaml/output_01_j.yml | 2 ++ .../internal/migrate/testdata/yaml/output_01_k.yml | 2 ++ .../internal/migrate/testdata/yaml/output_01_l.yml | 2 ++ .../internal/migrate/testdata/yaml/output_01_m.yml | 2 ++ .../internal/migrate/testdata/yaml/output_01_o.yml | 2 ++ .../internal/migrate/testdata/yaml/output_01_p.yml | 2 ++ .../internal/migrate/testdata/yaml/output_02.yml | 2 ++ .../internal/migrate/testdata/yaml/output_03.yml | 2 ++ .../internal/migrate/testdata/yaml/output_04.yml | 2 ++ .../internal/migrate/testdata/yaml/run_01.yml | 2 ++ .../internal/migrate/testdata/yaml/run_02_a.yml | 2 ++ .../internal/migrate/testdata/yaml/run_02_b.yml | 2 ++ .../internal/migrate/testdata/yaml/run_03_a.yml | 2 ++ .../internal/migrate/testdata/yaml/run_03_b.yml | 2 ++ .../internal/migrate/testdata/yaml/run_04_a.yml | 2 ++ .../internal/migrate/testdata/yaml/run_04_b.yml | 2 ++ .../internal/migrate/testdata/yaml/run_05.yml | 2 ++ .../internal/migrate/testdata/yaml/run_06.yml | 2 ++ .../internal/migrate/testdata/yaml/run_07.yml | 2 ++ .../internal/migrate/testdata/yaml/run_08.yml | 2 ++ .../internal/migrate/testdata/yaml/run_09_a.yml | 2 ++ .../internal/migrate/testdata/yaml/run_09_b.yml | 2 ++ .../internal/migrate/testdata/yaml/run_10.yml | 2 ++ .../internal/migrate/testdata/yaml/severity_01.yml | 2 ++ .../internal/migrate/testdata/yaml/severity_02.yml | 2 ++ .../migrate/testdata/yaml/unknown-fields.golden.yml | 7 +++++++ 155 files changed, 348 insertions(+), 5 deletions(-) create mode 100644 pkg/commands/internal/migrate/testdata/yaml/issues_06_h.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/yaml/issues_06_h.yml diff --git a/pkg/commands/internal/migrate/migrate_formatters.go b/pkg/commands/internal/migrate/migrate_formatters.go index 5d6dd19a2bf7..b2b22ac52069 100644 --- a/pkg/commands/internal/migrate/migrate_formatters.go +++ b/pkg/commands/internal/migrate/migrate_formatters.go @@ -15,10 +15,10 @@ func toFormatters(old *versionone.Config) versiontwo.Formatters { var paths []string if len(enable) > 0 { paths = slices.Concat(old.Issues.ExcludeFiles, old.Issues.ExcludeDirs) + } - if old.Issues.UseDefaultExcludeDirs == nil || ptr.Deref(old.Issues.UseDefaultExcludeDirs) { - paths = append(paths, "examples$") - } + if old.Issues.UseDefaultExcludeDirs == nil || ptr.Deref(old.Issues.UseDefaultExcludeDirs) { + paths = append(paths, "examples$") } paths = append(paths, toFormattersPathsFromRules(old.Issues)...) diff --git a/pkg/commands/internal/migrate/migrate_linters_exclusions.go b/pkg/commands/internal/migrate/migrate_linters_exclusions.go index 3c5d12fb8ce0..65eb6e82251b 100644 --- a/pkg/commands/internal/migrate/migrate_linters_exclusions.go +++ b/pkg/commands/internal/migrate/migrate_linters_exclusions.go @@ -32,7 +32,7 @@ func toExclusionGenerated(excludeGenerated *string) *string { } func toPresets(old versionone.Issues) []string { - if !ptr.Deref(old.UseDefaultExcludes) { + if old.UseDefaultExcludes != nil && !ptr.Deref(old.UseDefaultExcludes) { return nil } diff --git a/pkg/commands/internal/migrate/testdata/json/empty.golden.json b/pkg/commands/internal/migrate/testdata/json/empty.golden.json index e739c06b3665..019cc1ee7f82 100644 --- a/pkg/commands/internal/migrate/testdata/json/empty.golden.json +++ b/pkg/commands/internal/migrate/testdata/json/empty.golden.json @@ -1,7 +1,10 @@ { "formatters": { "exclusions": { - "generated": "lax" + "generated": "lax", + "paths": [ + "examples$" + ] } }, "linters": { @@ -11,6 +14,12 @@ "third_party$", "builtin$", "examples$" + ], + "presets": [ + "comments", + "common-false-positives", + "legacy", + "std-error-handling" ] } }, diff --git a/pkg/commands/internal/migrate/testdata/toml/empty.golden.toml b/pkg/commands/internal/migrate/testdata/toml/empty.golden.toml index 8f7ce1647ed7..5b9e9de21202 100644 --- a/pkg/commands/internal/migrate/testdata/toml/empty.golden.toml +++ b/pkg/commands/internal/migrate/testdata/toml/empty.golden.toml @@ -3,6 +3,12 @@ version = '2' [linters] [linters.exclusions] generated = 'lax' +presets = [ + 'comments', + 'common-false-positives', + 'legacy', + 'std-error-handling' +] paths = [ 'third_party$', 'builtin$', @@ -12,3 +18,6 @@ paths = [ [formatters] [formatters.exclusions] generated = 'lax' +paths = [ + 'examples$' +] diff --git a/pkg/commands/internal/migrate/testdata/toml/linters-settings_goheader.toml b/pkg/commands/internal/migrate/testdata/toml/linters-settings_goheader.toml index e9dd921a4ff9..4ce0c0f2a5b3 100644 --- a/pkg/commands/internal/migrate/testdata/toml/linters-settings_goheader.toml +++ b/pkg/commands/internal/migrate/testdata/toml/linters-settings_goheader.toml @@ -1,5 +1,9 @@ [issues] +# Only to not generate unrelated elements inside golden. +exclude-use-default = false +# Only to not generate unrelated elements inside golden. exclude-generated = "strict" +# Only to not generate unrelated elements inside golden. exclude-dirs-use-default = false [linters-settings] diff --git a/pkg/commands/internal/migrate/testdata/yaml/empty.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/empty.golden.yml index c467aae6ab1e..10272697f830 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/empty.golden.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/empty.golden.yml @@ -2,6 +2,11 @@ version: "2" linters: exclusions: generated: lax + presets: + - comments + - common-false-positives + - legacy + - std-error-handling paths: - third_party$ - builtin$ @@ -9,3 +14,5 @@ linters: formatters: exclusions: generated: lax + paths: + - examples$ diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_01_a.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_01_a.yml index c4bbd5a572db..cd328a58bcc3 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/issues_01_a.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_01_a.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_01_b.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_01_b.yml index 6c12bbd21238..d74f9c2c80bb 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/issues_01_b.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_01_b.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_02_a.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_02_a.yml index 8818e353878b..a8ad68fa78c8 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/issues_02_a.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_02_a.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_02_b.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_02_b.yml index 97e5f7f8914d..371323d8cb17 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/issues_02_b.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_02_b.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_04_a.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_04_a.yml index d412d8c6763c..5115e5a8fd1c 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/issues_04_a.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_04_a.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_04_b.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_04_b.yml index 34e66b643b61..2d77e7360e95 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/issues_04_b.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_04_b.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_05_a.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_05_a.yml index 0a53c34c3421..af4bf91f8348 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/issues_05_a.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_05_a.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-dirs-use-default: false diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_05_b.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_05_b.yml index ccc0e369f59a..1020cee385b3 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/issues_05_b.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_05_b.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-dirs-use-default: false diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_05_c.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_05_c.yml index 6bf73ab6b257..db5465604c05 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/issues_05_c.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_05_c.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-dirs-use-default: false diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_06_h.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_06_h.golden.yml new file mode 100644 index 000000000000..94d007dc75ef --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_06_h.golden.yml @@ -0,0 +1,8 @@ +version: "2" +linters: + exclusions: + presets: + - comments + - common-false-positives + - legacy + - std-error-handling diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_06_h.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_06_h.yml new file mode 100644 index 000000000000..6f61e8fc8106 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_06_h.yml @@ -0,0 +1,5 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_07_a.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_07_a.golden.yml index 47b381a5c8ff..889baa58848a 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/issues_07_a.golden.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_07_a.golden.yml @@ -5,3 +5,7 @@ linters: - third_party$ - builtin$ - examples$ +formatters: + exclusions: + paths: + - examples$ diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_07_a.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_07_a.yml index bb4db4c7e89a..34e28f8f3578 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/issues_07_a.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_07_a.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_07_b.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_07_b.yml index 91ade9547afe..ed1b4f271f75 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/issues_07_b.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_07_b.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_08_a.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_08_a.yml index 8335b6c1e28a..fa9961fbe677 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/issues_08_a.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_08_a.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_08_b.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_08_b.yml index c35b42fc8709..9236523fc6b3 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/issues_08_b.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_08_b.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_09_a.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_09_a.yml index 9b2e0dbcd47f..4ea6f39c8abd 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/issues_09_a.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_09_a.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_09_b.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_09_b.yml index 119aef20847c..b0ad364fb597 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/issues_09_b.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_09_b.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_10.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_10.yml index 8998e191eefa..67c81668e2aa 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/issues_10.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_10.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_asasalint.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_asasalint.yml index e83095cb50d0..42ef7b77e3b4 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_asasalint.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_asasalint.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_bidichk.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_bidichk.yml index 11d53b2ca6bc..c7425c8ba6b9 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_bidichk.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_bidichk.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_copyloopvar.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_copyloopvar.yml index f761c15cab65..f95fe81d9c52 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_copyloopvar.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_copyloopvar.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_custom.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_custom.yml index 17c83d92a4a2..68c0d30ffb3c 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_custom.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_custom.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_cyclop.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_cyclop.yml index 3be559180f26..092cf9a140ae 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_cyclop.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_cyclop.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_decorder.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_decorder.yml index f5d0ef7f4dbb..01fc08b9357b 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_decorder.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_decorder.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_depguard.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_depguard.yml index beab87e5fec8..874f669f76d5 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_depguard.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_depguard.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dogsled.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dogsled.yml index 4a958b4081d8..3bee75f8ed29 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dogsled.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dogsled.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dupl.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dupl.yml index 9e8ef55a0094..1746307e0324 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dupl.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dupl.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dupword.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dupword.yml index ad3818ec1fd4..8e7149d7509c 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dupword.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_dupword.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errcheck.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errcheck.yml index 2e313a570407..3655492deadf 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errcheck.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errcheck.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errchkjson.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errchkjson.yml index 4553e2d76211..238d61ce17a8 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errchkjson.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errchkjson.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errorlint.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errorlint.yml index a265301b84e7..5c103aac9846 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errorlint.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_errorlint.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_exhaustive.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_exhaustive.yml index 4a05693a1c4c..a0a5be70a5f9 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_exhaustive.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_exhaustive.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_exhaustruct.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_exhaustruct.yml index caa1c48caa3a..dffa888d2b8b 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_exhaustruct.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_exhaustruct.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_fatcontext.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_fatcontext.yml index 93d808a6ccc2..8cdf4e5600f0 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_fatcontext.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_fatcontext.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_forbidigo.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_forbidigo.yml index 6dcf5104afe0..ee612a2e9928 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_forbidigo.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_forbidigo.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_funlen.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_funlen.yml index 19e5b38c7fa2..7e051d28a936 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_funlen.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_funlen.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gci.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gci.yml index 7ca1f98de659..f63a23f20aab 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gci.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gci.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_ginkgolinter.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_ginkgolinter.yml index 422926ba05e7..9139fd78bfe8 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_ginkgolinter.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_ginkgolinter.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gochecksumtype.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gochecksumtype.yml index abf53dfc0f5a..b4bce589d19c 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gochecksumtype.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gochecksumtype.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocognit.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocognit.yml index aa52abc3f60b..a95846e3edcb 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocognit.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocognit.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goconst.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goconst.yml index 178cf6e45165..c221e4d7a44d 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goconst.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goconst.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocritic.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocritic.yml index 985f044f539a..d1d6e94c19cc 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocritic.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocritic.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocyclo.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocyclo.yml index 19af03c2bc4b..b069212a2b7e 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocyclo.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gocyclo.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_godot.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_godot.yml index caa0f2807624..534b28d22a8c 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_godot.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_godot.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_godox.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_godox.yml index a7f2bdb8bc8e..69927dbd9875 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_godox.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_godox.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gofmt.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gofmt.yml index 038c96f1d0cb..7a2ea16eb5fd 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gofmt.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gofmt.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gofumpt.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gofumpt.yml index f79c2d320662..7f134d7a8dad 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gofumpt.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gofumpt.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goheader.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goheader.yml index 51e3adde474a..6b73f7d65352 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goheader.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goheader.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goimports.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goimports.yml index 3156179fca06..8559efd2448e 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goimports.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_goimports.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gomoddirectives.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gomoddirectives.yml index a07210239d29..8e9fedda6f07 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gomoddirectives.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gomoddirectives.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gomodguard.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gomodguard.yml index c17eeae05840..03f7ed3ed768 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gomodguard.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gomodguard.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosec.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosec.yml index 0456faefedcf..77be008af47c 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosec.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosec.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosimple.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosimple.yml index d93192ae55b3..c72ea11f1f59 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosimple.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosimple.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosmopolitan.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosmopolitan.yml index 27c48ed7d8cf..0e62c53948d1 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosmopolitan.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_gosmopolitan.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_govet.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_govet.yml index a71199490d14..821c4bb17d32 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_govet.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_govet.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_grouper.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_grouper.yml index 04562b91ecca..af941c6bd7d4 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_grouper.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_grouper.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_iface.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_iface.yml index 8c12c4c3733a..b18faffb684e 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_iface.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_iface.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_importas.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_importas.yml index 378784f01c7b..2830b85f529b 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_importas.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_importas.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_inamedparam.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_inamedparam.yml index 1832427438cf..5b786db846e8 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_inamedparam.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_inamedparam.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_interfacebloat.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_interfacebloat.yml index ab33e05d793d..1b22fa99c8c5 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_interfacebloat.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_interfacebloat.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_ireturn.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_ireturn.yml index f1a133ee0299..f8a16bb6bcb6 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_ireturn.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_ireturn.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_lll.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_lll.yml index 3b46bb87a561..1983c17e88b6 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_lll.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_lll.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_loggercheck.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_loggercheck.yml index 71ea1b9e4a60..c486adef8614 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_loggercheck.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_loggercheck.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_maintidx.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_maintidx.yml index 06905bc1651e..167ce5ae8925 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_maintidx.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_maintidx.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_makezero.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_makezero.yml index 9d4b01e35fe4..fc33596016d2 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_makezero.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_makezero.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_misspell.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_misspell.yml index cce5b2c746ae..212ad9db96de 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_misspell.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_misspell.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_mnd.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_mnd.yml index a744a684cfff..ca12f0a87bc8 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_mnd.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_mnd.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_musttag.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_musttag.yml index b4614784b622..b003c1206f42 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_musttag.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_musttag.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nakedret.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nakedret.yml index 9e5ba33db58a..191b888bdd78 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nakedret.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nakedret.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nestif.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nestif.yml index ffef36b23bc3..5ec72a2edbc3 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nestif.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nestif.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nilnil.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nilnil.yml index 8bcee8eb36ee..0e48650383cc 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nilnil.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nilnil.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nlreturn.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nlreturn.yml index 511b6a8f95c3..8ea8f8a66c3d 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nlreturn.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nlreturn.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nolintlint.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nolintlint.yml index c02c3851f873..1f47310296e9 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nolintlint.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nolintlint.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nonamedreturns.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nonamedreturns.yml index c253327d3b99..30e58b2b5d4b 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nonamedreturns.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_nonamedreturns.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_paralleltest.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_paralleltest.yml index c32330d89d18..0790fd716442 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_paralleltest.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_paralleltest.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_perfsprint.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_perfsprint.yml index e1167e8baad6..2406683b8769 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_perfsprint.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_perfsprint.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_prealloc.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_prealloc.yml index 950d14032f83..c02a4e7287e0 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_prealloc.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_prealloc.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_predeclared.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_predeclared.yml index b321671d39a4..48ccdd0ef6bc 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_predeclared.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_predeclared.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_promlinter.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_promlinter.yml index 2b7ef739bb50..3a0ffb9b7eec 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_promlinter.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_promlinter.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_protogetter.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_protogetter.yml index d464f0e399b5..ae85f5772829 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_protogetter.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_protogetter.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_reassign.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_reassign.yml index 2ba4ec4dcd60..c14d8ffc4edd 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_reassign.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_reassign.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_recvcheck.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_recvcheck.yml index 0f299a919b09..a34d7f7ecb99 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_recvcheck.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_recvcheck.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_revive.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_revive.yml index 755e684976e9..1d5506a64e02 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_revive.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_revive.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_rowserrcheck.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_rowserrcheck.yml index cb59ee824158..41bc1bd58b8e 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_rowserrcheck.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_rowserrcheck.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_sloglint.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_sloglint.yml index 3f28ff0e4cf9..01f2eee9e94d 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_sloglint.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_sloglint.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_spancheck.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_spancheck.yml index 8ee331d4f3ea..641344b0e6d6 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_spancheck.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_spancheck.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_staticcheck.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_staticcheck.yml index bb43168ac2f2..242bd5e9ddee 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_staticcheck.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_staticcheck.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_stylecheck.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_stylecheck.yml index 8e1af1e22808..199d27bb4bcd 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_stylecheck.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_stylecheck.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_tagalign.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_tagalign.yml index b3e2fe9e3f15..858213559200 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_tagalign.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_tagalign.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_tagliatelle.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_tagliatelle.yml index 56ce68704b39..420a4e1d9f97 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_tagliatelle.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_tagliatelle.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_testifylint.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_testifylint.yml index 267c4ac2f122..80351696d14b 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_testifylint.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_testifylint.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_testpackage.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_testpackage.yml index 91d1a222e754..a3af5518cab3 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_testpackage.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_testpackage.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_thelper.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_thelper.yml index b2fa9ebb488d..080d0b282e06 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_thelper.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_thelper.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unconvert.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unconvert.yml index 16bf3ee05c91..6aea35d5750e 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unconvert.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unconvert.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unparam.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unparam.yml index f0f1eedf5d0c..2b5518adb4ce 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unparam.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unparam.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unused.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unused.yml index 3ba9786d3bfe..ffd7e1a774e8 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unused.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_unused.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_usestdlibvars.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_usestdlibvars.yml index 10fac32abb71..b9eae89f58d7 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_usestdlibvars.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_usestdlibvars.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_usetesting.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_usetesting.yml index 01fd23f586cf..2b4d86117ea5 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_usetesting.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_usetesting.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_varnamelen.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_varnamelen.yml index f182ec6b427f..8d0e6fa297e2 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_varnamelen.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_varnamelen.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_whitespace.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_whitespace.yml index 50b301d73760..4d7f0fcc7150 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_whitespace.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_whitespace.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_wrapcheck.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_wrapcheck.yml index 2ccb1e439059..02b1e2e864b0 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_wrapcheck.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_wrapcheck.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_wsl.yml b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_wsl.yml index 8e2d46fbcf68..a437fa657b7b 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters-settings_wsl.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters-settings_wsl.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters_01.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_01.yml index 8eec017ea93f..06b4e8d75176 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters_01.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters_01.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters_02.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_02.yml index 874329665358..f27fd4d96db6 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters_02.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters_02.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters_03.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_03.yml index e5cbf8b986c4..6204a475eaab 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters_03.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters_03.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters_04.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_04.yml index ab488c928739..8c2cde07f0df 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters_04.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters_04.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters_05.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_05.yml index 81782cfddf2a..bfbd24bc2b0f 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters_05.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters_05.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters_06.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_06.yml index 335eaa6f2cc9..c85deb385c54 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters_06.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters_06.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters_07.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_07.yml index f10a36e3c90e..0690f8696743 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters_07.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters_07.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters_08.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_08.yml index 4432b25c24e0..97039474d62d 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters_08.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters_08.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters_09.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_09.yml index 4ff55329ca2b..d45a2bb98e83 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters_09.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters_09.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters_10.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_10.yml index d540af0f7660..b89e4e3c8e91 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters_10.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters_10.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters_11.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_11.yml index 001674056e92..dd20d9f37b1c 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters_11.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters_11.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/linters_12.yml b/pkg/commands/internal/migrate/testdata/yaml/linters_12.yml index 3f07cb72ce3c..a03b09832777 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/linters_12.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/linters_12.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/output_01_a.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_a.yml index 8ed349ea3291..d0db128190cc 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/output_01_a.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/output_01_a.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/output_01_b.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_b.yml index 84d538fab61f..68c2dccae784 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/output_01_b.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/output_01_b.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/output_01_c.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_c.yml index 6793899afabb..285a7c8770c4 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/output_01_c.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/output_01_c.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/output_01_d.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_d.yml index 05f582d50934..5db09c44d6c2 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/output_01_d.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/output_01_d.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/output_01_f.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_f.yml index 198ad9b6a909..647cb344a1f7 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/output_01_f.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/output_01_f.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/output_01_g.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_g.yml index cd79104edb2e..516fd62a59d2 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/output_01_g.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/output_01_g.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/output_01_h.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_h.yml index bae9dc1961e3..1904b6d7bfa1 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/output_01_h.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/output_01_h.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/output_01_i.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_i.yml index 57a44cd1ad69..2866cc217307 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/output_01_i.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/output_01_i.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/output_01_j.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_j.yml index 614f91ca2ac9..a793cd6bf6f1 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/output_01_j.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/output_01_j.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/output_01_k.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_k.yml index 8d51938d4ed0..a20af280388e 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/output_01_k.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/output_01_k.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/output_01_l.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_l.yml index 25dac5d4a11b..759e93c2e220 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/output_01_l.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/output_01_l.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/output_01_m.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_m.yml index 1d6ac986d8a9..c1a264a1fdc6 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/output_01_m.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/output_01_m.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/output_01_o.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_o.yml index dc2e60e66d6a..95e79f68e3a0 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/output_01_o.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/output_01_o.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/output_01_p.yml b/pkg/commands/internal/migrate/testdata/yaml/output_01_p.yml index f8f036eee99b..1b8938caa19e 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/output_01_p.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/output_01_p.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/output_02.yml b/pkg/commands/internal/migrate/testdata/yaml/output_02.yml index 7611dee59496..ecb2068c215f 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/output_02.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/output_02.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/output_03.yml b/pkg/commands/internal/migrate/testdata/yaml/output_03.yml index 24d297b93ba9..c35ec48d37ac 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/output_03.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/output_03.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/output_04.yml b/pkg/commands/internal/migrate/testdata/yaml/output_04.yml index 61f71c15ea70..55c188166673 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/output_04.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/output_04.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/run_01.yml b/pkg/commands/internal/migrate/testdata/yaml/run_01.yml index e0633f378781..56043b3715b8 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/run_01.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/run_01.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/run_02_a.yml b/pkg/commands/internal/migrate/testdata/yaml/run_02_a.yml index 5036bdeaabfb..2930d6c47d2a 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/run_02_a.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/run_02_a.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/run_02_b.yml b/pkg/commands/internal/migrate/testdata/yaml/run_02_b.yml index 4b5369f47d16..99cf99685338 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/run_02_b.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/run_02_b.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/run_03_a.yml b/pkg/commands/internal/migrate/testdata/yaml/run_03_a.yml index 5c9e291a1101..d58a540017ae 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/run_03_a.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/run_03_a.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/run_03_b.yml b/pkg/commands/internal/migrate/testdata/yaml/run_03_b.yml index 696341642f37..8a51ff80ea53 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/run_03_b.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/run_03_b.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/run_04_a.yml b/pkg/commands/internal/migrate/testdata/yaml/run_04_a.yml index 94589c85e608..d9597bfe3439 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/run_04_a.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/run_04_a.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/run_04_b.yml b/pkg/commands/internal/migrate/testdata/yaml/run_04_b.yml index 7bf5735cc05d..776b8c65c4f4 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/run_04_b.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/run_04_b.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/run_05.yml b/pkg/commands/internal/migrate/testdata/yaml/run_05.yml index d9e5c8478cd2..b02e5cedcdca 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/run_05.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/run_05.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/run_06.yml b/pkg/commands/internal/migrate/testdata/yaml/run_06.yml index 5e074452fb09..7dc32ded5161 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/run_06.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/run_06.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/run_07.yml b/pkg/commands/internal/migrate/testdata/yaml/run_07.yml index 2ef06c768080..25f83789918f 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/run_07.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/run_07.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/run_08.yml b/pkg/commands/internal/migrate/testdata/yaml/run_08.yml index 9ecf53f1d760..e326f4694dae 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/run_08.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/run_08.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/run_09_a.yml b/pkg/commands/internal/migrate/testdata/yaml/run_09_a.yml index c55e2aca17b6..d8075dfb049a 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/run_09_a.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/run_09_a.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/run_09_b.yml b/pkg/commands/internal/migrate/testdata/yaml/run_09_b.yml index 65aff4684bca..a7fd382c3cd1 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/run_09_b.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/run_09_b.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/run_10.yml b/pkg/commands/internal/migrate/testdata/yaml/run_10.yml index 85f171980a68..4e8911a0f928 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/run_10.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/run_10.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/severity_01.yml b/pkg/commands/internal/migrate/testdata/yaml/severity_01.yml index a47df3919c61..f827ca02b1b8 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/severity_01.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/severity_01.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/severity_02.yml b/pkg/commands/internal/migrate/testdata/yaml/severity_02.yml index 24faccc13b4e..ed64fdd61045 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/severity_02.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/severity_02.yml @@ -1,4 +1,6 @@ issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false # Only to not generate unrelated elements inside golden. exclude-generated: strict # Only to not generate unrelated elements inside golden. diff --git a/pkg/commands/internal/migrate/testdata/yaml/unknown-fields.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/unknown-fields.golden.yml index c467aae6ab1e..10272697f830 100644 --- a/pkg/commands/internal/migrate/testdata/yaml/unknown-fields.golden.yml +++ b/pkg/commands/internal/migrate/testdata/yaml/unknown-fields.golden.yml @@ -2,6 +2,11 @@ version: "2" linters: exclusions: generated: lax + presets: + - comments + - common-false-positives + - legacy + - std-error-handling paths: - third_party$ - builtin$ @@ -9,3 +14,5 @@ linters: formatters: exclusions: generated: lax + paths: + - examples$ From 6cbdf613adcbb34748e9ad147030a829197cd32a Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Mon, 10 Mar 2025 14:13:46 +0100 Subject: [PATCH 30/30] review --- .../internal/migrate/migrate_linter_names.go | 4 +++ .../internal/migrate/migrate_severity.go | 7 +++- .../testdata/yaml/issues_04_c.golden.yml | 1 + .../migrate/testdata/yaml/issues_04_c.yml | 31 ++++++++++++++++ .../testdata/yaml/severity_03.golden.yml | 1 + .../migrate/testdata/yaml/severity_03.yml | 35 +++++++++++++++++++ 6 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 pkg/commands/internal/migrate/testdata/yaml/issues_04_c.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/yaml/issues_04_c.yml create mode 100644 pkg/commands/internal/migrate/testdata/yaml/severity_03.golden.yml create mode 100644 pkg/commands/internal/migrate/testdata/yaml/severity_03.yml diff --git a/pkg/commands/internal/migrate/migrate_linter_names.go b/pkg/commands/internal/migrate/migrate_linter_names.go index e57edaee9763..eb075d2073a7 100644 --- a/pkg/commands/internal/migrate/migrate_linter_names.go +++ b/pkg/commands/internal/migrate/migrate_linter_names.go @@ -927,6 +927,10 @@ func convertAlternativeNames(names []string) []string { var results []string for _, name := range names { + if name == "typecheck" { + continue + } + if n, ok := altNames[name]; ok { results = append(results, n) continue diff --git a/pkg/commands/internal/migrate/migrate_severity.go b/pkg/commands/internal/migrate/migrate_severity.go index 65609b99fb8e..00fd0f858662 100644 --- a/pkg/commands/internal/migrate/migrate_severity.go +++ b/pkg/commands/internal/migrate/migrate_severity.go @@ -9,9 +9,14 @@ func toSeverity(old *versionone.Config) versiontwo.Severity { var rules []versiontwo.SeverityRule for _, rule := range old.Severity.Rules { + names := convertStaticcheckLinterNames(convertAlternativeNames(rule.Linters)) + if len(rule.Linters) > 0 && len(names) == 0 { + continue + } + rules = append(rules, versiontwo.SeverityRule{ BaseRule: versiontwo.BaseRule{ - Linters: convertStaticcheckLinterNames(convertAlternativeNames(rule.Linters)), + Linters: names, Path: rule.Path, PathExcept: rule.PathExcept, Text: rule.Text, diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_04_c.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_04_c.golden.yml new file mode 100644 index 000000000000..26b4afdb1e3a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_04_c.golden.yml @@ -0,0 +1 @@ +version: "2" diff --git a/pkg/commands/internal/migrate/testdata/yaml/issues_04_c.yml b/pkg/commands/internal/migrate/testdata/yaml/issues_04_c.yml new file mode 100644 index 000000000000..a699ed8eedf2 --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/yaml/issues_04_c.yml @@ -0,0 +1,31 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + + exclude-case-sensitive: true + + exclude-rules: + - path: _test\.go + linters: + - typecheck + + - path-except: _test\.go + linters: + - typecheck + + - path: internal/hmac/ + text: "weak cryptographic primitive" + linters: + - typecheck + + - linters: + - typecheck + text: "SA9003:" + + - linters: + - typecheck + source: "foo" diff --git a/pkg/commands/internal/migrate/testdata/yaml/severity_03.golden.yml b/pkg/commands/internal/migrate/testdata/yaml/severity_03.golden.yml new file mode 100644 index 000000000000..26b4afdb1e3a --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/yaml/severity_03.golden.yml @@ -0,0 +1 @@ +version: "2" diff --git a/pkg/commands/internal/migrate/testdata/yaml/severity_03.yml b/pkg/commands/internal/migrate/testdata/yaml/severity_03.yml new file mode 100644 index 000000000000..f8f8363131ff --- /dev/null +++ b/pkg/commands/internal/migrate/testdata/yaml/severity_03.yml @@ -0,0 +1,35 @@ +issues: + # Only to not generate unrelated elements inside golden. + exclude-use-default: false + # Only to not generate unrelated elements inside golden. + exclude-generated: strict + # Only to not generate unrelated elements inside golden. + exclude-dirs-use-default: false + +severity: + rules: + - path: _test\.go + severity: info + linters: + - typecheck + + - path-except: _test\.go + severity: info + linters: + - typecheck + + - path: internal/hmac/ + severity: info + text: "weak cryptographic primitive" + linters: + - typecheck + + - linters: + - typecheck + text: "SA9003:" + severity: info + + - linters: + - typecheck + source: "foo" + severity: info