Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable gocritic linter in golangci-lint and solve issues (STACKED ON #3465) #3467

Merged
merged 2 commits into from
Nov 23, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .golangci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ linters:
- containedctx # TODO: consider enabling the 'containedctx' linter to detect struct contained context.Context field.
- whitespace # TODO: consider enabling the 'whitespace' linter to detect leading and trailing whitespaces.
- unparam # TODO: consider enabling the 'unparam' linter to report unused function parameters.
- revive # TODO: consider enabling the 'revive' linter to configure custom rules and define a strict preset for enhancing development & code review processes.
- nakedret # TODO: consider enabling the 'nakedret' linter to find naked returns in functions greater than a specified function length.
- dupword # TODO: consider enabling the 'dupword' linter to check for duplicate words in the source code.
- makezero # TODO: consider enabling the 'makezero' linter to find slice declarations with non-zero initial length.
Expand All @@ -50,7 +49,6 @@ linters:
- gofumpt # TODO: consider enabling the 'gofumpt' linter to check whether code was gofumpt-ed.
- godox # TODO: consider enabling the 'godox' linter to detect FIXME, TODO and other comment keywords.
- godot # TODO: consider enabling the 'godot' linter to if comments end in a period.
- gocritic # TODO: consider enabling the 'gocritic' linter to check for bugs, performance and style issues.
- goconst # TODO: consider enabling the 'goconst' linter to find repeated strings that could be replaced by a constant.
- gocognit # TODO: consider enabling the 'gocognit' linter to compute and check the cognitive complexity of functions.
- gochecknoinits # TODO: consider enabling the 'gochecknoinits' linter to check that no init functions are present in Go code.
Expand Down
3 changes: 3 additions & 0 deletions changelog/unreleased/enhancement-gocritic.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Enhancement: Enable gocritic linter in golangci-lint and solve issues

https://github.com/cs3org/reva/pull/3467
3 changes: 3 additions & 0 deletions changelog/unreleased/enhancement-revive.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Enhancement: Enable revive linter in golangci-lint and solve issues

https://github.com/cs3org/reva/pull/3465
6 changes: 4 additions & 2 deletions internal/grpc/interceptors/eventsmiddleware/events.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ func init() {
// NewUnary returns a new unary interceptor that emits events when needed
// no lint because of the switch statement that should be extendable
//
//nolint:gocritic

func NewUnary(m map[string]interface{}) (grpc.UnaryServerInterceptor, int, error) {
publisher, err := publisherFromConfig(m)
if err != nil {
Expand All @@ -57,7 +57,9 @@ func NewUnary(m map[string]interface{}) (grpc.UnaryServerInterceptor, int, error
}

var ev interface{}
switch v := res.(type) {

// gocritic is disabled because the use of .(type) outside type switch is forbidden
switch v := res.(type) { //nolint:gocritic
case *collaboration.CreateShareResponse:
ev = ShareCreated(v)
}
Expand Down
2 changes: 1 addition & 1 deletion internal/http/services/ocmd/shares.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ func (h *sharesHandler) createShare(w http.ResponseWriter, r *http.Request) {
return
}

var shareWithParts []string = strings.Split(shareWith, "@")
var shareWithParts = strings.Split(shareWith, "@")
userRes, err := gatewayClient.GetUser(ctx, &userpb.GetUserRequest{
UserId: &userpb.UserId{OpaqueId: shareWithParts[0]}, SkipFetchingUserGroups: true,
})
Expand Down
2 changes: 1 addition & 1 deletion pkg/app/provider/wopi/wopi.go
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ func (p *wopiProvider) GetAppURL(ctx context.Context, resource *provider.Resourc
q.Add("appviewurl", viewAppURL)
}
}
var access string = "edit"
var access = "edit"
if resource.GetSize() == 0 {
if _, ok := p.appURLs["editnew"]; ok {
access = "editnew"
Expand Down
2 changes: 1 addition & 1 deletion pkg/ocm/invite/manager/json/json.go
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ func (m *manager) ForwardInvite(ctx context.Context, invite *invitepb.InviteToke
if e != nil {
return errors.Wrap(e, "json: error reading request body")
}
return errors.Wrap(errors.New(fmt.Sprintf("%s: %s", resp.Status, string(respBody))), "json: error sending accept post request")
return errors.Wrap(fmt.Errorf("%s: %s", resp.Status, string(respBody)), "json: error sending accept post request")
}

return nil
Expand Down
4 changes: 2 additions & 2 deletions pkg/storage/fs/owncloud/owncloud.go
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ func (fs *ocfs) toInternalPath(ctx context.Context, sp string) (ip string) {
ip = filepath.Join(fs.c.DataDirectory, layout, "files")
} else {
// parts = "<username>", "foo/bar.txt"
ip = filepath.Join(fs.c.DataDirectory, layout, "files", filepath.Join(segments[1]))
ip = filepath.Join(fs.c.DataDirectory, layout, "files", segments[1])
}

}
Expand Down Expand Up @@ -2349,7 +2349,7 @@ func (fs *ocfs) propagate(ctx context.Context, leafPath string) error {
Int("i", i).
Interface("parts", parts).
Msg("propagating change")
if err := os.Chtimes(filepath.Join(root), fi.ModTime(), fi.ModTime()); err != nil {
if err := os.Chtimes(root, fi.ModTime(), fi.ModTime()); err != nil {
appctx.GetLogger(ctx).Error().
Err(err).
Str("leafPath", leafPath).
Expand Down
6 changes: 3 additions & 3 deletions pkg/storage/fs/owncloudsql/owncloudsql.go
Original file line number Diff line number Diff line change
Expand Up @@ -1906,12 +1906,12 @@ func (fs *owncloudsqlfs) propagate(ctx context.Context, leafPath string) error {
Str("leafPath", leafPath).
Str("currentPath", currentPath).
Msg("propagating change")
parentFi, err := os.Stat(filepath.Join(currentPath))
parentFi, err := os.Stat(currentPath)
if err != nil {
return err
}
if fi.ModTime().UnixNano() > parentFi.ModTime().UnixNano() {
if err := os.Chtimes(filepath.Join(currentPath), fi.ModTime(), fi.ModTime()); err != nil {
if err := os.Chtimes(currentPath, fi.ModTime(), fi.ModTime()); err != nil {
appctx.GetLogger(ctx).Error().
Err(err).
Str("leafPath", leafPath).
Expand All @@ -1920,7 +1920,7 @@ func (fs *owncloudsqlfs) propagate(ctx context.Context, leafPath string) error {
return err
}
}
fi, err = os.Stat(filepath.Join(currentPath))
fi, err = os.Stat(currentPath)
if err != nil {
return err
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/sysinfo/sysinfo.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ type SystemInformation struct {

var (
// SysInfo provides global system information.
SysInfo *SystemInformation = &SystemInformation{}
SysInfo = &SystemInformation{}
)

// ToJSON converts the system information to JSON.
Expand Down
2 changes: 2 additions & 0 deletions pkg/utils/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ import (
types "github.com/cs3org/go-cs3apis/cs3/types/v1beta1"
"github.com/cs3org/reva/pkg/registry"
"github.com/cs3org/reva/pkg/registry/memory"

// gocritic is disabled because google.golang.org/protobuf/proto does not provide a method to convert MessageV1 to MessageV2
"github.com/golang/protobuf/proto" //nolint:staticcheck
"google.golang.org/protobuf/encoding/protojson"
)
Expand Down