Skip to content

Commit

Permalink
dev: clean DefaultExcludePatterns and improve CLI render (#4638)
Browse files Browse the repository at this point in the history
  • Loading branch information
ldez committed Apr 14, 2024
1 parent 5cefda5 commit 9522292
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 34 deletions.
7 changes: 4 additions & 3 deletions pkg/commands/flagsets.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,13 +120,14 @@ func setupIssuesFlagSet(v *viper.Viper, fs *pflag.FlagSet) {

func getDefaultIssueExcludeHelp() string {
parts := []string{color.GreenString("Use or not use default excludes:")}

for _, ep := range config.DefaultExcludePatterns {
parts = append(parts,
fmt.Sprintf(" # %s %s: %s", ep.ID, ep.Linter, ep.Why),
fmt.Sprintf(" - %s", color.YellowString(ep.Pattern)),
"",
fmt.Sprintf(" - %s (%s): %s", color.BlueString(ep.ID), color.CyanString(ep.Linter), ep.Why),
fmt.Sprintf(` Pattern: %s`, color.YellowString(`'`+ep.Pattern+`'`)),
)
}

return strings.Join(parts, "\n")
}

Expand Down
61 changes: 30 additions & 31 deletions pkg/config/issues.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,93 +14,92 @@ var DefaultExcludePatterns = []ExcludePattern{
Pattern: "Error return value of .((os\\.)?std(out|err)\\..*|.*Close" +
"|.*Flush|os\\.Remove(All)?|.*print(f|ln)?|os\\.(Un)?Setenv). is not checked",
Linter: "errcheck",
Why: "Almost all programs ignore errors on these functions and in most cases it's ok",
Why: "Almost all programs ignore errors on these functions and in most cases it's ok.",
},
{
ID: "EXC0002",
ID: "EXC0002", // TODO(ldez): should be remove in v2
Pattern: "(comment on exported (method|function|type|const)|" +
"should have( a package)? comment|comment should be of the form)",
Linter: "golint",
Why: "Annoying issue about not having a comment. The rare codebase has such comments",
Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
{
ID: "EXC0003",
ID: "EXC0003", // TODO(ldez): should be remove in v2
Pattern: "func name will be used as test\\.Test.* by other packages, and that stutters; consider calling this",
Linter: "golint",
Why: "False positive when tests are defined in package 'test'",
Why: "False positive when tests are defined in package 'test'.",
},
{
ID: "EXC0004",
Pattern: "(possible misuse of unsafe.Pointer|should have signature)",
Linter: "govet",
Why: "Common false positives",
Why: "Common false positives.",
},
{
ID: "EXC0005",
Pattern: "ineffective break statement. Did you mean to break out of the outer loop",
Pattern: "SA4011", // CheckScopedBreak
Linter: "staticcheck",
Why: "Developers tend to write in C-style with an explicit 'break' in a 'switch', so it's ok to ignore",
Why: "Developers tend to write in C-style with an explicit 'break' in a 'switch', so it's ok to ignore.",
},
{
ID: "EXC0006",
Pattern: "Use of unsafe calls should be audited",
Pattern: "G103: Use of unsafe calls should be audited",
Linter: "gosec",
Why: "Too many false-positives on 'unsafe' usage",
Why: "Too many false-positives on 'unsafe' usage.",
},
{
ID: "EXC0007",
Pattern: "Subprocess launch(ed with variable|ing should be audited)",
Pattern: "G204: Subprocess launched with variable",
Linter: "gosec",
Why: "Too many false-positives for parametrized shell calls",
Why: "Too many false-positives for parametrized shell calls.",
},
{
ID: "EXC0008",
Pattern: "(G104)",
Pattern: "G104", // Errors unhandled.
Linter: "gosec",
Why: "Duplicated errcheck checks",
Why: "Duplicated errcheck checks.",
},
{
ID: "EXC0009",
Pattern: "(Expect directory permissions to be 0750 or less|Expect file permissions to be 0600 or less)",
Pattern: "(G301|G302|G307): Expect (directory permissions to be 0750|file permissions to be 0600) or less",
Linter: "gosec",
Why: "Too many issues in popular repos",
Why: "Too many issues in popular repos.",
},
{
ID: "EXC0010",
Pattern: "Potential file inclusion via variable",
Pattern: "G304: Potential file inclusion via variable",
Linter: "gosec",
Why: "False positive is triggered by 'src, err := ioutil.ReadFile(filename)'",
Why: "False positive is triggered by 'src, err := ioutil.ReadFile(filename)'.",
},
{
ID: "EXC0011",
Pattern: "(comment on exported (method|function|type|const)|" +
"should have( a package)? comment|comment should be of the form)",
Linter: "stylecheck",
Why: "Annoying issue about not having a comment. The rare codebase has such comments",
ID: "EXC0011",
Pattern: "(ST1000|ST1020|ST1021|ST1022)", // CheckPackageComment, CheckExportedFunctionDocs, CheckExportedTypeDocs, CheckExportedVarDocs
Linter: "stylecheck",
Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
{
ID: "EXC0012",
Pattern: `exported (.+) should have comment( \(or a comment on this block\))? or be unexported`,
Pattern: `exported (.+) should have comment( \(or a comment on this block\))? or be unexported`, // rule: exported
Linter: "revive",
Why: "Annoying issue about not having a comment. The rare codebase has such comments",
Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
{
ID: "EXC0013",
Pattern: `package comment should be of the form "(.+)...`,
Pattern: `package comment should be of the form "(.+)..."`, // rule: package-comments
Linter: "revive",
Why: "Annoying issue about not having a comment. The rare codebase has such comments",
Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
{
ID: "EXC0014",
Pattern: `comment on exported (.+) should be of the form "(.+)..."`,
Pattern: `comment on exported (.+) should be of the form "(.+)..."`, // rule: exported
Linter: "revive",
Why: "Annoying issue about not having a comment. The rare codebase has such comments",
Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
{
ID: "EXC0015",
Pattern: `should have a package comment`,
Pattern: `should have a package comment`, // rule: package-comments
Linter: "revive",
Why: "Annoying issue about not having a comment. The rare codebase has such comments",
Why: "Annoying issue about not having a comment. The rare codebase has such comments.",
},
}

Expand Down

0 comments on commit 9522292

Please sign in to comment.