From e38b0ebc65d6cbf5d3e89c8b19dd08ed2c02d443 Mon Sep 17 00:00:00 2001 From: Enver Bisevac Date: Tue, 21 Mar 2023 11:53:23 +0100 Subject: [PATCH] fix for branch create in empty repo, minor config changes for err shadow --- .golangci.yml | 2 ++ .vscode/launch.json | 2 +- gitrpc/blame.go | 9 ++++----- gitrpc/internal/service/branch.go | 4 ++++ gitrpc/internal/service/errors.go | 3 +++ 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index dd400c88c..0d2e4a966 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -297,6 +297,8 @@ issues: max-same-issues: 50 exclude-rules: + - text: 'shadow: declaration of "err" shadows declaration at' + linters: [ govet ] - source: "^//\\s*go:generate\\s" linters: [ lll ] - source: "(noinspection|TODO)" diff --git a/.vscode/launch.json b/.vscode/launch.json index ce741a49a..eecfe0d76 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -18,7 +18,7 @@ "type": "go", "request": "launch", "mode": "auto", - "program": "${workspaceFolder}", + "program": "cmd/gitness", "args": ["server", "../../.local.env"] } ] diff --git a/gitrpc/blame.go b/gitrpc/blame.go index ff88b52cb..5b3dd2784 100644 --- a/gitrpc/blame.go +++ b/gitrpc/blame.go @@ -7,7 +7,6 @@ package gitrpc import ( "context" "errors" - "fmt" "io" "github.com/harness/gitness/gitrpc/rpc" @@ -31,19 +30,19 @@ func (params *BlameParams) Validate() error { } if params.GitRef == "" { - return fmt.Errorf("git ref needs to be provided: %w", ErrInvalidArgument) + return Errorf(StatusInvalidArgument, "git ref needs to be provided") } if params.Path == "" { - return fmt.Errorf("file path needs to be provided: %w", ErrInvalidArgument) + return Errorf(StatusInvalidArgument, "file path needs to be provided") } if params.LineFrom < 0 || params.LineTo < 0 { - return fmt.Errorf("line from and line to can't be negative: %w", ErrInvalidArgument) + return Errorf(StatusInvalidArgument, "line from and line to can't be negative") } if params.LineTo > 0 && params.LineFrom > params.LineTo { - return fmt.Errorf("line from can't be after line after: %w", ErrInvalidArgument) + return Errorf(StatusInvalidArgument, "line from can't be after line after") } return nil diff --git a/gitrpc/internal/service/branch.go b/gitrpc/internal/service/branch.go index a0a4399b6..807d5a361 100644 --- a/gitrpc/internal/service/branch.go +++ b/gitrpc/internal/service/branch.go @@ -36,6 +36,10 @@ func (s ReferenceService) CreateBranch(ctx context.Context, return nil, processGitErrorf(err, "failed to open repo") } + if ok, err := repo.IsEmpty(); ok { + return nil, ErrInvalidArgumentf("branch cannot be created on empty repository", err) + } + sharedRepo, err := NewSharedRepo(s.tmpDir, base.GetRepoUid(), repo) if err != nil { return nil, processGitErrorf(err, "failed to create new shared repo") diff --git a/gitrpc/internal/service/errors.go b/gitrpc/internal/service/errors.go index 9de02b112..b2794ef1c 100644 --- a/gitrpc/internal/service/errors.go +++ b/gitrpc/internal/service/errors.go @@ -64,6 +64,9 @@ func Errorf(code codes.Code, format string, args ...any) (err error) { newargs := make([]any, 0, len(args)) for _, arg := range args { + if arg == nil { + continue + } switch t := arg.(type) { case error: err = t