diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000000000000000000000000000000000000..48c07d9cf06f0606582f4e7e12d792c01b7b9acf --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,43 @@ +run: + tests: false +linters: + enable: + - bodyclose + - exhaustive + - goconst + - godot + - gomoddirectives + - goprintffuncname + - gosec + - misspell + - nakedret + - nestif + - nilerr + - noctx + - nolintlint + - prealloc + - revive + - rowserrcheck + - sqlclosecheck + - tparallel + - unconvert + - unparam + - whitespace + - wrapcheck + exclusions: + rules: + - text: '(slog|log)\.\w+' + linters: + - noctx + generated: lax + presets: + - common-false-positives +issues: + max-issues-per-linter: 0 + max-same-issues: 0 +formatters: + enable: + - gofumpt + - goimports + exclusions: + generated: lax diff --git a/cmd/soft/browse/browse.go b/cmd/soft/browse/browse.go index 20360fd860e8e60a22c7e8cc09f4c41a049e82f7..5c0354dd286ab713e3aa8c9f5b8edcdd7a4c0382 100644 --- a/cmd/soft/browse/browse.go +++ b/cmd/soft/browse/browse.go @@ -177,6 +177,8 @@ func (m *model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { case m.common.Zone.Get("footer").InBounds(msg): cmds = append(cmds, footer.ToggleFooterCmd) } + default: + // Handle other mouse buttons } case footer.ToggleFooterMsg: m.footer.SetShowAll(!m.footer.ShowAll()) diff --git a/pkg/config/config.go b/pkg/config/config.go index 1e6f3a01bc85c9c514e12cc85f51f33905e2a8e7..5699e739932f387150e798c33321d0b1c7ffe75c 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -231,7 +231,7 @@ func parseFile(cfg *Config, path string) error { return err } - defer f.Close() //nolint: errcheck + defer f.Close() if err := yaml.NewDecoder(f).Decode(cfg); err != nil { return fmt.Errorf("decode config: %w", err) } diff --git a/pkg/daemon/daemon.go b/pkg/daemon/daemon.go index a5a91f826d2cdfd6f936c5eeb9ec74a6389f311b..073fe7c07bad2e97168d691c411a82d83fdf3453 100644 --- a/pkg/daemon/daemon.go +++ b/pkg/daemon/daemon.go @@ -139,7 +139,9 @@ func (d *GitDaemon) Serve(listener net.Listener) error { } func (d *GitDaemon) fatal(c net.Conn, err error) { - git.WritePktlineErr(c, err) + if writeErr := git.WritePktlineErr(c, err); writeErr != nil { + d.logger.Debugf("git: error writing pktline: %v", writeErr) + } if err := c.Close(); err != nil { d.logger.Debugf("git: error closing connection: %v", err) } @@ -321,7 +323,9 @@ func (d *GitDaemon) handleClient(conn net.Conn) { // Close closes the underlying listener. func (d *GitDaemon) Close() error { err := d.closeListener() - d.conns.CloseAll() + if closeErr := d.conns.CloseAll(); closeErr != nil { + d.logger.Debugf("git: error closing connections: %v", closeErr) + } return err } diff --git a/pkg/ui/components/selector/selector.go b/pkg/ui/components/selector/selector.go index e42ee3507a674a36561ae9255a7b6ea5f2e25c86..b96e5a662f4612ccf25fd469741999e6e0d4307e 100644 --- a/pkg/ui/components/selector/selector.go +++ b/pkg/ui/components/selector/selector.go @@ -251,6 +251,8 @@ func (s *Selector) Update(msg tea.Msg) (tea.Model, tea.Cmd) { break } } + default: + // Handle other mouse buttons } case tea.KeyPressMsg: filterState := s.FilterState() diff --git a/pkg/ui/components/tabs/tabs.go b/pkg/ui/components/tabs/tabs.go index f8bd9cb1d702350ab527f143cde56f9d7ae46568..c1125711355068de81cbb57c65ac78de5adb44b3 100644 --- a/pkg/ui/components/tabs/tabs.go +++ b/pkg/ui/components/tabs/tabs.go @@ -72,6 +72,8 @@ func (t *Tabs) Update(msg tea.Msg) (tea.Model, tea.Cmd) { cmds = append(cmds, t.activeTabCmd) } } + default: + // Handle other mouse buttons } case SelectTabMsg: tab := int(msg) diff --git a/pkg/ui/pages/repo/repo.go b/pkg/ui/pages/repo/repo.go index e2695b25ecb08076442b31984cdacbf534fbb4fb..610c9460045aaa01b881b72c4ecfd2d905b085e7 100644 --- a/pkg/ui/pages/repo/repo.go +++ b/pkg/ui/pages/repo/repo.go @@ -197,6 +197,8 @@ func (r *Repo) Update(msg tea.Msg) (tea.Model, tea.Cmd) { case r.common.Zone.Get("repo-main").InBounds(msg): cmds = append(cmds, goBackCmd) } + default: + // Handle other mouse buttons } } switch msg := msg.(type) { diff --git a/pkg/web/git.go b/pkg/web/git.go index c375ec13f6bad20916104d2e5969cd120bdaa0b8..3afe75e8c4e93b473196722f8e737f691e935c9a 100644 --- a/pkg/web/git.go +++ b/pkg/web/git.go @@ -436,7 +436,7 @@ func serviceRpc(w http.ResponseWriter, r *http.Request) { renderInternalServerError(w, r) return } - defer reader.Close() //nolint: errcheck + defer reader.Close() } cmd.Stdin = reader diff --git a/pkg/web/git_lfs.go b/pkg/web/git_lfs.go index 584033f129208875fb39032474790834e1fe2f8d..c9c1fc586cdd8acaf2d4e6beeacec14d24749fa8 100644 --- a/pkg/web/git_lfs.go +++ b/pkg/web/git_lfs.go @@ -41,7 +41,7 @@ func serviceLfsBatch(w http.ResponseWriter, r *http.Request) { } var batchRequest lfs.BatchRequest - defer r.Body.Close() //nolint: errcheck + defer r.Body.Close() if err := json.NewDecoder(r.Body).Decode(&batchRequest); err != nil { logger.Errorf("error decoding json: %s", err) renderJSON(w, http.StatusUnprocessableEntity, lfs.ErrorResponse{ @@ -282,7 +282,7 @@ func serviceLfsBasicDownload(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/octet-stream") w.Header().Set("Content-Length", strconv.FormatInt(obj.Size, 10)) - defer f.Close() //nolint: errcheck + defer f.Close() if _, err := io.Copy(w, f); err != nil { logger.Error("error copying object to response", "oid", oid, "err", err) renderJSON(w, http.StatusInternalServerError, lfs.ErrorResponse{ @@ -313,7 +313,7 @@ func serviceLfsBasicUpload(w http.ResponseWriter, r *http.Request) { strg := storage.NewLocalStorage(filepath.Join(cfg.DataPath, "lfs", repoID)) name := mux.Vars(r)["repo"] - defer r.Body.Close() //nolint: errcheck + defer r.Body.Close() repo, err := be.Repository(ctx, name) if err != nil { renderJSON(w, http.StatusNotFound, lfs.ErrorResponse{ @@ -385,7 +385,7 @@ func serviceLfsBasicVerify(w http.ResponseWriter, r *http.Request) { return } - defer r.Body.Close() //nolint: errcheck + defer r.Body.Close() if err := json.NewDecoder(r.Body).Decode(&pointer); err != nil { logger.Error("error decoding json", "err", err) renderJSON(w, http.StatusBadRequest, lfs.ErrorResponse{