diff --git a/internal/linters/go/golangci_lint/golangci_lint.go b/internal/linters/go/golangci_lint/golangci_lint.go index d6ccbf2a..a40699e9 100644 --- a/internal/linters/go/golangci_lint/golangci_lint.go +++ b/internal/linters/go/golangci_lint/golangci_lint.go @@ -1,6 +1,9 @@ package golangci_lint import ( + "fmt" + "strings" + "github.com/qiniu/reviewbot/internal/linters" "github.com/qiniu/x/xlog" ) @@ -17,5 +20,18 @@ func golangciLintHandler(log *xlog.Logger, a linters.Agent) error { a.LinterConfig.Args = append([]string{}, "run") } - return linters.GeneralHandler(log, a, linters.GeneralParse) + return linters.GeneralHandler(log, a, golangciLintParse) +} + +func golangciLintParse(log *xlog.Logger, output []byte) (map[string][]linters.LinterOutput, error) { + var lineParse = func(line string) (*linters.LinterOutput, error) { + if strings.HasSuffix(line, "(typecheck)") { + // refer: https://github.com/qiniu/reviewbot/issues/82#issuecomment-2002340788 + return nil, fmt.Errorf("skip golangci-lint typecheck error: %s", line) + } + + return linters.GeneralLineParser(line) + } + + return linters.Parse(log, output, lineParse) }