diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2022-12-19 12:19:28 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2022-12-19 14:51:11 +0300 |
commit | 0e11d14d78da343851ea8ba0b92af51a9c88cc4a (patch) | |
tree | 68249ae434d572f0814b84f9c46c07e809918faf | |
parent | 38812995ea07e43b12b4151c24bf6b960a70f74d (diff) |
helper: Replace `helper.ErrInternalf()` with `structerr` package
Replace calls to `helper.ErrInternalf()` with `structerr.NewInternal()`
and remove the former function.
133 files changed, 476 insertions, 417 deletions
diff --git a/internal/git/command_options.go b/internal/git/command_options.go index 3c882bd12..546ab7a8c 100644 --- a/internal/git/command_options.go +++ b/internal/git/command_options.go @@ -13,6 +13,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/storage" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/metadata/featureflag" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/internal/x509" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/labkit/correlation" @@ -268,12 +269,12 @@ func withInternalFetch(req repoScopedRequest, withSidechannel bool) func(ctx con return func(ctx context.Context, cfg config.Cfg, _ CommandFactory, c *cmdCfg) error { payload, err := protojson.Marshal(req) if err != nil { - return helper.ErrInternalf("marshalling payload failed: %v", err) + return structerr.NewInternal("marshalling payload failed: %v", err) } serversInfo, err := storage.ExtractGitalyServers(ctx) if err != nil { - return helper.ErrInternalf("extracting Gitaly servers: %v", err) + return structerr.NewInternal("extracting Gitaly servers: %v", err) } storageInfo, ok := serversInfo[req.GetRepository().GetStorageName()] diff --git a/internal/git/housekeeping/commit_graph.go b/internal/git/housekeeping/commit_graph.go index afabc43a6..9e5b406b2 100644 --- a/internal/git/housekeeping/commit_graph.go +++ b/internal/git/housekeeping/commit_graph.go @@ -7,7 +7,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/git/localrepo" "gitlab.com/gitlab-org/gitaly/v15/internal/git/stats" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" ) // WriteCommitGraphConfig contains configuration that can be passed to WriteCommitGraph to alter its @@ -32,7 +32,7 @@ func WriteCommitGraphConfigForRepository(ctx context.Context, repo *localrepo.Re commitGraphInfo, err := stats.CommitGraphInfoForRepository(repoPath) if err != nil { - return WriteCommitGraphConfig{}, helper.ErrInternalf("getting commit-graph info: %w", err) + return WriteCommitGraphConfig{}, structerr.NewInternal("getting commit-graph info: %w", err) } if commitGraphInfo.CommitGraphChainLength == 0 { @@ -74,7 +74,7 @@ func WriteCommitGraph(ctx context.Context, repo *localrepo.Repo, cfg WriteCommit Action: "write", Flags: flags, }, git.WithStderr(&stderr)); err != nil { - return helper.ErrInternalf("writing commit-graph: %w: %v", err, stderr.String()) + return structerr.NewInternal("writing commit-graph: %w: %v", err, stderr.String()) } return nil diff --git a/internal/git/housekeeping/worktrees.go b/internal/git/housekeeping/worktrees.go index adf53e685..5e11db5a3 100644 --- a/internal/git/housekeeping/worktrees.go +++ b/internal/git/housekeeping/worktrees.go @@ -14,7 +14,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/command" "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/git/localrepo" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" ) const ( @@ -29,11 +29,11 @@ func CleanupWorktrees(ctx context.Context, repo *localrepo.Repo) error { worktreeThreshold := time.Now().Add(-6 * time.Hour) if err := cleanStaleWorktrees(ctx, repo, worktreeThreshold); err != nil { - return helper.ErrInternalf("cleanStaleWorktrees: %w", err) + return structerr.NewInternal("cleanStaleWorktrees: %w", err) } if err := cleanDisconnectedWorktrees(ctx, repo); err != nil { - return helper.ErrInternalf("cleanDisconnectedWorktrees: %w", err) + return structerr.NewInternal("cleanDisconnectedWorktrees: %w", err) } return nil diff --git a/internal/git/quarantine/quarantine.go b/internal/git/quarantine/quarantine.go index c11bc1fe8..fa8d7e617 100644 --- a/internal/git/quarantine/quarantine.go +++ b/internal/git/quarantine/quarantine.go @@ -10,7 +10,7 @@ import ( "strings" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/storage" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/internal/tempdir" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "google.golang.org/protobuf/proto" @@ -34,7 +34,7 @@ type Dir struct { func New(ctx context.Context, repo *gitalypb.Repository, locator storage.Locator) (*Dir, error) { repoPath, err := locator.GetPath(repo) if err != nil { - return nil, helper.ErrInternalf("getting repo path: %w", err) + return nil, structerr.NewInternal("getting repo path: %w", err) } quarantineDir, err := tempdir.NewWithPrefix(ctx, repo.GetStorageName(), diff --git a/internal/gitaly/config/locator.go b/internal/gitaly/config/locator.go index 786eb2d45..48343167c 100644 --- a/internal/gitaly/config/locator.go +++ b/internal/gitaly/config/locator.go @@ -7,6 +7,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/repository" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/storage" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" ) const ( @@ -64,7 +65,7 @@ func (l *configLocator) GetPath(repo repository.GitRepo) (string, error) { if os.IsNotExist(err) { return "", helper.ErrNotFoundf("GetPath: does not exist: %v", err) } - return "", helper.ErrInternalf("GetPath: storage path: %v", err) + return "", structerr.NewInternal("GetPath: storage path: %v", err) } relativePath := repo.GetRelativePath() diff --git a/internal/gitaly/hook/postreceive.go b/internal/gitaly/hook/postreceive.go index a59720483..30697700c 100644 --- a/internal/gitaly/hook/postreceive.go +++ b/internal/gitaly/hook/postreceive.go @@ -12,7 +12,7 @@ import ( "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus/ctxlogrus" "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/gitlab" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -109,12 +109,12 @@ func printAlert(m gitlab.PostReceiveMessage, w io.Writer) error { func (m *GitLabHookManager) PostReceiveHook(ctx context.Context, repo *gitalypb.Repository, pushOptions, env []string, stdin io.Reader, stdout, stderr io.Writer) error { payload, err := git.HooksPayloadFromEnv(env) if err != nil { - return helper.ErrInternalf("extracting hooks payload: %w", err) + return structerr.NewInternal("extracting hooks payload: %w", err) } changes, err := io.ReadAll(stdin) if err != nil { - return helper.ErrInternalf("reading stdin from request: %w", err) + return structerr.NewInternal("reading stdin from request: %w", err) } if isPrimary(payload) { @@ -136,17 +136,17 @@ func (m *GitLabHookManager) PostReceiveHook(ctx context.Context, repo *gitalypb. func (m *GitLabHookManager) postReceiveHook(ctx context.Context, payload git.HooksPayload, repo *gitalypb.Repository, pushOptions, env []string, stdin []byte, stdout, stderr io.Writer) error { if len(stdin) == 0 { - return helper.ErrInternalf("hook got no reference updates") + return structerr.NewInternal("hook got no reference updates") } if payload.UserDetails == nil { - return helper.ErrInternalf("payload has no receive hooks info") + return structerr.NewInternal("payload has no receive hooks info") } if payload.UserDetails.UserID == "" { - return helper.ErrInternalf("user ID not set") + return structerr.NewInternal("user ID not set") } if repo.GetGlRepository() == "" { - return helper.ErrInternalf("repository not set") + return structerr.NewInternal("repository not set") } ok, messages, err := m.gitlabClient.PostReceive( @@ -169,12 +169,12 @@ func (m *GitLabHookManager) postReceiveHook(ctx context.Context, payload git.Hoo executor, err := m.newCustomHooksExecutor(repo, "post-receive") if err != nil { - return helper.ErrInternalf("creating custom hooks executor: %v", err) + return structerr.NewInternal("creating custom hooks executor: %v", err) } customEnv, err := m.customHooksEnv(ctx, payload, pushOptions, env) if err != nil { - return helper.ErrInternalf("constructing custom hook environment: %v", err) + return structerr.NewInternal("constructing custom hook environment: %v", err) } if err = executor( diff --git a/internal/gitaly/hook/prereceive.go b/internal/gitaly/hook/prereceive.go index ad9e034a5..34da27b20 100644 --- a/internal/gitaly/hook/prereceive.go +++ b/internal/gitaly/hook/prereceive.go @@ -12,8 +12,8 @@ import ( "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus/ctxlogrus" "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/gitlab" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/env" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -65,12 +65,12 @@ func getRelativeObjectDirs(repoPath, gitObjectDir, gitAlternateObjectDirs string func (m *GitLabHookManager) PreReceiveHook(ctx context.Context, repo *gitalypb.Repository, pushOptions, env []string, stdin io.Reader, stdout, stderr io.Writer) error { payload, err := git.HooksPayloadFromEnv(env) if err != nil { - return helper.ErrInternalf("extracting hooks payload: %w", err) + return structerr.NewInternal("extracting hooks payload: %w", err) } changes, err := io.ReadAll(stdin) if err != nil { - return helper.ErrInternalf("reading stdin from request: %w", err) + return structerr.NewInternal("reading stdin from request: %w", err) } // Only the primary should execute hooks and increment reference counters. @@ -94,13 +94,13 @@ func (m *GitLabHookManager) PreReceiveHook(ctx context.Context, repo *gitalypb.R func (m *GitLabHookManager) preReceiveHook(ctx context.Context, payload git.HooksPayload, repo *gitalypb.Repository, pushOptions, envs []string, changes []byte, stdout, stderr io.Writer) error { repoPath, err := m.locator.GetRepoPath(repo) if err != nil { - return helper.ErrInternalf("getting repo path: %v", err) + return structerr.NewInternal("getting repo path: %v", err) } if gitObjDir, gitAltObjDirs := env.ExtractValue(envs, "GIT_OBJECT_DIRECTORY"), env.ExtractValue(envs, "GIT_ALTERNATE_OBJECT_DIRECTORIES"); gitObjDir != "" && gitAltObjDirs != "" { gitObjectDirRel, gitAltObjectDirRel, err := getRelativeObjectDirs(repoPath, gitObjDir, gitAltObjDirs) if err != nil { - return helper.ErrInternalf("getting relative git object directories: %v", err) + return structerr.NewInternal("getting relative git object directories: %v", err) } repo.GitObjectDirectory = gitObjectDirRel @@ -108,20 +108,20 @@ func (m *GitLabHookManager) preReceiveHook(ctx context.Context, payload git.Hook } if len(changes) == 0 { - return helper.ErrInternalf("hook got no reference updates") + return structerr.NewInternal("hook got no reference updates") } if repo.GetGlRepository() == "" { - return helper.ErrInternalf("repository not set") + return structerr.NewInternal("repository not set") } if payload.UserDetails == nil { - return helper.ErrInternalf("payload has no receive hooks info") + return structerr.NewInternal("payload has no receive hooks info") } if payload.UserDetails.UserID == "" { - return helper.ErrInternalf("user ID not set") + return structerr.NewInternal("user ID not set") } if payload.UserDetails.Protocol == "" { - return helper.ErrInternalf("protocol not set") + return structerr.NewInternal("protocol not set") } params := gitlab.AllowedParams{ @@ -168,7 +168,7 @@ func (m *GitLabHookManager) preReceiveHook(ctx context.Context, payload git.Hook customEnv, err := m.customHooksEnv(ctx, payload, pushOptions, envs) if err != nil { - return helper.ErrInternalf("constructing custom hook environment: %v", err) + return structerr.NewInternal("constructing custom hook environment: %v", err) } if err = executor( @@ -185,7 +185,7 @@ func (m *GitLabHookManager) preReceiveHook(ctx context.Context, payload git.Hook // reference counter ok, err := m.gitlabClient.PreReceive(ctx, repo.GetGlRepository()) if err != nil { - return helper.ErrInternalf("calling pre_receive endpoint: %v", err) + return structerr.NewInternal("calling pre_receive endpoint: %v", err) } if !ok { diff --git a/internal/gitaly/hook/prereceive_test.go b/internal/gitaly/hook/prereceive_test.go index d0b46e1cd..20f1f7bd9 100644 --- a/internal/gitaly/hook/prereceive_test.go +++ b/internal/gitaly/hook/prereceive_test.go @@ -19,8 +19,8 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/transaction" "gitlab.com/gitlab-org/gitaly/v15/internal/gitlab" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/metadata/featureflag" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper" "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper/testcfg" "gitlab.com/gitlab-org/gitaly/v15/internal/transaction/txinfo" @@ -346,7 +346,7 @@ func TestPrereceive_gitlab(t *testing.T) { return false, errors.New("prereceive oops") }, expectHookCall: true, - expectedErr: helper.ErrInternalf("calling pre_receive endpoint: %v", errors.New("prereceive oops")), + expectedErr: structerr.NewInternal("calling pre_receive endpoint: %v", errors.New("prereceive oops")), }, } diff --git a/internal/gitaly/hook/update.go b/internal/gitaly/hook/update.go index 12644e5f8..9e49a4bac 100644 --- a/internal/gitaly/hook/update.go +++ b/internal/gitaly/hook/update.go @@ -7,7 +7,7 @@ import ( "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus/ctxlogrus" "gitlab.com/gitlab-org/gitaly/v15/internal/git" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -15,7 +15,7 @@ import ( func (m *GitLabHookManager) UpdateHook(ctx context.Context, repo *gitalypb.Repository, ref, oldValue, newValue string, env []string, stdout, stderr io.Writer) error { payload, err := git.HooksPayloadFromEnv(env) if err != nil { - return helper.ErrInternalf("extracting hooks payload: %w", err) + return structerr.NewInternal("extracting hooks payload: %w", err) } if isPrimary(payload) { @@ -37,26 +37,26 @@ func (m *GitLabHookManager) UpdateHook(ctx context.Context, repo *gitalypb.Repos func (m *GitLabHookManager) updateHook(ctx context.Context, payload git.HooksPayload, repo *gitalypb.Repository, ref, oldValue, newValue string, env []string, stdout, stderr io.Writer) error { if ref == "" { - return helper.ErrInternalf("hook got no reference") + return structerr.NewInternal("hook got no reference") } if err := git.ObjectHashSHA1.ValidateHex(oldValue); err != nil { - return helper.ErrInternalf("hook got invalid old value: %w", err) + return structerr.NewInternal("hook got invalid old value: %w", err) } if err := git.ObjectHashSHA1.ValidateHex(newValue); err != nil { - return helper.ErrInternalf("hook got invalid new value: %w", err) + return structerr.NewInternal("hook got invalid new value: %w", err) } if payload.UserDetails == nil { - return helper.ErrInternalf("payload has no receive hooks info") + return structerr.NewInternal("payload has no receive hooks info") } executor, err := m.newCustomHooksExecutor(repo, "update") if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } customEnv, err := m.customHooksEnv(ctx, payload, nil, env) if err != nil { - return helper.ErrInternalf("constructing custom hook environment: %v", err) + return structerr.NewInternal("constructing custom hook environment: %v", err) } if err = executor( diff --git a/internal/gitaly/service/blob/blobs.go b/internal/gitaly/service/blob/blobs.go index 32aceea85..73d36be73 100644 --- a/internal/gitaly/service/blob/blobs.go +++ b/internal/gitaly/service/blob/blobs.go @@ -13,6 +13,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/chunk" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" "google.golang.org/protobuf/proto" @@ -72,11 +73,11 @@ func (s *server) ListBlobs(req *gitalypb.ListBlobsRequest, stream gitalypb.BlobS }) }, ); err != nil { - return helper.ErrInternalf("processing blobs: %w", err) + return structerr.NewInternal("processing blobs: %w", err) } if err := chunker.Flush(); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil @@ -101,13 +102,13 @@ func (s *server) processBlobs( if catfileInfoIter == nil { objectInfoReader, cancel, err := s.catfileCache.ObjectInfoReader(ctx, repo) if err != nil { - return helper.ErrInternalf("creating object info reader: %w", err) + return structerr.NewInternal("creating object info reader: %w", err) } defer cancel() catfileInfoIter, err = gitpipe.CatfileInfo(ctx, objectInfoReader, objectIter) if err != nil { - return helper.ErrInternalf("creating object info iterator: %w", err) + return structerr.NewInternal("creating object info iterator: %w", err) } } @@ -121,7 +122,7 @@ func (s *server) processBlobs( nil, blob.ObjectName, ); err != nil { - return helper.ErrInternalf("sending blob chunk: %w", err) + return structerr.NewInternal("sending blob chunk: %w", err) } i++ @@ -131,18 +132,18 @@ func (s *server) processBlobs( } if err := catfileInfoIter.Err(); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } } else { objectReader, cancel, err := s.catfileCache.ObjectReader(ctx, repo) if err != nil { - return helper.ErrInternalf("creating object reader: %w", err) + return structerr.NewInternal("creating object reader: %w", err) } defer cancel() catfileObjectIter, err := gitpipe.CatfileObject(ctx, objectReader, objectIter) if err != nil { - return helper.ErrInternalf("creating object iterator: %w", err) + return structerr.NewInternal("creating object iterator: %w", err) } var i uint32 @@ -161,7 +162,7 @@ func (s *server) processBlobs( } if err := callback(oid, size, p, blob.ObjectName); err != nil { - return helper.ErrInternalf("sending blob chunk: %w", err) + return structerr.NewInternal("sending blob chunk: %w", err) } return nil @@ -174,7 +175,7 @@ func (s *server) processBlobs( _, err := io.CopyN(dataChunker, blob, readLimit) if err != nil && !errors.Is(err, io.EOF) { - return helper.ErrInternalf("sending blob data: %w", err) + return structerr.NewInternal("sending blob data: %w", err) } // Discard trailing blob data in case the blob is bigger than the read @@ -183,7 +184,7 @@ func (s *server) processBlobs( if !errors.Is(err, io.EOF) { _, err = io.Copy(io.Discard, blob) if err != nil { - return helper.ErrInternalf("discarding blob data: %w", err) + return structerr.NewInternal("discarding blob data: %w", err) } } @@ -197,7 +198,7 @@ func (s *server) processBlobs( nil, blob.ObjectName, ); err != nil { - return helper.ErrInternalf("sending blob chunk: %w", err) + return structerr.NewInternal("sending blob chunk: %w", err) } } @@ -208,7 +209,7 @@ func (s *server) processBlobs( } if err := catfileObjectIter.Err(); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } } @@ -267,11 +268,11 @@ func (s *server) ListAllBlobs(req *gitalypb.ListAllBlobsRequest, stream gitalypb }) }, ); err != nil { - return helper.ErrInternalf("processing blobs: %w", err) + return structerr.NewInternal("processing blobs: %w", err) } if err := chunker.Flush(); err != nil { - return helper.ErrInternalf("flushing blobs: %w", err) + return structerr.NewInternal("flushing blobs: %w", err) } return nil diff --git a/internal/gitaly/service/blob/get_blob.go b/internal/gitaly/service/blob/get_blob.go index c25b6b618..ead9a700d 100644 --- a/internal/gitaly/service/blob/get_blob.go +++ b/internal/gitaly/service/blob/get_blob.go @@ -24,7 +24,7 @@ func (s *server) GetBlob(in *gitalypb.GetBlobRequest, stream gitalypb.BlobServic objectReader, cancel, err := s.catfileCache.ObjectReader(stream.Context(), repo) if err != nil { - return helper.ErrInternalf("create object reader: %w", err) + return structerr.NewInternal("create object reader: %w", err) } defer cancel() @@ -36,7 +36,7 @@ func (s *server) GetBlob(in *gitalypb.GetBlobRequest, stream gitalypb.BlobServic } return nil } - return helper.ErrInternalf("read object: %w", err) + return structerr.NewInternal("read object: %w", err) } if blob.Type != "blob" { diff --git a/internal/gitaly/service/blob/get_blobs.go b/internal/gitaly/service/blob/get_blobs.go index 799d89fb5..cf51d9ae8 100644 --- a/internal/gitaly/service/blob/get_blobs.go +++ b/internal/gitaly/service/blob/get_blobs.go @@ -40,7 +40,7 @@ func sendGetBlobsResponse( treeEntry, err := tef.FindByRevisionAndPath(ctx, revision, string(path)) if err != nil { - return helper.ErrInternalf("find by revision and path: %w", err) + return structerr.NewInternal("find by revision and path: %w", err) } response := &gitalypb.GetBlobsResponse{Revision: revision, Path: path} @@ -69,7 +69,7 @@ func sendGetBlobsResponse( objectInfo, err := objectInfoReader.Info(ctx, git.Revision(treeEntry.Oid)) if err != nil { - return helper.ErrInternalf("read object info: %w", err) + return structerr.NewInternal("read object info: %w", err) } response.Size = objectInfo.Size @@ -123,15 +123,15 @@ func sendBlobTreeEntry( blobObj, err := objectReader.Object(ctx, git.Revision(response.Oid)) if err != nil { - return helper.ErrInternalf("read object: %w", err) + return structerr.NewInternal("read object: %w", err) } defer func() { if _, err := io.Copy(io.Discard, blobObj); err != nil && returnedErr == nil { - returnedErr = helper.ErrInternalf("discarding data: %w", err) + returnedErr = structerr.NewInternal("discarding data: %w", err) } }() if blobObj.Type != "blob" { - return helper.ErrInternalf("blob got unexpected type %q", blobObj.Type) + return structerr.NewInternal("blob got unexpected type %q", blobObj.Type) } sw := streamio.NewWriter(func(p []byte) error { @@ -163,13 +163,13 @@ func (s *server) GetBlobs(req *gitalypb.GetBlobsRequest, stream gitalypb.BlobSer objectReader, cancel, err := s.catfileCache.ObjectReader(stream.Context(), repo) if err != nil { - return helper.ErrInternalf("creating object reader: %w", err) + return structerr.NewInternal("creating object reader: %w", err) } defer cancel() objectInfoReader, cancel, err := s.catfileCache.ObjectInfoReader(stream.Context(), repo) if err != nil { - return helper.ErrInternalf("creating object info reader: %w", err) + return structerr.NewInternal("creating object info reader: %w", err) } defer cancel() diff --git a/internal/gitaly/service/blob/lfs_pointers.go b/internal/gitaly/service/blob/lfs_pointers.go index e840ade96..a44523f45 100644 --- a/internal/gitaly/service/blob/lfs_pointers.go +++ b/internal/gitaly/service/blob/lfs_pointers.go @@ -12,6 +12,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/chunk" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "google.golang.org/protobuf/proto" ) @@ -53,7 +54,7 @@ func (s *server) ListLFSPointers(in *gitalypb.ListLFSPointersRequest, stream git objectReader, cancel, err := s.catfileCache.ObjectReader(ctx, repo) if err != nil { - return helper.ErrInternalf("creating object reader: %w", err) + return structerr.NewInternal("creating object reader: %w", err) } defer cancel() @@ -65,7 +66,7 @@ func (s *server) ListLFSPointers(in *gitalypb.ListLFSPointersRequest, stream git catfileObjectIter, err := gitpipe.CatfileObject(ctx, objectReader, revlistIter) if err != nil { - return helper.ErrInternalf("creating object iterator: %w", err) + return structerr.NewInternal("creating object iterator: %w", err) } if err := sendLFSPointers(chunker, catfileObjectIter, int(in.Limit)); err != nil { @@ -97,7 +98,7 @@ func (s *server) ListAllLFSPointers(in *gitalypb.ListAllLFSPointersRequest, stre objectReader, cancel, err := s.catfileCache.ObjectReader(ctx, repo) if err != nil { - return helper.ErrInternalf("creating object reader: %w", err) + return structerr.NewInternal("creating object reader: %w", err) } defer cancel() @@ -109,7 +110,7 @@ func (s *server) ListAllLFSPointers(in *gitalypb.ListAllLFSPointersRequest, stre catfileObjectIter, err := gitpipe.CatfileObject(ctx, objectReader, catfileInfoIter) if err != nil { - return helper.ErrInternalf("creating object iterator: %w", err) + return structerr.NewInternal("creating object iterator: %w", err) } if err := sendLFSPointers(chunker, catfileObjectIter, int(in.Limit)); err != nil { @@ -141,13 +142,13 @@ func (s *server) GetLFSPointers(req *gitalypb.GetLFSPointersRequest, stream gita objectInfoReader, cancel, err := s.catfileCache.ObjectInfoReader(ctx, repo) if err != nil { - return helper.ErrInternalf("creating object info reader: %w", err) + return structerr.NewInternal("creating object info reader: %w", err) } defer cancel() objectReader, cancel, err := s.catfileCache.ObjectReader(ctx, repo) if err != nil { - return helper.ErrInternalf("creating object reader: %w", err) + return structerr.NewInternal("creating object reader: %w", err) } defer cancel() @@ -162,13 +163,13 @@ func (s *server) GetLFSPointers(req *gitalypb.GetLFSPointersRequest, stream gita }), ) if err != nil { - return helper.ErrInternalf("creating object info iterator: %w", err) + return structerr.NewInternal("creating object info iterator: %w", err) } defer cancel() catfileObjectIter, err := gitpipe.CatfileObject(ctx, objectReader, catfileInfoIter) if err != nil { - return helper.ErrInternalf("creating object iterator: %w", err) + return structerr.NewInternal("creating object iterator: %w", err) } if err := sendLFSPointers(chunker, catfileObjectIter, 0); err != nil { @@ -222,7 +223,7 @@ func sendLFSPointers(chunker *chunk.Chunker, iter gitpipe.CatfileObjectIterator, // is 200 bytes in size. So it's not much of a problem to read this into memory // completely. if _, err := io.Copy(buffer, lfsPointer); err != nil { - return helper.ErrInternalf("reading LFS pointer data: %w", err) + return structerr.NewInternal("reading LFS pointer data: %w", err) } if !git.IsLFSPointer(buffer.Bytes()) { @@ -237,7 +238,7 @@ func sendLFSPointers(chunker *chunk.Chunker, iter gitpipe.CatfileObjectIterator, Size: int64(len(objectData)), Oid: lfsPointer.ObjectID().String(), }); err != nil { - return helper.ErrInternalf("sending LFS pointer chunk: %w", err) + return structerr.NewInternal("sending LFS pointer chunk: %w", err) } i++ @@ -247,11 +248,11 @@ func sendLFSPointers(chunker *chunk.Chunker, iter gitpipe.CatfileObjectIterator, } if err := iter.Err(); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } if err := chunker.Flush(); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/cleanup/apply_bfg_object_map_stream.go b/internal/gitaly/service/cleanup/apply_bfg_object_map_stream.go index e10d042a2..361503ad3 100644 --- a/internal/gitaly/service/cleanup/apply_bfg_object_map_stream.go +++ b/internal/gitaly/service/cleanup/apply_bfg_object_map_stream.go @@ -8,6 +8,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service/cleanup/notifier" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/chunk" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" "google.golang.org/protobuf/proto" @@ -28,7 +29,7 @@ type bfgStreamWriter struct { func (s *server) ApplyBfgObjectMapStream(server gitalypb.CleanupService_ApplyBfgObjectMapStreamServer) error { firstRequest, err := server.Recv() if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } if err := validateFirstRequest(firstRequest); err != nil { @@ -42,7 +43,7 @@ func (s *server) ApplyBfgObjectMapStream(server gitalypb.CleanupService_ApplyBfg notifier, cancel, err := notifier.New(ctx, s.catfileCache, repo, chunker) if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } defer cancel() @@ -50,7 +51,7 @@ func (s *server) ApplyBfgObjectMapStream(server gitalypb.CleanupService_ApplyBfg // starts running - they shouldn't point to the objects removed by the BFG cleaner, err := internalrefs.NewCleaner(ctx, repo, notifier.Notify) if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } if err := cleaner.ApplyObjectMap(ctx, reader.streamReader()); err != nil { @@ -58,11 +59,11 @@ func (s *server) ApplyBfgObjectMapStream(server gitalypb.CleanupService_ApplyBfg return helper.ErrInvalidArgumentf("%w", invalidErr) } - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } if err := chunker.Flush(); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/commit/check_objects_exist.go b/internal/gitaly/service/commit/check_objects_exist.go index 7365a6bce..584b4b31a 100644 --- a/internal/gitaly/service/commit/check_objects_exist.go +++ b/internal/gitaly/service/commit/check_objects_exist.go @@ -27,7 +27,7 @@ func (s *server) CheckObjectsExist( // behaviour, which always returns `io.EOF`. return err } - return helper.ErrInternalf("receiving initial request: %w", err) + return structerr.NewInternal("receiving initial request: %w", err) } repository := request.GetRepository() @@ -40,7 +40,7 @@ func (s *server) CheckObjectsExist( s.localrepo(repository), ) if err != nil { - return helper.ErrInternalf("creating object info reader: %w", err) + return structerr.NewInternal("creating object info reader: %w", err) } defer cancel() @@ -56,7 +56,7 @@ func (s *server) CheckObjectsExist( } if err := checkObjectsExist(ctx, request, objectInfoReader, chunker); err != nil { - return helper.ErrInternalf("checking object existence: %w", err) + return structerr.NewInternal("checking object existence: %w", err) } request, err = stream.Recv() @@ -65,12 +65,12 @@ func (s *server) CheckObjectsExist( break } - return helper.ErrInternalf("receiving request: %w", err) + return structerr.NewInternal("receiving request: %w", err) } } if err := chunker.Flush(); err != nil { - return helper.ErrInternalf("flushing results: %w", err) + return structerr.NewInternal("flushing results: %w", err) } return nil @@ -113,12 +113,12 @@ func checkObjectsExist( if catfile.IsNotFound(err) { revisionExistence.Exists = false } else { - return helper.ErrInternalf("reading object info: %w", err) + return structerr.NewInternal("reading object info: %w", err) } } if err := chunker.Send(&revisionExistence); err != nil { - return helper.ErrInternalf("adding to chunker: %w", err) + return structerr.NewInternal("adding to chunker: %w", err) } } diff --git a/internal/gitaly/service/commit/commit_messages.go b/internal/gitaly/service/commit/commit_messages.go index a45356ece..be34c3a74 100644 --- a/internal/gitaly/service/commit/commit_messages.go +++ b/internal/gitaly/service/commit/commit_messages.go @@ -9,6 +9,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/catfile" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" ) @@ -18,7 +19,7 @@ func (s *server) GetCommitMessages(request *gitalypb.GetCommitMessagesRequest, s return helper.ErrInvalidArgumentf("%w", err) } if err := s.getAndStreamCommitMessages(request, stream); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/commit/commit_signatures.go b/internal/gitaly/service/commit/commit_signatures.go index 6011c746e..585731bc0 100644 --- a/internal/gitaly/service/commit/commit_signatures.go +++ b/internal/gitaly/service/commit/commit_signatures.go @@ -11,6 +11,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/catfile" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" ) @@ -31,7 +32,7 @@ func (s *server) getCommitSignatures(request *gitalypb.GetCommitSignaturesReques objectReader, cancel, err := s.catfileCache.ObjectReader(ctx, repo) if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } defer cancel() @@ -41,16 +42,16 @@ func (s *server) getCommitSignatures(request *gitalypb.GetCommitSignaturesReques if catfile.IsNotFound(err) { continue } - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } signatureKey, commitText, err := extractSignature(commitObj) if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } if err = sendResponse(commitID, signatureKey, commitText, stream); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } } diff --git a/internal/gitaly/service/commit/commits_by_message.go b/internal/gitaly/service/commit/commits_by_message.go index d6d90f91a..86a68d7af 100644 --- a/internal/gitaly/service/commit/commits_by_message.go +++ b/internal/gitaly/service/commit/commits_by_message.go @@ -6,6 +6,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "google.golang.org/protobuf/proto" ) @@ -30,7 +31,7 @@ func (s *server) CommitsByMessage(in *gitalypb.CommitsByMessageRequest, stream g } if err := s.commitsByMessage(in, stream); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/commit/count_diverging_commits.go b/internal/gitaly/service/commit/count_diverging_commits.go index ca71d2ecf..256c6b57c 100644 --- a/internal/gitaly/service/commit/count_diverging_commits.go +++ b/internal/gitaly/service/commit/count_diverging_commits.go @@ -11,6 +11,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -25,7 +26,7 @@ func (s *server) CountDivergingCommits(ctx context.Context, req *gitalypb.CountD maxCount := int(req.GetMaxCount()) left, right, err := s.findLeftRightCount(ctx, req.GetRepository(), from, to, maxCount) if err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.CountDivergingCommitsResponse{LeftCount: left, RightCount: right}, nil diff --git a/internal/gitaly/service/commit/filter_shas_with_signatures.go b/internal/gitaly/service/commit/filter_shas_with_signatures.go index 3757f9bd4..13022db2e 100644 --- a/internal/gitaly/service/commit/filter_shas_with_signatures.go +++ b/internal/gitaly/service/commit/filter_shas_with_signatures.go @@ -8,6 +8,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/catfile" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -22,7 +23,7 @@ func (s *server) FilterShasWithSignatures(bidi gitalypb.CommitService_FilterShas } if err := s.filterShasWithSignatures(bidi, firstRequest); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil } diff --git a/internal/gitaly/service/commit/find_all_commits.go b/internal/gitaly/service/commit/find_all_commits.go index 33ba37e01..994500355 100644 --- a/internal/gitaly/service/commit/find_all_commits.go +++ b/internal/gitaly/service/commit/find_all_commits.go @@ -6,6 +6,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -33,7 +34,7 @@ func (s *server) FindAllCommits(in *gitalypb.FindAllCommitsRequest, stream gital } if err := s.findAllCommits(repo, in, stream, revisions); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/commit/find_commits.go b/internal/gitaly/service/commit/find_commits.go index 0b8bc7c1b..0ce452505 100644 --- a/internal/gitaly/service/commit/find_commits.go +++ b/internal/gitaly/service/commit/find_commits.go @@ -60,7 +60,7 @@ func (s *server) FindCommits(req *gitalypb.FindCommitsRequest, stream gitalypb.C } if err := s.findCommits(ctx, req, stream); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/commit/languages.go b/internal/gitaly/service/commit/languages.go index 97f52f2f1..c62baac24 100644 --- a/internal/gitaly/service/commit/languages.go +++ b/internal/gitaly/service/commit/languages.go @@ -14,6 +14,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/text" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -47,12 +48,12 @@ func (s *server) CommitLanguages(ctx context.Context, req *gitalypb.CommitLangua commitID, err := s.lookupRevision(ctx, repo, revision) if err != nil { - return nil, helper.ErrInternalf("looking up revision: %w", err) + return nil, structerr.NewInternal("looking up revision: %w", err) } stats, err := linguist.New(s.cfg, s.catfileCache, repo).Stats(ctx, commitID) if err != nil { - return nil, helper.ErrInternalf("language stats: %w", err) + return nil, structerr.NewInternal("language stats: %w", err) } resp := &gitalypb.CommitLanguagesResponse{} @@ -66,7 +67,7 @@ func (s *server) CommitLanguages(ctx context.Context, req *gitalypb.CommitLangua } if total == 0 { - return nil, helper.ErrInternalf("linguist stats added up to zero: %v", stats) + return nil, structerr.NewInternal("linguist stats added up to zero: %v", stats) } for lang, count := range stats { diff --git a/internal/gitaly/service/commit/last_commit_for_path.go b/internal/gitaly/service/commit/last_commit_for_path.go index 0a3aaa527..13632fcce 100644 --- a/internal/gitaly/service/commit/last_commit_for_path.go +++ b/internal/gitaly/service/commit/last_commit_for_path.go @@ -7,6 +7,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/log" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -17,7 +18,7 @@ func (s *server) LastCommitForPath(ctx context.Context, in *gitalypb.LastCommitF resp, err := s.lastCommitForPath(ctx, in) if err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return resp, nil diff --git a/internal/gitaly/service/commit/list_all_commits.go b/internal/gitaly/service/commit/list_all_commits.go index 65ed3905e..a4eb6c2eb 100644 --- a/internal/gitaly/service/commit/list_all_commits.go +++ b/internal/gitaly/service/commit/list_all_commits.go @@ -28,7 +28,7 @@ func (s *server) ListAllCommits( objectReader, cancel, err := s.catfileCache.ObjectReader(ctx, repo) if err != nil { - return helper.ErrInternalf("creating object reader: %w", err) + return structerr.NewInternal("creating object reader: %w", err) } defer cancel() diff --git a/internal/gitaly/service/commit/list_commits_by_ref_name.go b/internal/gitaly/service/commit/list_commits_by_ref_name.go index 27b4129f1..ab7b87291 100644 --- a/internal/gitaly/service/commit/list_commits_by_ref_name.go +++ b/internal/gitaly/service/commit/list_commits_by_ref_name.go @@ -6,6 +6,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/chunk" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "google.golang.org/protobuf/proto" ) @@ -20,7 +21,7 @@ func (s *server) ListCommitsByRefName(in *gitalypb.ListCommitsByRefNameRequest, objectReader, cancel, err := s.catfileCache.ObjectReader(ctx, repo) if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } defer cancel() @@ -32,7 +33,7 @@ func (s *server) ListCommitsByRefName(in *gitalypb.ListCommitsByRefNameRequest, continue } if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } commitByRef := &gitalypb.ListCommitsByRefNameResponse_CommitForRef{ @@ -40,7 +41,7 @@ func (s *server) ListCommitsByRefName(in *gitalypb.ListCommitsByRefNameRequest, } if err := sender.Send(commitByRef); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } } diff --git a/internal/gitaly/service/commit/list_files.go b/internal/gitaly/service/commit/list_files.go index 4ac3b359a..99a58a477 100644 --- a/internal/gitaly/service/commit/list_files.go +++ b/internal/gitaly/service/commit/list_files.go @@ -45,7 +45,7 @@ func (s *server) ListFiles(in *gitalypb.ListFilesRequest, stream gitalypb.Commit contained, err := s.localrepo(repo).HasRevision(stream.Context(), git.Revision(revision)) if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } if !contained { @@ -53,7 +53,7 @@ func (s *server) ListFiles(in *gitalypb.ListFilesRequest, stream gitalypb.Commit } if err := s.listFiles(repo, revision, stream); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/commit/list_last_commits_for_tree.go b/internal/gitaly/service/commit/list_last_commits_for_tree.go index 4e2d69151..972b96580 100644 --- a/internal/gitaly/service/commit/list_last_commits_for_tree.go +++ b/internal/gitaly/service/commit/list_last_commits_for_tree.go @@ -11,6 +11,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/lstree" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -22,7 +23,7 @@ func (s *server) ListLastCommitsForTree(in *gitalypb.ListLastCommitsForTreeReque } if err := s.listLastCommitsForTree(in, stream); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/commit/stats.go b/internal/gitaly/service/commit/stats.go index 59e52996b..96b8fee22 100644 --- a/internal/gitaly/service/commit/stats.go +++ b/internal/gitaly/service/commit/stats.go @@ -10,6 +10,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -30,7 +31,7 @@ func (s *server) CommitStats(ctx context.Context, in *gitalypb.CommitStatsReques resp, err := s.commitStats(ctx, in) if err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return resp, nil diff --git a/internal/gitaly/service/commit/stats_test.go b/internal/gitaly/service/commit/stats_test.go index cce0d5d93..adbe9005f 100644 --- a/internal/gitaly/service/commit/stats_test.go +++ b/internal/gitaly/service/commit/stats_test.go @@ -10,6 +10,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "google.golang.org/grpc/codes" @@ -147,7 +148,7 @@ func TestCommitStatsFailure(t *testing.T) { Repository: repo, Revision: []byte("non/existing"), }, - expectedErr: helper.ErrInternalf("object not found"), + expectedErr: structerr.NewInternal("object not found"), }, { desc: "invalid revision", diff --git a/internal/gitaly/service/commit/tree_entry.go b/internal/gitaly/service/commit/tree_entry.go index cef7662e6..b94afb647 100644 --- a/internal/gitaly/service/commit/tree_entry.go +++ b/internal/gitaly/service/commit/tree_entry.go @@ -67,7 +67,7 @@ func sendTreeEntry( objectInfo, err := objectInfoReader.Info(ctx, git.Revision(treeEntry.Oid)) if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } if strings.ToLower(treeEntry.Type.String()) != objectInfo.Type { diff --git a/internal/gitaly/service/conflicts/list_conflict_files.go b/internal/gitaly/service/conflicts/list_conflict_files.go index 439e64782..2037d1e5b 100644 --- a/internal/gitaly/service/conflicts/list_conflict_files.go +++ b/internal/gitaly/service/conflicts/list_conflict_files.go @@ -49,7 +49,7 @@ func (s *server) ListConflictFiles(request *gitalypb.ListConflictFilesRequest, s if errors.Is(err, git2go.ErrInvalidArgument) { return helper.ErrInvalidArgumentf("%w", err) } - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } var conflictFiles []*gitalypb.ConflictFile @@ -81,7 +81,7 @@ func (s *server) ListConflictFiles(request *gitalypb.ListConflictFilesRequest, s chunk := make([]byte, streamio.WriteBufferSize-msgSize) bytesRead, err := contentReader.Read(chunk) if err != nil && err != io.EOF { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } if bytesRead > 0 { @@ -107,7 +107,7 @@ func (s *server) ListConflictFiles(request *gitalypb.ListConflictFilesRequest, s if err := stream.Send(&gitalypb.ListConflictFilesResponse{ Files: conflictFiles, }); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } conflictFiles = conflictFiles[:0] @@ -120,7 +120,7 @@ func (s *server) ListConflictFiles(request *gitalypb.ListConflictFilesRequest, s if err := stream.Send(&gitalypb.ListConflictFilesResponse{ Files: conflictFiles, }); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } } diff --git a/internal/gitaly/service/conflicts/resolve_conflicts.go b/internal/gitaly/service/conflicts/resolve_conflicts.go index 9dc13a6ee..081354ea4 100644 --- a/internal/gitaly/service/conflicts/resolve_conflicts.go +++ b/internal/gitaly/service/conflicts/resolve_conflicts.go @@ -146,7 +146,7 @@ func (s *server) resolveConflicts(header *gitalypb.ResolveConflictsRequestHeader quarantineDir, err := quarantine.New(ctx, header.GetRepository(), s.locator) if err != nil { - return helper.ErrInternalf("creating object quarantine: %w", err) + return structerr.NewInternal("creating object quarantine: %w", err) } quarantineRepo := s.localrepo(quarantineDir.QuarantinedRepo()) diff --git a/internal/gitaly/service/diff/find_changed_paths.go b/internal/gitaly/service/diff/find_changed_paths.go index cd024a07a..70705e593 100644 --- a/internal/gitaly/service/diff/find_changed_paths.go +++ b/internal/gitaly/service/diff/find_changed_paths.go @@ -142,7 +142,7 @@ func nextPath(reader *bufio.Reader) (*gitalypb.ChangedPaths, error) { parsedPath, ok := statusTypeMap[string(pathStatus)] if !ok { - return nil, helper.ErrInternalf("unknown changed paths returned: %v", string(pathStatus)) + return nil, structerr.NewInternal("unknown changed paths returned: %v", string(pathStatus)) } changedPath := &gitalypb.ChangedPaths{ @@ -224,27 +224,27 @@ func (s *server) validateFindChangedPathsRequestParams(ctx context.Context, in * case *gitalypb.FindChangedPathsRequest_Request_CommitRequest_: oid, err := resolveObjectWithType(ctx, gitRepo, t.CommitRequest.GetCommitRevision(), "commit") if err != nil { - return helper.ErrInternalf("resolving commit: %w", err) + return structerr.NewInternal("resolving commit: %w", err) } t.CommitRequest.CommitRevision = oid.String() for i, commit := range t.CommitRequest.GetParentCommitRevisions() { oid, err := resolveObjectWithType(ctx, gitRepo, commit, "commit") if err != nil { - return helper.ErrInternalf("resolving commit parent: %w", err) + return structerr.NewInternal("resolving commit parent: %w", err) } t.CommitRequest.ParentCommitRevisions[i] = oid.String() } case *gitalypb.FindChangedPathsRequest_Request_TreeRequest_: oid, err := resolveObjectWithType(ctx, gitRepo, t.TreeRequest.GetLeftTreeRevision(), "tree") if err != nil { - return helper.ErrInternalf("resolving left tree: %w", err) + return structerr.NewInternal("resolving left tree: %w", err) } t.TreeRequest.LeftTreeRevision = oid.String() oid, err = resolveObjectWithType(ctx, gitRepo, t.TreeRequest.GetRightTreeRevision(), "tree") if err != nil { - return helper.ErrInternalf("resolving right tree: %w", err) + return structerr.NewInternal("resolving right tree: %w", err) } t.TreeRequest.RightTreeRevision = oid.String() } diff --git a/internal/gitaly/service/hook/pack_objects.go b/internal/gitaly/service/hook/pack_objects.go index 4bd972d28..ef396c390 100644 --- a/internal/gitaly/service/hook/pack_objects.go +++ b/internal/gitaly/service/hook/pack_objects.go @@ -385,7 +385,7 @@ func (s *server) PackObjectsHookWithSidechannel(ctx context.Context, req *gitaly if errors.As(err, &gitalyhook.ErrInvalidSidechannelAddress{}) { return nil, helper.ErrInvalidArgumentf("%w", err) } - return nil, helper.ErrInternalf("get side-channel: %w", err) + return nil, structerr.NewInternal("get side-channel: %w", err) } defer c.Close() @@ -396,11 +396,11 @@ func (s *server) PackObjectsHookWithSidechannel(ctx context.Context, req *gitaly // errors caused by the client disconnecting with the Canceled gRPC code. err = structerr.NewCanceled("%w", err) } - return nil, helper.ErrInternalf("pack objects hook: %w", err) + return nil, structerr.NewInternal("pack objects hook: %w", err) } if err := c.Close(); err != nil { - return nil, helper.ErrInternalf("close side-channel: %w", err) + return nil, structerr.NewInternal("close side-channel: %w", err) } return &gitalypb.PackObjectsHookWithSidechannelResponse{}, nil diff --git a/internal/gitaly/service/hook/post_receive.go b/internal/gitaly/service/hook/post_receive.go index 6f0e7ce1c..8524bbcb9 100644 --- a/internal/gitaly/service/hook/post_receive.go +++ b/internal/gitaly/service/hook/post_receive.go @@ -8,6 +8,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" ) @@ -17,7 +18,7 @@ func postReceiveHookResponse(stream gitalypb.HookService_PostReceiveHookServer, ExitStatus: &gitalypb.ExitStatus{Value: code}, Stderr: []byte(stderr), }); err != nil { - return helper.ErrInternalf("sending response: %w", err) + return structerr.NewInternal("sending response: %w", err) } return nil @@ -26,7 +27,7 @@ func postReceiveHookResponse(stream gitalypb.HookService_PostReceiveHookServer, func (s *server) PostReceiveHook(stream gitalypb.HookService_PostReceiveHookServer) error { firstRequest, err := stream.Recv() if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } if err := validatePostReceiveHookRequest(firstRequest); err != nil { diff --git a/internal/gitaly/service/hook/pre_receive.go b/internal/gitaly/service/hook/pre_receive.go index 05331e43c..112c9b8c1 100644 --- a/internal/gitaly/service/hook/pre_receive.go +++ b/internal/gitaly/service/hook/pre_receive.go @@ -8,6 +8,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" ) @@ -15,7 +16,7 @@ import ( func (s *server) PreReceiveHook(stream gitalypb.HookService_PreReceiveHookServer) error { firstRequest, err := stream.Recv() if err != nil { - return helper.ErrInternalf("receiving first request: %w", err) + return structerr.NewInternal("receiving first request: %w", err) } if err := validatePreReceiveHookRequest(firstRequest); err != nil { @@ -65,7 +66,7 @@ func preReceiveHookResponse(stream gitalypb.HookService_PreReceiveHookServer, co ExitStatus: &gitalypb.ExitStatus{Value: code}, Stderr: []byte(stderr), }); err != nil { - return helper.ErrInternalf("sending response: %w", err) + return structerr.NewInternal("sending response: %w", err) } return nil diff --git a/internal/gitaly/service/hook/reference_transaction.go b/internal/gitaly/service/hook/reference_transaction.go index 7e8c7ad1c..ecebfd04b 100644 --- a/internal/gitaly/service/hook/reference_transaction.go +++ b/internal/gitaly/service/hook/reference_transaction.go @@ -19,7 +19,7 @@ func validateReferenceTransactionHookRequest(in *gitalypb.ReferenceTransactionHo func (s *server) ReferenceTransactionHook(stream gitalypb.HookService_ReferenceTransactionHookServer) error { request, err := stream.Recv() if err != nil { - return helper.ErrInternalf("receiving first request: %w", err) + return structerr.NewInternal("receiving first request: %w", err) } if err := validateReferenceTransactionHookRequest(request); err != nil { @@ -55,14 +55,14 @@ func (s *server) ReferenceTransactionHook(stream gitalypb.HookService_ReferenceT case errors.Is(err, transaction.ErrTransactionStopped): return structerr.NewFailedPrecondition("reference-transaction hook: %w", err) default: - return helper.ErrInternalf("reference-transaction hook: %w", err) + return structerr.NewInternal("reference-transaction hook: %w", err) } } if err := stream.Send(&gitalypb.ReferenceTransactionHookResponse{ ExitStatus: &gitalypb.ExitStatus{Value: 0}, }); err != nil { - return helper.ErrInternalf("sending response: %w", err) + return structerr.NewInternal("sending response: %w", err) } return nil diff --git a/internal/gitaly/service/hook/update.go b/internal/gitaly/service/hook/update.go index 8d0c23804..ed7a57156 100644 --- a/internal/gitaly/service/hook/update.go +++ b/internal/gitaly/service/hook/update.go @@ -7,6 +7,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" ) @@ -43,7 +44,7 @@ func (s *server) UpdateHook(in *gitalypb.UpdateHookRequest, stream gitalypb.Hook return updateHookResponse(stream, int32(exitError.ExitCode())) } - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return updateHookResponse(stream, 0) @@ -53,7 +54,7 @@ func updateHookResponse(stream gitalypb.HookService_UpdateHookServer, code int32 if err := stream.Send(&gitalypb.UpdateHookResponse{ ExitStatus: &gitalypb.ExitStatus{Value: code}, }); err != nil { - return helper.ErrInternalf("sending response: %w", err) + return structerr.NewInternal("sending response: %w", err) } return nil diff --git a/internal/gitaly/service/internalgitaly/walkrepos.go b/internal/gitaly/service/internalgitaly/walkrepos.go index c2d2681d8..8ba2e9a55 100644 --- a/internal/gitaly/service/internalgitaly/walkrepos.go +++ b/internal/gitaly/service/internalgitaly/walkrepos.go @@ -7,6 +7,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/storage" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "google.golang.org/protobuf/types/known/timestamppb" ) @@ -18,7 +19,7 @@ func (s *server) WalkRepos(req *gitalypb.WalkReposRequest, stream gitalypb.Inter } if err := walkStorage(stream.Context(), sPath, stream); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/namespace/namespace.go b/internal/gitaly/service/namespace/namespace.go index 459a0949b..b3330bacb 100644 --- a/internal/gitaly/service/namespace/namespace.go +++ b/internal/gitaly/service/namespace/namespace.go @@ -86,7 +86,7 @@ func (s *server) RenameNamespace(ctx context.Context, in *gitalypb.RenameNamespa // Create the parent directory. if err = os.MkdirAll(filepath.Dir(targetPath), 0o775); err != nil { - return nil, helper.ErrInternalf("create directory: %w", err) + return nil, structerr.NewInternal("create directory: %w", err) } err = os.Rename(namespacePath(storagePath, in.GetFrom()), targetPath) diff --git a/internal/gitaly/service/objectpool/alternates.go b/internal/gitaly/service/objectpool/alternates.go index 0bdc788b1..3a3c08ede 100644 --- a/internal/gitaly/service/objectpool/alternates.go +++ b/internal/gitaly/service/objectpool/alternates.go @@ -17,6 +17,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/text" "gitlab.com/gitlab-org/gitaly/v15/internal/metadata/featureflag" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -36,7 +37,7 @@ func (s *server) DisconnectGitAlternates(ctx context.Context, req *gitalypb.Disc repo := s.localrepo(repository) if err := s.disconnectAlternates(ctx, repo); err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.DisconnectGitAlternatesResponse{}, nil diff --git a/internal/gitaly/service/objectpool/create.go b/internal/gitaly/service/objectpool/create.go index 692b6230e..9d2909159 100644 --- a/internal/gitaly/service/objectpool/create.go +++ b/internal/gitaly/service/objectpool/create.go @@ -6,6 +6,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/objectpool" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -32,7 +33,7 @@ func (s *server) CreateObjectPool(ctx context.Context, in *gitalypb.CreateObject return nil, errInvalidPoolDir } - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.CreateObjectPoolResponse{}, nil diff --git a/internal/gitaly/service/objectpool/delete.go b/internal/gitaly/service/objectpool/delete.go index b736680e5..a06f2c59d 100644 --- a/internal/gitaly/service/objectpool/delete.go +++ b/internal/gitaly/service/objectpool/delete.go @@ -5,7 +5,7 @@ import ( "errors" "gitlab.com/gitlab-org/gitaly/v15/internal/git/objectpool" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -22,7 +22,7 @@ func (s *server) DeleteObjectPool(ctx context.Context, in *gitalypb.DeleteObject } if err := pool.Remove(ctx); err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.DeleteObjectPoolResponse{}, nil diff --git a/internal/gitaly/service/objectpool/fetch_into_object_pool.go b/internal/gitaly/service/objectpool/fetch_into_object_pool.go index 6950e25b3..9cf0ca71c 100644 --- a/internal/gitaly/service/objectpool/fetch_into_object_pool.go +++ b/internal/gitaly/service/objectpool/fetch_into_object_pool.go @@ -7,6 +7,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/objectpool" "gitlab.com/gitlab-org/gitaly/v15/internal/git/stats" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -23,7 +24,7 @@ func (s *server) FetchIntoObjectPool(ctx context.Context, req *gitalypb.FetchInt origin := s.localrepo(req.GetOrigin()) if err := objectPool.FetchFromOrigin(ctx, origin); err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } stats.LogRepositoryInfo(ctx, objectPool.Repo) diff --git a/internal/gitaly/service/objectpool/link.go b/internal/gitaly/service/objectpool/link.go index 7f1c53270..dfeeae8b2 100644 --- a/internal/gitaly/service/objectpool/link.go +++ b/internal/gitaly/service/objectpool/link.go @@ -4,7 +4,6 @@ import ( "context" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -23,7 +22,7 @@ func (s *server) LinkRepositoryToObjectPool(ctx context.Context, req *gitalypb.L repo := s.localrepo(repository) if err := pool.Link(ctx, repo); err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.LinkRepositoryToObjectPoolResponse{}, nil diff --git a/internal/gitaly/service/objectpool/link_test.go b/internal/gitaly/service/objectpool/link_test.go index c6f26802d..ac11a2da9 100644 --- a/internal/gitaly/service/objectpool/link_test.go +++ b/internal/gitaly/service/objectpool/link_test.go @@ -117,7 +117,7 @@ func TestLink_noClobber(t *testing.T) { } _, err := client.LinkRepositoryToObjectPool(ctx, request) - testhelper.RequireGrpcError(t, helper.ErrInternalf("unexpected alternates content: %q", "mock/objects"), err) + testhelper.RequireGrpcError(t, structerr.NewInternal("unexpected alternates content: %q", "mock/objects"), err) contentAfter := testhelper.MustReadFile(t, alternatesFile) require.Equal(t, contentBefore, string(contentAfter), "contents of existing alternates file should not have changed") diff --git a/internal/gitaly/service/objectpool/util.go b/internal/gitaly/service/objectpool/util.go index f73f4fe76..5b15dbfeb 100644 --- a/internal/gitaly/service/objectpool/util.go +++ b/internal/gitaly/service/objectpool/util.go @@ -43,7 +43,7 @@ func (s *server) poolForRequest(req PoolRequest) (*objectpool.ObjectPool, error) return nil, structerr.NewFailedPrecondition("%w", err) } - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return pool, nil diff --git a/internal/gitaly/service/operations/apply_patch.go b/internal/gitaly/service/operations/apply_patch.go index 3eae0c597..8c7e651ee 100644 --- a/internal/gitaly/service/operations/apply_patch.go +++ b/internal/gitaly/service/operations/apply_patch.go @@ -50,7 +50,7 @@ func (s *Server) UserApplyPatch(stream gitalypb.OperationService_UserApplyPatchS } if err := s.userApplyPatch(stream.Context(), header, stream); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/operations/branches.go b/internal/gitaly/service/operations/branches.go index 55784543d..bc7d79b96 100644 --- a/internal/gitaly/service/operations/branches.go +++ b/internal/gitaly/service/operations/branches.go @@ -126,12 +126,12 @@ func (s *Server) UserUpdateBranch(ctx context.Context, req *gitalypb.UserUpdateB newOID, err := git.ObjectHashSHA1.FromHex(string(req.Newrev)) if err != nil { - return nil, helper.ErrInternalf("could not parse newrev: %w", err) + return nil, structerr.NewInternal("could not parse newrev: %w", err) } oldOID, err := git.ObjectHashSHA1.FromHex(string(req.Oldrev)) if err != nil { - return nil, helper.ErrInternalf("could not parse oldrev: %w", err) + return nil, structerr.NewInternal("could not parse oldrev: %w", err) } referenceName := git.NewReferenceNameFromBranchName(string(req.BranchName)) @@ -244,7 +244,7 @@ func (s *Server) UserDeleteBranch(ctx context.Context, req *gitalypb.UserDeleteB ) } - return nil, helper.ErrInternalf("deleting reference: %w", err) + return nil, structerr.NewInternal("deleting reference: %w", err) } return &gitalypb.UserDeleteBranchResponse{}, nil diff --git a/internal/gitaly/service/operations/cherry_pick.go b/internal/gitaly/service/operations/cherry_pick.go index 5dd9e70bc..14b22d45c 100644 --- a/internal/gitaly/service/operations/cherry_pick.go +++ b/internal/gitaly/service/operations/cherry_pick.go @@ -34,7 +34,7 @@ func (s *Server) UserCherryPick(ctx context.Context, req *gitalypb.UserCherryPic repoHadBranches, err := quarantineRepo.HasBranches(ctx) if err != nil { - return nil, helper.ErrInternalf("has branches: %w", err) + return nil, structerr.NewInternal("has branches: %w", err) } repoPath, err := quarantineRepo.Path() @@ -93,7 +93,7 @@ func (s *Server) UserCherryPick(ctx context.Context, req *gitalypb.UserCherryPic case errors.Is(err, git2go.ErrInvalidArgument): return nil, helper.ErrInvalidArgumentf("%w", err) default: - return nil, helper.ErrInternalf("cherry-pick command: %w", err) + return nil, structerr.NewInternal("cherry-pick command: %w", err) } } @@ -130,7 +130,7 @@ func (s *Server) UserCherryPick(ctx context.Context, req *gitalypb.UserCherryPic if !branchCreated { ancestor, err := quarantineRepo.IsAncestor(ctx, oldrev.Revision(), newrev.Revision()) if err != nil { - return nil, helper.ErrInternalf("checking for ancestry: %w", err) + return nil, structerr.NewInternal("checking for ancestry: %w", err) } if !ancestor { return nil, structerr.NewFailedPrecondition("cherry-pick: branch diverged").WithDetail( @@ -167,7 +167,7 @@ func (s *Server) UserCherryPick(ctx context.Context, req *gitalypb.UserCherryPic }, nil } - return nil, helper.ErrInternalf("update reference with hooks: %w", err) + return nil, structerr.NewInternal("update reference with hooks: %w", err) } return &gitalypb.UserCherryPickResponse{ diff --git a/internal/gitaly/service/operations/commit_files.go b/internal/gitaly/service/operations/commit_files.go index 35b2e00f3..234ca56da 100644 --- a/internal/gitaly/service/operations/commit_files.go +++ b/internal/gitaly/service/operations/commit_files.go @@ -107,7 +107,7 @@ func (s *Server) UserCommitFiles(stream gitalypb.OperationService_UserCommitFile case errors.As(err, new(git2go.InvalidArgumentError)): return helper.ErrInvalidArgumentf("%w", err) default: - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } ctxlogrus.Extract(ctx).WithError(err).Error("user commit files failed") diff --git a/internal/gitaly/service/operations/merge.go b/internal/gitaly/service/operations/merge.go index ea12ce40f..496271c98 100644 --- a/internal/gitaly/service/operations/merge.go +++ b/internal/gitaly/service/operations/merge.go @@ -139,12 +139,12 @@ func (s *Server) UserMergeBranch(stream gitalypb.OperationService_UserMergeBranc ) } - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } mergeOID, err := git.ObjectHashSHA1.FromHex(merge.CommitID) if err != nil { - return helper.ErrInternalf("could not parse merge ID: %w", err) + return structerr.NewInternal("could not parse merge ID: %w", err) } if err := stream.Send(&gitalypb.UserMergeBranchResponse{ @@ -207,7 +207,7 @@ func (s *Server) UserMergeBranch(stream gitalypb.OperationService_UserMergeBranc ) } - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } if err := stream.Send(&gitalypb.UserMergeBranchResponse{ @@ -271,7 +271,7 @@ func (s *Server) UserFFBranch(ctx context.Context, in *gitalypb.UserFFBranchRequ ancestor, err := quarantineRepo.IsAncestor(ctx, revision.Revision(), commitID.Revision()) if err != nil { - return nil, helper.ErrInternalf("checking for ancestry: %w", err) + return nil, structerr.NewInternal("checking for ancestry: %w", err) } if !ancestor { return nil, structerr.NewFailedPrecondition("not fast forward") @@ -293,7 +293,7 @@ func (s *Server) UserFFBranch(ctx context.Context, in *gitalypb.UserFFBranchRequ return &gitalypb.UserFFBranchResponse{}, nil } - return nil, helper.ErrInternalf("updating ref with hooks: %w", err) + return nil, structerr.NewInternal("updating ref with hooks: %w", err) } return &gitalypb.UserFFBranchResponse{ @@ -377,14 +377,14 @@ func (s *Server) UserMergeToRef(ctx context.Context, request *gitalypb.UserMerge oid, err := git.ObjectHashSHA1.FromHex(targetRef.Target) if err != nil { - return nil, helper.ErrInternalf("invalid target revision: %w", err) + return nil, structerr.NewInternal("invalid target revision: %w", err) } oldTargetOID = oid } else if errors.Is(err, git.ErrReferenceNotFound) { oldTargetOID = git.ObjectHashSHA1.ZeroOID } else { - return nil, helper.ErrInternalf("could not read target reference: %w", err) + return nil, structerr.NewInternal("could not read target reference: %w", err) } // Now, we create the merge commit... @@ -416,7 +416,7 @@ func (s *Server) UserMergeToRef(ctx context.Context, request *gitalypb.UserMerge mergeOID, err := git.ObjectHashSHA1.FromHex(merge.CommitID) if err != nil { - return nil, helper.ErrInternalf("parsing merge commit SHA: %w", err) + return nil, structerr.NewInternal("parsing merge commit SHA: %w", err) } // ... and move branch from target ref to the merge commit. The Ruby diff --git a/internal/gitaly/service/operations/rebase.go b/internal/gitaly/service/operations/rebase.go index d0caec7d3..e21a27c1d 100644 --- a/internal/gitaly/service/operations/rebase.go +++ b/internal/gitaly/service/operations/rebase.go @@ -34,7 +34,7 @@ func (s *Server) UserRebaseConfirmable(stream gitalypb.OperationService_UserReba quarantineDir, quarantineRepo, err := s.quarantinedRepo(ctx, header.GetRepository()) if err != nil { - return helper.ErrInternalf("creating repo quarantine: %w", err) + return structerr.NewInternal("creating repo quarantine: %w", err) } repoPath, err := quarantineRepo.Path() @@ -51,7 +51,7 @@ func (s *Server) UserRebaseConfirmable(stream gitalypb.OperationService_UserReba remoteFetch := rebaseRemoteFetch{header: header} startRevision, err := s.fetchStartRevision(ctx, quarantineRepo, remoteFetch) if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } committer := git2go.NewSignature(string(header.User.Name), string(header.User.Email), time.Now()) @@ -89,7 +89,7 @@ func (s *Server) UserRebaseConfirmable(stream gitalypb.OperationService_UserReba ) } - return helper.ErrInternalf("rebasing commits: %w", err) + return structerr.NewInternal("rebasing commits: %w", err) } if err := stream.Send(&gitalypb.UserRebaseConfirmableResponse{ @@ -97,12 +97,12 @@ func (s *Server) UserRebaseConfirmable(stream gitalypb.OperationService_UserReba RebaseSha: newrev.String(), }, }); err != nil { - return helper.ErrInternalf("send rebase sha: %w", err) + return structerr.NewInternal("send rebase sha: %w", err) } secondRequest, err := stream.Recv() if err != nil { - return helper.ErrInternalf("recv: %w", err) + return structerr.NewInternal("recv: %w", err) } if !secondRequest.GetApply() { @@ -135,7 +135,7 @@ func (s *Server) UserRebaseConfirmable(stream gitalypb.OperationService_UserReba return fmt.Errorf("update ref: %w", err) } - return helper.ErrInternalf("updating ref with hooks: %w", err) + return structerr.NewInternal("updating ref with hooks: %w", err) } return stream.Send(&gitalypb.UserRebaseConfirmableResponse{ diff --git a/internal/gitaly/service/operations/rebase_test.go b/internal/gitaly/service/operations/rebase_test.go index 56852f87f..c2616f2d4 100644 --- a/internal/gitaly/service/operations/rebase_test.go +++ b/internal/gitaly/service/operations/rebase_test.go @@ -12,7 +12,6 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/gittest" "gitlab.com/gitlab-org/gitaly/v15/internal/git/localrepo" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/transaction" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/metadata" "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper" @@ -440,7 +439,7 @@ func TestUserRebaseConfirmable_abortViaClose(t *testing.T) { { desc: "no request just close", closeSend: true, - expectedErr: helper.ErrInternalf("recv: EOF"), + expectedErr: structerr.NewInternal("recv: EOF"), }, } diff --git a/internal/gitaly/service/operations/revert.go b/internal/gitaly/service/operations/revert.go index 22e745f09..1bc28e4b6 100644 --- a/internal/gitaly/service/operations/revert.go +++ b/internal/gitaly/service/operations/revert.go @@ -11,6 +11,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/updateref" "gitlab.com/gitlab-org/gitaly/v15/internal/git2go" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -32,12 +33,12 @@ func (s *Server) UserRevert(ctx context.Context, req *gitalypb.UserRevertRequest repoHadBranches, err := quarantineRepo.HasBranches(ctx) if err != nil { - return nil, helper.ErrInternalf("has branches: %w", err) + return nil, structerr.NewInternal("has branches: %w", err) } repoPath, err := quarantineRepo.Path() if err != nil { - return nil, helper.ErrInternalf("get path: %w", err) + return nil, structerr.NewInternal("get path: %w", err) } var mainline uint @@ -74,7 +75,7 @@ func (s *Server) UserRevert(ctx context.Context, req *gitalypb.UserRevertRequest } else if errors.Is(err, git2go.ErrInvalidArgument) { return nil, helper.ErrInvalidArgumentf("%w", err) } else { - return nil, helper.ErrInternalf("revert command: %w", err) + return nil, structerr.NewInternal("revert command: %w", err) } } @@ -96,7 +97,7 @@ func (s *Server) UserRevert(ctx context.Context, req *gitalypb.UserRevertRequest if !branchCreated { ancestor, err := quarantineRepo.IsAncestor(ctx, oldrev.Revision(), newrev.Revision()) if err != nil { - return nil, helper.ErrInternalf("checking for ancestry: %w", err) + return nil, structerr.NewInternal("checking for ancestry: %w", err) } if !ancestor { return &gitalypb.UserRevertResponse{ @@ -146,7 +147,7 @@ func (s *Server) fetchStartRevision( var err error remoteRepo, err = remoterepo.New(ctx, startRepository, s.conns) if err != nil { - return "", helper.ErrInternalf("%w", err) + return "", structerr.NewInternal("%w", err) } } @@ -167,7 +168,7 @@ func (s *Server) fetchStartRevision( []string{startRevision.String()}, localrepo.FetchOpts{Tags: localrepo.FetchOptsTagsNone}, ); err != nil { - return "", helper.ErrInternalf("fetch start: %w", err) + return "", structerr.NewInternal("fetch start: %w", err) } } else if err != nil { return "", helper.ErrInvalidArgumentf("resolve start: %w", err) diff --git a/internal/gitaly/service/operations/server.go b/internal/gitaly/service/operations/server.go index c880aa8da..39ba74340 100644 --- a/internal/gitaly/service/operations/server.go +++ b/internal/gitaly/service/operations/server.go @@ -14,7 +14,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/hook" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/storage" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/transaction" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -63,7 +63,7 @@ func (s *Server) quarantinedRepo( ) (*quarantine.Dir, *localrepo.Repo, error) { quarantineDir, err := quarantine.New(ctx, repo, s.locator) if err != nil { - return nil, nil, helper.ErrInternalf("creating object quarantine: %w", err) + return nil, nil, structerr.NewInternal("creating object quarantine: %w", err) } quarantineRepo := s.localrepo(quarantineDir.QuarantinedRepo()) diff --git a/internal/gitaly/service/operations/squash.go b/internal/gitaly/service/operations/squash.go index 9cdb260be..d08782bce 100644 --- a/internal/gitaly/service/operations/squash.go +++ b/internal/gitaly/service/operations/squash.go @@ -28,7 +28,7 @@ func (s *Server) UserSquash(ctx context.Context, req *gitalypb.UserSquashRequest sha, err := s.userSquash(ctx, req) if err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.UserSquashResponse{SquashSha: sha}, nil @@ -83,12 +83,12 @@ func (s *Server) userSquash(ctx context.Context, req *gitalypb.UserSquashRequest // transactional voting before we commit data to disk. quarantineDir, quarantineRepo, err := s.quarantinedRepo(ctx, req.GetRepository()) if err != nil { - return "", helper.ErrInternalf("creating quarantine: %w", err) + return "", structerr.NewInternal("creating quarantine: %w", err) } quarantineRepoPath, err := quarantineRepo.Path() if err != nil { - return "", helper.ErrInternalf("getting quarantine path: %w", err) + return "", structerr.NewInternal("getting quarantine path: %w", err) } // We need to retrieve the start commit such that we can create the new commit with @@ -192,7 +192,7 @@ func (s *Server) userSquash(ctx context.Context, req *gitalypb.UserSquashRequest } if err := quarantineDir.Migrate(); err != nil { - return "", helper.ErrInternalf("migrating quarantine directory: %w", err) + return "", structerr.NewInternal("migrating quarantine directory: %w", err) } if err := transaction.VoteOnContext( diff --git a/internal/gitaly/service/operations/submodules.go b/internal/gitaly/service/operations/submodules.go index ec2687ab7..a91c09004 100644 --- a/internal/gitaly/service/operations/submodules.go +++ b/internal/gitaly/service/operations/submodules.go @@ -13,6 +13,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git2go" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -65,7 +66,7 @@ func (s *Server) userUpdateSubmodule(ctx context.Context, req *gitalypb.UserUpda branches, err := quarantineRepo.GetBranches(ctx) if err != nil { - return nil, helper.ErrInternalf("get branches: %w", err) + return nil, structerr.NewInternal("get branches: %w", err) } if len(branches) == 0 { return &gitalypb.UserUpdateSubmoduleResponse{ @@ -80,7 +81,7 @@ func (s *Server) userUpdateSubmodule(ctx context.Context, req *gitalypb.UserUpda if errors.Is(err, git.ErrReferenceNotFound) { return nil, helper.ErrInvalidArgumentf("Cannot find branch") } - return nil, helper.ErrInternalf("resolving revision: %w", err) + return nil, structerr.NewInternal("resolving revision: %w", err) } repoPath, err := quarantineRepo.Path() @@ -132,7 +133,7 @@ func (s *Server) userUpdateSubmodule(ctx context.Context, req *gitalypb.UserUpda if resp != nil { return resp, nil } - return nil, helper.ErrInternalf("submodule subcommand: %w", err) + return nil, structerr.NewInternal("submodule subcommand: %w", err) } commitID, err := git.ObjectHashSHA1.FromHex(result.CommitID) @@ -163,7 +164,7 @@ func (s *Server) userUpdateSubmodule(ctx context.Context, req *gitalypb.UserUpda }, nil } - return nil, helper.ErrInternalf("updating ref with hooks: %w", err) + return nil, structerr.NewInternal("updating ref with hooks: %w", err) } return &gitalypb.UserUpdateSubmoduleResponse{ diff --git a/internal/gitaly/service/operations/tags.go b/internal/gitaly/service/operations/tags.go index 350eb918f..f7d1164c3 100644 --- a/internal/gitaly/service/operations/tags.go +++ b/internal/gitaly/service/operations/tags.go @@ -77,7 +77,7 @@ func (s *Server) UserDeleteTag(ctx context.Context, req *gitalypb.UserDeleteTagR return nil, structerr.NewFailedPrecondition("%w", err) } - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.UserDeleteTagResponse{}, nil @@ -143,7 +143,7 @@ func (s *Server) UserCreateTag(ctx context.Context, req *gitalypb.UserCreateTagR // If the reference wasn't found we're on the happy path, otherwise // something has gone wrong. if !errors.Is(err, git.ErrReferenceNotFound) { - return nil, helper.ErrInternalf("resolving target reference: %w", err) + return nil, structerr.NewInternal("resolving target reference: %w", err) } } else { // When resolving the revision succeeds the tag reference exists already. @@ -206,7 +206,7 @@ func (s *Server) UserCreateTag(ctx context.Context, req *gitalypb.UserCreateTagR ) } - return nil, helper.ErrInternalf("updating reference: %w", err) + return nil, structerr.NewInternal("updating reference: %w", err) } return &gitalypb.UserCreateTagResponse{ @@ -225,13 +225,13 @@ func (s *Server) createTag( ) (*gitalypb.Tag, git.ObjectID, error) { objectReader, cancel, err := s.catfileCache.ObjectReader(ctx, repo) if err != nil { - return nil, "", helper.ErrInternalf("creating object reader: %w", err) + return nil, "", structerr.NewInternal("creating object reader: %w", err) } defer cancel() objectInfoReader, cancel, err := s.catfileCache.ObjectInfoReader(ctx, repo) if err != nil { - return nil, "", helper.ErrInternalf("creating object info reader: %w", err) + return nil, "", structerr.NewInternal("creating object info reader: %w", err) } defer cancel() @@ -261,7 +261,7 @@ func (s *Server) createTag( if targetObjectType == "tag" { peeledTargetObjectInfo, err := objectInfoReader.Info(ctx, targetRevision+"^{}") if err != nil { - return nil, "", helper.ErrInternalf("reading object info: %w", err) + return nil, "", structerr.NewInternal("reading object info: %w", err) } peeledTargetObjectID, peeledTargetObjectType = peeledTargetObjectInfo.Oid, peeledTargetObjectInfo.Type @@ -291,12 +291,12 @@ func (s *Server) createTag( if errors.As(err, &MktagError) { return nil, "", helper.ErrNotFoundf("Gitlab::Git::CommitError: %s", err.Error()) } - return nil, "", helper.ErrInternalf("writing tag: %w", err) + return nil, "", structerr.NewInternal("writing tag: %w", err) } createdTag, err := catfile.GetTag(ctx, objectReader, tagObjectID.Revision(), string(tagName)) if err != nil { - return nil, "", helper.ErrInternalf("getting tag: %w", err) + return nil, "", structerr.NewInternal("getting tag: %w", err) } tagObject = &gitalypb.Tag{ @@ -321,7 +321,7 @@ func (s *Server) createTag( if peeledTargetObjectType == "commit" { peeledTargetCommit, err := catfile.GetCommit(ctx, objectReader, peeledTargetObjectID.Revision()) if err != nil { - return nil, "", helper.ErrInternalf("getting commit: %w", err) + return nil, "", structerr.NewInternal("getting commit: %w", err) } tagObject.TargetCommit = peeledTargetCommit } diff --git a/internal/gitaly/service/ref/delete_refs.go b/internal/gitaly/service/ref/delete_refs.go index 44986a150..290ebd67b 100644 --- a/internal/gitaly/service/ref/delete_refs.go +++ b/internal/gitaly/service/ref/delete_refs.go @@ -27,7 +27,7 @@ func (s *server) DeleteRefs(ctx context.Context, in *gitalypb.DeleteRefsRequest) refnames, err := s.refsToRemove(ctx, repo, in) if err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } updater, err := updateref.New(ctx, repo, updateref.WithNoDeref()) @@ -35,7 +35,7 @@ func (s *server) DeleteRefs(ctx context.Context, in *gitalypb.DeleteRefsRequest) if errors.Is(err, git.ErrInvalidArg) { return nil, helper.ErrInvalidArgumentf("%w", err) } - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } defer func() { if err := updater.Close(); err != nil && returnedErr == nil { @@ -74,20 +74,20 @@ func (s *server) DeleteRefs(ctx context.Context, in *gitalypb.DeleteRefsRequest) } if err := updater.Start(); err != nil { - return nil, helper.ErrInternalf("start reference transaction: %w", err) + return nil, structerr.NewInternal("start reference transaction: %w", err) } for _, ref := range refnames { if err := updater.Delete(ref); err != nil { if featureflag.DeleteRefsStructuredErrors.IsEnabled(ctx) { - return nil, helper.ErrInternalf("unable to delete refs: %w", err) + return nil, structerr.NewInternal("unable to delete refs: %w", err) } return &gitalypb.DeleteRefsResponse{GitError: err.Error()}, nil } if _, err := voteHash.Write([]byte(ref.String() + "\n")); err != nil { - return nil, helper.ErrInternalf("could not update vote hash: %w", err) + return nil, structerr.NewInternal("could not update vote hash: %w", err) } } @@ -106,7 +106,7 @@ func (s *server) DeleteRefs(ctx context.Context, in *gitalypb.DeleteRefsRequest) ) } - return nil, helper.ErrInternalf("unable to prepare: %w", err) + return nil, structerr.NewInternal("unable to prepare: %w", err) } return &gitalypb.DeleteRefsResponse{ @@ -116,7 +116,7 @@ func (s *server) DeleteRefs(ctx context.Context, in *gitalypb.DeleteRefsRequest) vote, err := voteHash.Vote() if err != nil { - return nil, helper.ErrInternalf("could not compute vote: %w", err) + return nil, structerr.NewInternal("could not compute vote: %w", err) } // All deletes we're doing in this RPC are force deletions. Because we're required to filter @@ -124,19 +124,19 @@ func (s *server) DeleteRefs(ctx context.Context, in *gitalypb.DeleteRefsRequest) // reference-transaction hook here. Instead, we need to resort to a manual vote which is // simply the concatenation of all reference we're about to delete. if err := transaction.VoteOnContext(ctx, s.txManager, vote, voting.Prepared); err != nil { - return nil, helper.ErrInternalf("preparatory vote: %w", err) + return nil, structerr.NewInternal("preparatory vote: %w", err) } if err := updater.Commit(); err != nil { if featureflag.DeleteRefsStructuredErrors.IsEnabled(ctx) { - return nil, helper.ErrInternalf("unable to commit: %w", err) + return nil, structerr.NewInternal("unable to commit: %w", err) } return &gitalypb.DeleteRefsResponse{GitError: fmt.Sprintf("unable to delete refs: %s", err.Error())}, nil } if err := transaction.VoteOnContext(ctx, s.txManager, vote, voting.Committed); err != nil { - return nil, helper.ErrInternalf("committing vote: %w", err) + return nil, structerr.NewInternal("committing vote: %w", err) } return &gitalypb.DeleteRefsResponse{}, nil diff --git a/internal/gitaly/service/ref/find_all_tags.go b/internal/gitaly/service/ref/find_all_tags.go index eb2e0bb94..9b78a9d44 100644 --- a/internal/gitaly/service/ref/find_all_tags.go +++ b/internal/gitaly/service/ref/find_all_tags.go @@ -13,6 +13,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/chunk" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "google.golang.org/protobuf/proto" ) @@ -34,7 +35,7 @@ func (s *server) FindAllTags(in *gitalypb.FindAllTagsRequest, stream gitalypb.Re repo := s.localrepo(in.GetRepository()) if err := s.findAllTags(ctx, repo, sortField, stream, opts); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/ref/find_refs_by_oid.go b/internal/gitaly/service/ref/find_refs_by_oid.go index a03380531..e02880c6d 100644 --- a/internal/gitaly/service/ref/find_refs_by_oid.go +++ b/internal/gitaly/service/ref/find_refs_by_oid.go @@ -8,6 +8,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/gitpipe" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -43,7 +44,7 @@ func (s *server) FindRefsByOID(ctx context.Context, in *gitalypb.FindRefsByOIDRe if strings.Contains(err.Error(), "exit status 129") { return nil, helper.ErrInvalidArgumentf("%w", err) } - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.FindRefsByOIDResponse{ diff --git a/internal/gitaly/service/ref/find_tag.go b/internal/gitaly/service/ref/find_tag.go index 1316420bb..c93828b1f 100644 --- a/internal/gitaly/service/ref/find_tag.go +++ b/internal/gitaly/service/ref/find_tag.go @@ -24,7 +24,7 @@ func (s *server) FindTag(ctx context.Context, in *gitalypb.FindTagRequest) (*git tag, err := s.findTag(ctx, repo, in.GetTagName()) if err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.FindTagResponse{Tag: tag}, nil diff --git a/internal/gitaly/service/ref/list_refs.go b/internal/gitaly/service/ref/list_refs.go index 3dcd0923c..777a3ad14 100644 --- a/internal/gitaly/service/ref/list_refs.go +++ b/internal/gitaly/service/ref/list_refs.go @@ -9,6 +9,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/lines" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -25,7 +26,7 @@ func (s *server) ListRefs(in *gitalypb.ListRefsRequest, stream gitalypb.RefServi var err error headOID, err = repo.ResolveRevision(ctx, git.Revision("HEAD")) if err != nil && !errors.Is(err, git.ErrReferenceNotFound) { - return helper.ErrInternalf("resolving HEAD: %w", err) + return structerr.NewInternal("resolving HEAD: %w", err) } } @@ -45,7 +46,7 @@ func (s *server) ListRefs(in *gitalypb.ListRefsRequest, stream gitalypb.RefServi } if err := s.findRefs(ctx, writer, repo, patterns, opts); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/ref/pack_refs.go b/internal/gitaly/service/ref/pack_refs.go index d4c0685fb..b8558ae1f 100644 --- a/internal/gitaly/service/ref/pack_refs.go +++ b/internal/gitaly/service/ref/pack_refs.go @@ -7,6 +7,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/repository" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -16,7 +17,7 @@ func (s *server) PackRefs(ctx context.Context, in *gitalypb.PackRefsRequest) (*g } if err := s.packRefs(ctx, in.GetRepository()); err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.PackRefsResponse{}, nil diff --git a/internal/gitaly/service/ref/refexists.go b/internal/gitaly/service/ref/refexists.go index c8210930e..109f8c456 100644 --- a/internal/gitaly/service/ref/refexists.go +++ b/internal/gitaly/service/ref/refexists.go @@ -8,6 +8,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -25,7 +26,7 @@ func (s *server) RefExists(ctx context.Context, in *gitalypb.RefExistsRequest) ( exists, err := s.refExists(ctx, in.Repository, ref) if err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.RefExistsResponse{Value: exists}, nil diff --git a/internal/gitaly/service/ref/refnames.go b/internal/gitaly/service/ref/refnames.go index 4f9b45755..fe046f096 100644 --- a/internal/gitaly/service/ref/refnames.go +++ b/internal/gitaly/service/ref/refnames.go @@ -8,6 +8,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/chunk" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/known/wrapperspb" @@ -22,7 +23,7 @@ func (s *server) FindAllBranchNames(in *gitalypb.FindAllBranchNamesRequest, stre chunker := chunk.New(&findAllBranchNamesSender{stream: stream}) if err := s.listRefNames(stream.Context(), chunker, "refs/heads", in.Repository, nil); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil @@ -50,7 +51,7 @@ func (s *server) FindAllTagNames(in *gitalypb.FindAllTagNamesRequest, stream git chunker := chunk.New(&findAllTagNamesSender{stream: stream}) if err := s.listRefNames(stream.Context(), chunker, "refs/tags", in.Repository, nil); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/ref/refnames_containing.go b/internal/gitaly/service/ref/refnames_containing.go index 7a95b29de..d751425e2 100644 --- a/internal/gitaly/service/ref/refnames_containing.go +++ b/internal/gitaly/service/ref/refnames_containing.go @@ -8,6 +8,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/chunk" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/known/wrapperspb" @@ -26,7 +27,7 @@ func (s *server) ListBranchNamesContainingCommit(in *gitalypb.ListBranchNamesCon chunker := chunk.New(&branchNamesContainingCommitSender{stream: stream}) ctx := stream.Context() if err := s.listRefNames(ctx, chunker, "refs/heads", in.Repository, containingArgs(in)); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil @@ -72,7 +73,7 @@ func (s *server) ListTagNamesContainingCommit(in *gitalypb.ListTagNamesContainin chunker := chunk.New(&tagNamesContainingCommitSender{stream: stream}) ctx := stream.Context() if err := s.listRefNames(ctx, chunker, "refs/tags", in.Repository, containingArgs(in)); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/ref/refs.go b/internal/gitaly/service/ref/refs.go index 455367d28..de7d5aa88 100644 --- a/internal/gitaly/service/ref/refs.go +++ b/internal/gitaly/service/ref/refs.go @@ -11,6 +11,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/lines" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -78,7 +79,7 @@ func (s *server) FindDefaultBranchName(ctx context.Context, in *gitalypb.FindDef defaultBranch, err := repo.GetDefaultBranch(ctx) if err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.FindDefaultBranchNameResponse{Name: []byte(defaultBranch)}, nil @@ -103,7 +104,7 @@ func (s *server) FindLocalBranches(in *gitalypb.FindLocalBranchesRequest, stream return helper.ErrInvalidArgumentf("%w", err) } if err := s.findLocalBranches(in, stream); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil @@ -139,7 +140,7 @@ func (s *server) FindAllBranches(in *gitalypb.FindAllBranchesRequest, stream git return helper.ErrInvalidArgumentf("%w", err) } if err := s.findAllBranches(in, stream); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/ref/refs_test.go b/internal/gitaly/service/ref/refs_test.go index 857bdeb99..7dba0a181 100644 --- a/internal/gitaly/service/ref/refs_test.go +++ b/internal/gitaly/service/ref/refs_test.go @@ -17,6 +17,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/gittest" "gitlab.com/gitlab-org/gitaly/v15/internal/git/localrepo" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "google.golang.org/grpc/codes" @@ -503,7 +504,7 @@ func TestFindLocalBranchesPaginationWithIncorrectToken(t *testing.T) { _, err = c.Recv() require.NotEqual(t, err, io.EOF) - testhelper.RequireGrpcError(t, helper.ErrInternalf("finding refs: could not find page token"), err) + testhelper.RequireGrpcError(t, structerr.NewInternal("finding refs: could not find page token"), err) } // Test that `s` contains the elements in `relativeOrder` in that order diff --git a/internal/gitaly/service/ref/remote_branches.go b/internal/gitaly/service/ref/remote_branches.go index 3cc0ee77b..121947d08 100644 --- a/internal/gitaly/service/ref/remote_branches.go +++ b/internal/gitaly/service/ref/remote_branches.go @@ -8,6 +8,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -17,7 +18,7 @@ func (s *server) FindAllRemoteBranches(req *gitalypb.FindAllRemoteBranchesReques } if err := s.findAllRemoteBranches(req, stream); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/ref/tag_messages.go b/internal/gitaly/service/ref/tag_messages.go index df7dbf1cc..922191ccb 100644 --- a/internal/gitaly/service/ref/tag_messages.go +++ b/internal/gitaly/service/ref/tag_messages.go @@ -9,6 +9,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/catfile" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" ) @@ -18,7 +19,7 @@ func (s *server) GetTagMessages(request *gitalypb.GetTagMessagesRequest, stream return helper.ErrInvalidArgumentf("%w", err) } if err := s.getAndStreamTagMessages(request, stream); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/ref/tag_signatures.go b/internal/gitaly/service/ref/tag_signatures.go index 02364fcf9..0c036b1de 100644 --- a/internal/gitaly/service/ref/tag_signatures.go +++ b/internal/gitaly/service/ref/tag_signatures.go @@ -11,6 +11,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/chunk" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "google.golang.org/protobuf/proto" ) @@ -42,7 +43,7 @@ func (s *server) GetTagSignatures(req *gitalypb.GetTagSignaturesRequest, stream objectReader, cancel, err := s.catfileCache.ObjectReader(ctx, repo) if err != nil { - return helper.ErrInternalf("creating object reader: %w", err) + return structerr.NewInternal("creating object reader: %w", err) } defer cancel() @@ -63,7 +64,7 @@ func (s *server) GetTagSignatures(req *gitalypb.GetTagSignaturesRequest, stream catfileObjectIter, err := gitpipe.CatfileObject(ctx, objectReader, revlistIter) if err != nil { - return helper.ErrInternalf("creating cat-file object iterator: %w", err) + return structerr.NewInternal("creating cat-file object iterator: %w", err) } for catfileObjectIter.Next() { @@ -71,7 +72,7 @@ func (s *server) GetTagSignatures(req *gitalypb.GetTagSignaturesRequest, stream raw, err := io.ReadAll(tag) if err != nil { - return helper.ErrInternalf("reading tag: %w", err) + return structerr.NewInternal("reading tag: %w", err) } signatureKey, tagText := catfile.ExtractTagSignature(raw) @@ -81,16 +82,16 @@ func (s *server) GetTagSignatures(req *gitalypb.GetTagSignaturesRequest, stream Signature: signatureKey, Content: tagText, }); err != nil { - return helper.ErrInternalf("sending tag signature chunk: %w", err) + return structerr.NewInternal("sending tag signature chunk: %w", err) } } if err := catfileObjectIter.Err(); err != nil { - return helper.ErrInternalf("cat-file iterator stop: %w", err) + return structerr.NewInternal("cat-file iterator stop: %w", err) } if err := chunker.Flush(); err != nil { - return helper.ErrInternalf("flushing chunker: %w", err) + return structerr.NewInternal("flushing chunker: %w", err) } return nil diff --git a/internal/gitaly/service/remote/find_remote_repository.go b/internal/gitaly/service/remote/find_remote_repository.go index 6e904ea21..3b713bc39 100644 --- a/internal/gitaly/service/remote/find_remote_repository.go +++ b/internal/gitaly/service/remote/find_remote_repository.go @@ -7,6 +7,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -25,12 +26,12 @@ func (s *server) FindRemoteRepository(ctx context.Context, req *gitalypb.FindRem }, ) if err != nil { - return nil, helper.ErrInternalf("error executing git command: %w", err) + return nil, structerr.NewInternal("error executing git command: %w", err) } output, err := io.ReadAll(cmd) if err != nil { - return nil, helper.ErrInternalf("unable to read stdout: %w", err) + return nil, structerr.NewInternal("unable to read stdout: %w", err) } if err := cmd.Wait(); err != nil { return &gitalypb.FindRemoteRepositoryResponse{Exists: false}, nil diff --git a/internal/gitaly/service/remote/find_remote_root_ref.go b/internal/gitaly/service/remote/find_remote_root_ref.go index edf6a8a00..348cd3cd9 100644 --- a/internal/gitaly/service/remote/find_remote_root_ref.go +++ b/internal/gitaly/service/remote/find_remote_root_ref.go @@ -10,6 +10,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -97,7 +98,7 @@ func (s *server) FindRemoteRootRef(ctx context.Context, in *gitalypb.FindRemoteR ref, err := s.findRemoteRootRef(ctx, in) if err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.FindRemoteRootRefResponse{Ref: ref}, nil diff --git a/internal/gitaly/service/remote/update_remote_mirror.go b/internal/gitaly/service/remote/update_remote_mirror.go index b64a4c627..fd8b975c5 100644 --- a/internal/gitaly/service/remote/update_remote_mirror.go +++ b/internal/gitaly/service/remote/update_remote_mirror.go @@ -13,6 +13,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/text" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -27,7 +28,7 @@ const ( func (s *server) UpdateRemoteMirror(stream gitalypb.RemoteService_UpdateRemoteMirrorServer) error { firstRequest, err := stream.Recv() if err != nil { - return helper.ErrInternalf("receive first request: %w", err) + return structerr.NewInternal("receive first request: %w", err) } if err = validateUpdateRemoteMirrorRequest(stream.Context(), firstRequest); err != nil { @@ -35,7 +36,7 @@ func (s *server) UpdateRemoteMirror(stream gitalypb.RemoteService_UpdateRemoteMi } if err := s.updateRemoteMirror(stream, firstRequest); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/repository/apply_gitattributes_test.go b/internal/gitaly/service/repository/apply_gitattributes_test.go index 3c76e6b26..7d5885bb2 100644 --- a/internal/gitaly/service/repository/apply_gitattributes_test.go +++ b/internal/gitaly/service/repository/apply_gitattributes_test.go @@ -152,7 +152,7 @@ func TestApplyGitattributes_transactional(t *testing.T) { }, shouldExist: false, expectedErr: func() error { - return helper.ErrInternalf("committing gitattributes: voting on locked file: preimage vote: transaction was aborted") + return structerr.NewInternal("committing gitattributes: voting on locked file: preimage vote: transaction was aborted") }(), expectedVotes: 1, }, diff --git a/internal/gitaly/service/repository/backup_custom_hooks.go b/internal/gitaly/service/repository/backup_custom_hooks.go index 8aa1e7de6..df89e47a5 100644 --- a/internal/gitaly/service/repository/backup_custom_hooks.go +++ b/internal/gitaly/service/repository/backup_custom_hooks.go @@ -8,6 +8,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/command" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" ) @@ -20,7 +21,7 @@ func (s *server) BackupCustomHooks(in *gitalypb.BackupCustomHooksRequest, stream } repoPath, err := s.locator.GetPath(in.Repository) if err != nil { - return helper.ErrInternalf("getting repo path failed %w", err) + return structerr.NewInternal("getting repo path failed %w", err) } writer := streamio.NewWriter(func(p []byte) error { @@ -41,11 +42,11 @@ func (s *server) BackupCustomHooks(in *gitalypb.BackupCustomHooksRequest, stream } cmd, err := command.New(ctx, tar, command.WithStdout(writer)) if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } if err := cmd.Wait(); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/repository/calculate_checksum.go b/internal/gitaly/service/repository/calculate_checksum.go index 77f5abb88..a1f73abba 100644 --- a/internal/gitaly/service/repository/calculate_checksum.go +++ b/internal/gitaly/service/repository/calculate_checksum.go @@ -27,7 +27,7 @@ func (s *server) CalculateChecksum(ctx context.Context, in *gitalypb.CalculateCh cmd, err := s.gitCmdFactory.New(ctx, repo, git.Command{Name: "show-ref", Flags: []git.Option{git.Flag{Name: "--head"}}}) if err != nil { - return nil, helper.ErrInternalf("gitCommand: %w", err) + return nil, structerr.NewInternal("gitCommand: %w", err) } var checksum git.Checksum @@ -38,7 +38,7 @@ func (s *server) CalculateChecksum(ctx context.Context, in *gitalypb.CalculateCh } if err := scanner.Err(); err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } if err := cmd.Wait(); checksum.IsZero() || err != nil { diff --git a/internal/gitaly/service/repository/commit_graph.go b/internal/gitaly/service/repository/commit_graph.go index 51f642737..1880d0171 100644 --- a/internal/gitaly/service/repository/commit_graph.go +++ b/internal/gitaly/service/repository/commit_graph.go @@ -6,6 +6,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/housekeeping" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -27,7 +28,7 @@ func (s *server) WriteCommitGraph( writeCommitGraphCfg, err := housekeeping.WriteCommitGraphConfigForRepository(ctx, repo) if err != nil { - return nil, helper.ErrInternalf("getting commit-graph config: %w", err) + return nil, structerr.NewInternal("getting commit-graph config: %w", err) } if err := housekeeping.WriteCommitGraph(ctx, repo, writeCommitGraphCfg); err != nil { diff --git a/internal/gitaly/service/repository/config.go b/internal/gitaly/service/repository/config.go index 2893a1b25..680fd3efe 100644 --- a/internal/gitaly/service/repository/config.go +++ b/internal/gitaly/service/repository/config.go @@ -7,6 +7,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" ) @@ -32,7 +33,7 @@ func (s *server) GetConfig( if os.IsNotExist(err) { return helper.ErrNotFoundf("opening gitconfig: %w", err) } - return helper.ErrInternalf("opening gitconfig: %w", err) + return structerr.NewInternal("opening gitconfig: %w", err) } writer := streamio.NewWriter(func(p []byte) error { @@ -42,7 +43,7 @@ func (s *server) GetConfig( }) if _, err := io.Copy(writer, gitconfig); err != nil { - return helper.ErrInternalf("sending config: %w", err) + return structerr.NewInternal("sending config: %w", err) } return nil diff --git a/internal/gitaly/service/repository/create_bundle.go b/internal/gitaly/service/repository/create_bundle.go index d0ce8ecf7..1acfa22d7 100644 --- a/internal/gitaly/service/repository/create_bundle.go +++ b/internal/gitaly/service/repository/create_bundle.go @@ -6,6 +6,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" ) @@ -19,7 +20,7 @@ func (s *server) CreateBundle(req *gitalypb.CreateBundleRequest, stream gitalypb ctx := stream.Context() if _, err := s.Cleanup(ctx, &gitalypb.CleanupRequest{Repository: repository}); err != nil { - return helper.ErrInternalf("running Cleanup on repository: %w", err) + return structerr.NewInternal("running Cleanup on repository: %w", err) } cmd, err := s.gitCmdFactory.New(ctx, repository, git.Command{ @@ -28,7 +29,7 @@ func (s *server) CreateBundle(req *gitalypb.CreateBundleRequest, stream gitalypb Flags: []git.Option{git.OutputToStdout, git.Flag{Name: "--all"}}, }) if err != nil { - return helper.ErrInternalf("cmd start failed: %w", err) + return structerr.NewInternal("cmd start failed: %w", err) } writer := streamio.NewWriter(func(p []byte) error { @@ -37,11 +38,11 @@ func (s *server) CreateBundle(req *gitalypb.CreateBundleRequest, stream gitalypb _, err = io.Copy(writer, cmd) if err != nil { - return helper.ErrInternalf("stream writer failed: %w", err) + return structerr.NewInternal("stream writer failed: %w", err) } if err := cmd.Wait(); err != nil { - return helper.ErrInternalf("cmd wait failed: %w", err) + return structerr.NewInternal("cmd wait failed: %w", err) } return nil diff --git a/internal/gitaly/service/repository/create_bundle_from_ref_list.go b/internal/gitaly/service/repository/create_bundle_from_ref_list.go index 84477a04a..c5921825e 100644 --- a/internal/gitaly/service/repository/create_bundle_from_ref_list.go +++ b/internal/gitaly/service/repository/create_bundle_from_ref_list.go @@ -63,7 +63,7 @@ func (s *server) CreateBundleFromRefList(stream gitalypb.RepositoryService_Creat git.WithStderr(&stderr), ) if err != nil { - return helper.ErrInternalf("cmd start failed: %w", err) + return structerr.NewInternal("cmd start failed: %w", err) } writer := streamio.NewWriter(func(p []byte) error { @@ -72,14 +72,14 @@ func (s *server) CreateBundleFromRefList(stream gitalypb.RepositoryService_Creat _, err = io.Copy(writer, cmd) if err != nil { - return helper.ErrInternalf("stream writer failed: %w", err) + return structerr.NewInternal("stream writer failed: %w", err) } err = cmd.Wait() if isExitWithCode(err, 128) && bytes.HasPrefix(stderr.Bytes(), []byte("fatal: Refusing to create empty bundle.")) { return structerr.NewFailedPrecondition("cmd wait failed: refusing to create empty bundle") } else if err != nil { - return helper.ErrInternalf("cmd wait failed: %w, stderr: %q", err, stderr.String()) + return structerr.NewInternal("cmd wait failed: %w, stderr: %q", err, stderr.String()) } return nil diff --git a/internal/gitaly/service/repository/create_fork.go b/internal/gitaly/service/repository/create_fork.go index d67916832..b182e65f4 100644 --- a/internal/gitaly/service/repository/create_fork.go +++ b/internal/gitaly/service/repository/create_fork.go @@ -9,6 +9,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -78,7 +79,7 @@ func (s *server) CreateFork(ctx context.Context, req *gitalypb.CreateForkRequest return nil }); err != nil { - return nil, helper.ErrInternalf("creating fork: %w", err) + return nil, structerr.NewInternal("creating fork: %w", err) } return &gitalypb.CreateForkResponse{}, nil diff --git a/internal/gitaly/service/repository/create_repository.go b/internal/gitaly/service/repository/create_repository.go index ef82be696..d78f142c2 100644 --- a/internal/gitaly/service/repository/create_repository.go +++ b/internal/gitaly/service/repository/create_repository.go @@ -6,6 +6,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -31,7 +32,7 @@ func (s *server) CreateRepository(ctx context.Context, req *gitalypb.CreateRepos withBranchName(string(req.GetDefaultBranch())), withObjectHash(hash), ); err != nil { - return nil, helper.ErrInternalf("creating repository: %w", err) + return nil, structerr.NewInternal("creating repository: %w", err) } return &gitalypb.CreateRepositoryResponse{}, nil diff --git a/internal/gitaly/service/repository/create_repository_from_bundle.go b/internal/gitaly/service/repository/create_repository_from_bundle.go index 9db3ecef6..65a16dfd5 100644 --- a/internal/gitaly/service/repository/create_repository_from_bundle.go +++ b/internal/gitaly/service/repository/create_repository_from_bundle.go @@ -11,6 +11,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/internal/tempdir" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" @@ -19,7 +20,7 @@ import ( func (s *server) CreateRepositoryFromBundle(stream gitalypb.RepositoryService_CreateRepositoryFromBundleServer) error { firstRequest, err := stream.Recv() if err != nil { - return helper.ErrInternalf("first request failed: %w", err) + return structerr.NewInternal("first request failed: %w", err) } repository := firstRequest.GetRepository() @@ -43,17 +44,17 @@ func (s *server) CreateRepositoryFromBundle(stream gitalypb.RepositoryService_Cr repo := repository bundleDir, err := tempdir.New(ctx, repo.GetStorageName(), s.locator) if err != nil { - return helper.ErrInternalf("creating bundle directory: %w", err) + return structerr.NewInternal("creating bundle directory: %w", err) } bundlePath := filepath.Join(bundleDir.Path(), "repo.bundle") bundleFile, err := os.Create(bundlePath) if err != nil { - return helper.ErrInternalf("creating bundle file: %w", err) + return structerr.NewInternal("creating bundle file: %w", err) } if _, err := io.Copy(bundleFile, bundleReader); err != nil { - return helper.ErrInternalf("writing bundle file: %w", err) + return structerr.NewInternal("writing bundle file: %w", err) } if err := s.createRepository(ctx, repo, func(repo *gitalypb.Repository) error { @@ -67,21 +68,21 @@ func (s *server) CreateRepositoryFromBundle(stream gitalypb.RepositoryService_Cr Args: []string{bundlePath, "refs/*:refs/*"}, }, git.WithStderr(&stderr), git.WithRefTxHook(repo)) if err != nil { - return helper.ErrInternalf("spawning fetch: %w", err) + return structerr.NewInternal("spawning fetch: %w", err) } if err := cmd.Wait(); err != nil { sanitizedStderr := sanitizedError("%s", stderr.String()) - return helper.ErrInternalf("fetch from bundle: %w, stderr: %q", err, sanitizedStderr) + return structerr.NewInternal("fetch from bundle: %w, stderr: %q", err, sanitizedStderr) } if err := s.updateHeadFromBundle(ctx, s.localrepo(repo), bundlePath); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil }); err != nil { - return helper.ErrInternalf("creating repository: %w", err) + return structerr.NewInternal("creating repository: %w", err) } return stream.SendAndClose(&gitalypb.CreateRepositoryFromBundleResponse{}) diff --git a/internal/gitaly/service/repository/create_repository_from_snapshot.go b/internal/gitaly/service/repository/create_repository_from_snapshot.go index cdc8583d8..1d4b6111a 100644 --- a/internal/gitaly/service/repository/create_repository_from_snapshot.go +++ b/internal/gitaly/service/repository/create_repository_from_snapshot.go @@ -11,6 +11,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/command" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/labkit/correlation" "gitlab.com/gitlab-org/labkit/tracing" @@ -107,12 +108,12 @@ func untar(ctx context.Context, path string, in *gitalypb.CreateRepositoryFromSn rsp, err := client.Do(req) if err != nil { - return helper.ErrInternalf("HTTP request failed: %w", err) + return structerr.NewInternal("HTTP request failed: %w", err) } defer rsp.Body.Close() if rsp.StatusCode < http.StatusOK || rsp.StatusCode >= http.StatusMultipleChoices { - return helper.ErrInternalf("HTTP server: %s", rsp.Status) + return structerr.NewInternal("HTTP server: %s", rsp.Status) } cmd, err := command.New(ctx, []string{"tar", "-C", path, "-xvf", "-"}, command.WithStdin(rsp.Body)) @@ -131,7 +132,7 @@ func (s *server) CreateRepositoryFromSnapshot(ctx context.Context, in *gitalypb. if err := s.createRepository(ctx, repository, func(repo *gitalypb.Repository) error { path, err := s.locator.GetPath(repo) if err != nil { - return helper.ErrInternalf("getting repo path: %w", err) + return structerr.NewInternal("getting repo path: %w", err) } // The archive contains a partial git repository, missing a config file and @@ -142,12 +143,12 @@ func (s *server) CreateRepositoryFromSnapshot(ctx context.Context, in *gitalypb. // NOTE: The received archive is trusted *a lot*. Before pointing this RPC // at endpoints not under our control, it should undergo a lot of hardening. if err := untar(ctx, path, in); err != nil { - return helper.ErrInternalf("extracting snapshot: %w", err) + return structerr.NewInternal("extracting snapshot: %w", err) } return nil }); err != nil { - return nil, helper.ErrInternalf("creating repository: %w", err) + return nil, structerr.NewInternal("creating repository: %w", err) } return &gitalypb.CreateRepositoryFromSnapshotResponse{}, nil diff --git a/internal/gitaly/service/repository/create_repository_from_url.go b/internal/gitaly/service/repository/create_repository_from_url.go index eb86bddb1..f0c86d805 100644 --- a/internal/gitaly/service/repository/create_repository_from_url.go +++ b/internal/gitaly/service/repository/create_repository_from_url.go @@ -12,6 +12,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -32,7 +33,7 @@ func (s *server) cloneFromURLCommand( u, err := url.Parse(repoURL) if err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } var config []git.ConfigPair @@ -125,7 +126,7 @@ func (s *server) CreateRepositoryFromURL(ctx context.Context, req *gitalypb.Crea return nil }); err != nil { - return nil, helper.ErrInternalf("creating repository: %w", err) + return nil, structerr.NewInternal("creating repository: %w", err) } return &gitalypb.CreateRepositoryFromURLResponse{}, nil diff --git a/internal/gitaly/service/repository/fetch.go b/internal/gitaly/service/repository/fetch.go index 7a77204b7..80f8f6dc9 100644 --- a/internal/gitaly/service/repository/fetch.go +++ b/internal/gitaly/service/repository/fetch.go @@ -10,6 +10,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/remoterepo" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -35,7 +36,7 @@ func (s *server) FetchSourceBranch(ctx context.Context, req *gitalypb.FetchSourc sourceRepo, err := remoterepo.New(ctx, req.GetSourceRepository(), s.conns) if err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } var sourceOid git.ObjectID @@ -53,7 +54,7 @@ func (s *server) FetchSourceBranch(ctx context.Context, req *gitalypb.FetchSourc if errors.Is(err, git.ErrReferenceNotFound) { return &gitalypb.FetchSourceBranchResponse{Result: false}, nil } - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } containsObject = true @@ -65,7 +66,7 @@ func (s *server) FetchSourceBranch(ctx context.Context, req *gitalypb.FetchSourc if errors.Is(err, git.ErrReferenceNotFound) { return &gitalypb.FetchSourceBranchResponse{Result: false}, nil } - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } // Otherwise, if the source is a remote repository, we check @@ -73,7 +74,7 @@ func (s *server) FetchSourceBranch(ctx context.Context, req *gitalypb.FetchSourc // If so, we can skip the fetch. containsObject, err = targetRepo.HasRevision(ctx, sourceOid.Revision()+"^{commit}") if err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } } diff --git a/internal/gitaly/service/repository/fetch_bundle.go b/internal/gitaly/service/repository/fetch_bundle.go index 8f234156e..5fcd8f92c 100644 --- a/internal/gitaly/service/repository/fetch_bundle.go +++ b/internal/gitaly/service/repository/fetch_bundle.go @@ -11,6 +11,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/localrepo" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/internal/tempdir" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" @@ -23,7 +24,7 @@ const ( func (s *server) FetchBundle(stream gitalypb.RepositoryService_FetchBundleServer) error { firstRequest, err := stream.Recv() if err != nil { - return helper.ErrInternalf("first request: %w", err) + return structerr.NewInternal("first request: %w", err) } if err := service.ValidateRepository(firstRequest.GetRepository()); err != nil { @@ -47,18 +48,18 @@ func (s *server) FetchBundle(stream gitalypb.RepositoryService_FetchBundleServer tmpDir, err := tempdir.New(ctx, repo.GetStorageName(), s.locator) if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } bundlePath := filepath.Join(tmpDir.Path(), "repo.bundle") file, err := os.Create(bundlePath) if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } _, err = io.Copy(file, reader) if err != nil { - return helper.ErrInternalf("copy bundle: %w", err) + return structerr.NewInternal("copy bundle: %w", err) } config := []git.ConfigPair{ @@ -70,12 +71,12 @@ func (s *server) FetchBundle(stream gitalypb.RepositoryService_FetchBundleServer } if err := repo.FetchRemote(ctx, "inmemory", opts); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } if updateHead { if err := s.updateHeadFromBundle(ctx, repo, bundlePath); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } } diff --git a/internal/gitaly/service/repository/fetch_remote.go b/internal/gitaly/service/repository/fetch_remote.go index 8a68f0160..1d37b1e34 100644 --- a/internal/gitaly/service/repository/fetch_remote.go +++ b/internal/gitaly/service/repository/fetch_remote.go @@ -94,10 +94,10 @@ func (s *server) FetchRemote(ctx context.Context, req *gitalypb.FetchRemoteReque if err := repo.FetchRemote(ctx, remoteName, opts); err != nil { errMsg := stderr.String() if errMsg != "" { - return nil, helper.ErrInternalf("fetch remote: %q: %w", errMsg, err) + return nil, structerr.NewInternal("fetch remote: %q: %w", errMsg, err) } - return nil, helper.ErrInternalf("fetch remote: %w", err) + return nil, structerr.NewInternal("fetch remote: %w", err) } // Ideally, we'd do the voting process via git-fetch(1) using the reference-transaction diff --git a/internal/gitaly/service/repository/fullpath.go b/internal/gitaly/service/repository/fullpath.go index 1bb4ccc20..ce2c12d72 100644 --- a/internal/gitaly/service/repository/fullpath.go +++ b/internal/gitaly/service/repository/fullpath.go @@ -7,6 +7,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -30,7 +31,7 @@ func (s *server) SetFullPath( repo := s.localrepo(repository) if err := repo.SetConfig(ctx, fullPathKey, request.GetPath(), s.txManager); err != nil { - return nil, helper.ErrInternalf("setting config: %w", err) + return nil, structerr.NewInternal("setting config: %w", err) } return &gitalypb.SetFullPathResponse{}, nil @@ -51,7 +52,7 @@ func (s *server) FullPath(ctx context.Context, request *gitalypb.FullPathRequest Args: []string{fullPathKey}, }, git.WithStdout(&stdout)) if err != nil { - return nil, helper.ErrInternalf("fetch config: %w", err) + return nil, structerr.NewInternal("fetch config: %w", err) } return &gitalypb.FullPathResponse{ diff --git a/internal/gitaly/service/repository/gc.go b/internal/gitaly/service/repository/gc.go index 87aca6b99..5dad3ac1a 100644 --- a/internal/gitaly/service/repository/gc.go +++ b/internal/gitaly/service/repository/gc.go @@ -17,6 +17,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/stats" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -78,11 +79,11 @@ func (s *server) gc(ctx context.Context, in *gitalypb.GarbageCollectRequest) err return helper.ErrInvalidArgumentf("gitCommand: %w", err) } - return helper.ErrInternalf("gitCommand: %w", err) + return structerr.NewInternal("gitCommand: %w", err) } if err := cmd.Wait(); err != nil { - return helper.ErrInternalf("cmd wait: %w", err) + return structerr.NewInternal("cmd wait: %w", err) } return nil diff --git a/internal/gitaly/service/repository/has_local_branches.go b/internal/gitaly/service/repository/has_local_branches.go index 41b471cb0..2b1f9e84d 100644 --- a/internal/gitaly/service/repository/has_local_branches.go +++ b/internal/gitaly/service/repository/has_local_branches.go @@ -5,6 +5,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -15,7 +16,7 @@ func (s *server) HasLocalBranches(ctx context.Context, in *gitalypb.HasLocalBran } hasBranches, err := s.localrepo(repository).HasBranches(ctx) if err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.HasLocalBranchesResponse{Value: hasBranches}, nil diff --git a/internal/gitaly/service/repository/info_attributes.go b/internal/gitaly/service/repository/info_attributes.go index bb91af309..a39127a59 100644 --- a/internal/gitaly/service/repository/info_attributes.go +++ b/internal/gitaly/service/repository/info_attributes.go @@ -7,6 +7,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" ) @@ -28,7 +29,7 @@ func (s *server) GetInfoAttributes(in *gitalypb.GetInfoAttributesRequest, stream return stream.Send(&gitalypb.GetInfoAttributesResponse{}) } - return helper.ErrInternalf("failure to read info attributes: %w", err) + return structerr.NewInternal("failure to read info attributes: %w", err) } sw := streamio.NewWriter(func(p []byte) error { diff --git a/internal/gitaly/service/repository/license.go b/internal/gitaly/service/repository/license.go index 86ffee1c4..58a34d9c8 100644 --- a/internal/gitaly/service/repository/license.go +++ b/internal/gitaly/service/repository/license.go @@ -20,6 +20,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/metadata/featureflag" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -53,7 +54,7 @@ func (s *server) FindLicense(ctx context.Context, req *gitalypb.FindLicenseReque if errors.Is(err, git.ErrReferenceNotFound) { return &gitalypb.FindLicenseResponse{}, nil } - return nil, helper.ErrInternalf("cannot find HEAD revision: %v", err) + return nil, structerr.NewInternal("cannot find HEAD revision: %v", err) } repoFiler := &gitFiler{ctx: ctx, repo: repo, treeishID: headOID} @@ -72,7 +73,7 @@ func (s *server) FindLicense(ctx context.Context, req *gitalypb.FindLicenseReque } return &gitalypb.FindLicenseResponse{}, nil } - return nil, helper.ErrInternalf("detect licenses: %w", err) + return nil, structerr.NewInternal("detect licenses: %w", err) } // This should not happen as the error must be returned, but let's keep it safe to avoid panics. @@ -103,12 +104,12 @@ func (s *server) FindLicense(ctx context.Context, req *gitalypb.FindLicenseReque name, err := licensedb.LicenseName(shortName) if err != nil { - return nil, helper.ErrInternalf("license name by id %q: %w", shortName, err) + return nil, structerr.NewInternal("license name by id %q: %w", shortName, err) } urls, err := licensedb.LicenseURLs(shortName) if err != nil { - return nil, helper.ErrInternalf("license URLs by id %q: %w", shortName, err) + return nil, structerr.NewInternal("license URLs by id %q: %w", shortName, err) } var url string if len(urls) > 0 { diff --git a/internal/gitaly/service/repository/merge_base.go b/internal/gitaly/service/repository/merge_base.go index 257aabd71..bbee0f77a 100644 --- a/internal/gitaly/service/repository/merge_base.go +++ b/internal/gitaly/service/repository/merge_base.go @@ -8,6 +8,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/text" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -32,7 +33,7 @@ func (s *server) FindMergeBase(ctx context.Context, req *gitalypb.FindMergeBaseR }, ) if err != nil { - return nil, helper.ErrInternalf("cmd: %w", err) + return nil, structerr.NewInternal("cmd: %w", err) } mergeBase, err := io.ReadAll(cmd) diff --git a/internal/gitaly/service/repository/midx.go b/internal/gitaly/service/repository/midx.go index 1fcfe0119..dd2733429 100644 --- a/internal/gitaly/service/repository/midx.go +++ b/internal/gitaly/service/repository/midx.go @@ -17,6 +17,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/stats" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -34,7 +35,7 @@ func (s *server) MidxRepack(ctx context.Context, in *gitalypb.MidxRepackRequest) repo := s.localrepo(repository) if err := repo.SetConfig(ctx, "core.multiPackIndex", "true", s.txManager); err != nil { - return nil, helper.ErrInternalf("setting config: %w", err) + return nil, structerr.NewInternal("setting config: %w", err) } for _, cmd := range []midxSubCommand{s.midxWrite, s.midxExpire, s.midxRepack} { @@ -43,7 +44,7 @@ func (s *server) MidxRepack(ctx context.Context, in *gitalypb.MidxRepackRequest) return nil, helper.ErrInvalidArgumentf("%w", err) } - return nil, helper.ErrInternalf("...%w", err) + return nil, structerr.NewInternal("...%w", err) } } diff --git a/internal/gitaly/service/repository/optimize.go b/internal/gitaly/service/repository/optimize.go index f92c44f97..cd2dfe185 100644 --- a/internal/gitaly/service/repository/optimize.go +++ b/internal/gitaly/service/repository/optimize.go @@ -6,6 +6,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/housekeeping" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -21,14 +22,14 @@ func (s *server) OptimizeRepository(ctx context.Context, in *gitalypb.OptimizeRe case gitalypb.OptimizeRepositoryRequest_STRATEGY_UNSPECIFIED, gitalypb.OptimizeRepositoryRequest_STRATEGY_HEURISTICAL: strategy, err := housekeeping.NewHeuristicalOptimizationStrategy(ctx, repo) if err != nil { - return nil, helper.ErrInternalf("creating heuristical optimization strategy: %w", err) + return nil, structerr.NewInternal("creating heuristical optimization strategy: %w", err) } strategyOpt = housekeeping.WithOptimizationStrategy(strategy) case gitalypb.OptimizeRepositoryRequest_STRATEGY_EAGER: strategy, err := housekeeping.NewEagerOptimizationStrategy(ctx, repo) if err != nil { - return nil, helper.ErrInternalf("creating eager optimization strategy: %w", err) + return nil, structerr.NewInternal("creating eager optimization strategy: %w", err) } strategyOpt = housekeeping.WithOptimizationStrategy(strategy) @@ -37,7 +38,7 @@ func (s *server) OptimizeRepository(ctx context.Context, in *gitalypb.OptimizeRe } if err := s.housekeepingManager.OptimizeRepository(ctx, repo, strategyOpt); err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.OptimizeRepositoryResponse{}, nil diff --git a/internal/gitaly/service/repository/prune_unreachable_objects.go b/internal/gitaly/service/repository/prune_unreachable_objects.go index 4fb0b927d..cbf5d48f6 100644 --- a/internal/gitaly/service/repository/prune_unreachable_objects.go +++ b/internal/gitaly/service/repository/prune_unreachable_objects.go @@ -8,6 +8,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/stats" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -38,7 +39,7 @@ func (s *server) PruneUnreachableObjects( git.ValueFlag{Name: "--expire", Value: "30.minutes.ago"}, }, }); err != nil { - return nil, helper.ErrInternalf("pruning objects: %w", err) + return nil, structerr.NewInternal("pruning objects: %w", err) } // Rewrite the commit-graph so that it doesn't contain references to pruned commits @@ -46,7 +47,7 @@ func (s *server) PruneUnreachableObjects( if err := housekeeping.WriteCommitGraph(ctx, repo, housekeeping.WriteCommitGraphConfig{ ReplaceChain: true, }); err != nil { - return nil, helper.ErrInternalf("rewriting commit-graph: %w", err) + return nil, structerr.NewInternal("rewriting commit-graph: %w", err) } stats.LogRepositoryInfo(ctx, repo) diff --git a/internal/gitaly/service/repository/raw_changes.go b/internal/gitaly/service/repository/raw_changes.go index 23f9ff1dc..1237921e0 100644 --- a/internal/gitaly/service/repository/raw_changes.go +++ b/internal/gitaly/service/repository/raw_changes.go @@ -13,6 +13,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/chunk" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "google.golang.org/protobuf/proto" ) @@ -27,7 +28,7 @@ func (s *server) GetRawChanges(req *gitalypb.GetRawChangesRequest, stream gitaly objectInfoReader, cancel, err := s.catfileCache.ObjectInfoReader(stream.Context(), repo) if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } defer cancel() @@ -36,7 +37,7 @@ func (s *server) GetRawChanges(req *gitalypb.GetRawChangesRequest, stream gitaly } if err := s.getRawChanges(stream, repo, objectInfoReader, req.GetFromRevision(), req.GetToRevision()); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/repository/remove.go b/internal/gitaly/service/repository/remove.go index 67bd2c9d3..d6d3510e9 100644 --- a/internal/gitaly/service/repository/remove.go +++ b/internal/gitaly/service/repository/remove.go @@ -25,16 +25,16 @@ func (s *server) RemoveRepository(ctx context.Context, in *gitalypb.RemoveReposi } path, err := s.locator.GetPath(repository) if err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } tempDir, err := s.locator.TempDir(repository.GetStorageName()) if err != nil { - return nil, helper.ErrInternalf("temporary directory: %w", err) + return nil, structerr.NewInternal("temporary directory: %w", err) } if err := os.MkdirAll(tempDir, 0o755); err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } base := filepath.Base(path) @@ -49,12 +49,12 @@ func (s *server) RemoveRepository(ctx context.Context, in *gitalypb.RemoveReposi return nil, helper.ErrNotFoundf("repository does not exist") } - return nil, helper.ErrInternalf("statting repository: %w", err) + return nil, structerr.NewInternal("statting repository: %w", err) } locker, err := safe.NewLockingFileWriter(path) if err != nil { - return nil, helper.ErrInternalf("creating locker: %w", err) + return nil, structerr.NewInternal("creating locker: %w", err) } defer func() { if err := locker.Close(); err != nil { @@ -68,7 +68,7 @@ func (s *server) RemoveRepository(ctx context.Context, in *gitalypb.RemoveReposi if errors.Is(err, safe.ErrFileAlreadyLocked) { return nil, structerr.NewFailedPrecondition("repository is already locked") } - return nil, helper.ErrInternalf("locking repository for removal: %w", err) + return nil, structerr.NewInternal("locking repository for removal: %w", err) } // Recheck whether the repository still exists after we have taken the lock. It @@ -78,26 +78,26 @@ func (s *server) RemoveRepository(ctx context.Context, in *gitalypb.RemoveReposi if os.IsNotExist(err) { return nil, helper.ErrNotFoundf("repository was concurrently removed") } - return nil, helper.ErrInternalf("re-statting repository: %w", err) + return nil, structerr.NewInternal("re-statting repository: %w", err) } if err := s.voteOnAction(ctx, repository, voting.Prepared); err != nil { - return nil, helper.ErrInternalf("vote on rename: %w", err) + return nil, structerr.NewInternal("vote on rename: %w", err) } // We move the repository into our temporary directory first before we start to // delete it. This is done such that we don't leave behind a partially-removed and // thus likely corrupt repository. if err := os.Rename(path, destDir); err != nil { - return nil, helper.ErrInternalf("staging repository for removal: %w", err) + return nil, structerr.NewInternal("staging repository for removal: %w", err) } if err := os.RemoveAll(destDir); err != nil { - return nil, helper.ErrInternalf("removing repository: %w", err) + return nil, structerr.NewInternal("removing repository: %w", err) } if err := s.voteOnAction(ctx, repository, voting.Committed); err != nil { - return nil, helper.ErrInternalf("vote on finalizing: %w", err) + return nil, structerr.NewInternal("vote on finalizing: %w", err) } return &gitalypb.RemoveRepositoryResponse{}, nil diff --git a/internal/gitaly/service/repository/rename.go b/internal/gitaly/service/repository/rename.go index 6e628a768..c232afc50 100644 --- a/internal/gitaly/service/repository/rename.go +++ b/internal/gitaly/service/repository/rename.go @@ -26,7 +26,7 @@ func (s *server) RenameRepository(ctx context.Context, in *gitalypb.RenameReposi } if err := s.renameRepository(ctx, in.GetRepository(), targetRepo); err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.RenameRepositoryResponse{}, nil diff --git a/internal/gitaly/service/repository/repack.go b/internal/gitaly/service/repository/repack.go index 70401e69c..a2fffea1a 100644 --- a/internal/gitaly/service/repository/repack.go +++ b/internal/gitaly/service/repository/repack.go @@ -9,6 +9,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/stats" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -39,16 +40,16 @@ func (s *server) RepackFull(ctx context.Context, in *gitalypb.RepackFullRequest) repackCounter.WithLabelValues(fmt.Sprint(in.GetCreateBitmap())).Inc() if err := housekeeping.RepackObjects(ctx, repo, cfg); err != nil { - return nil, helper.ErrInternalf("repacking objects: %w", err) + return nil, structerr.NewInternal("repacking objects: %w", err) } writeCommitGraphCfg, err := housekeeping.WriteCommitGraphConfigForRepository(ctx, repo) if err != nil { - return nil, helper.ErrInternalf("getting commit-graph config: %w", err) + return nil, structerr.NewInternal("getting commit-graph config: %w", err) } if err := housekeeping.WriteCommitGraph(ctx, repo, writeCommitGraphCfg); err != nil { - return nil, helper.ErrInternalf("writing commit-graph: %w", err) + return nil, structerr.NewInternal("writing commit-graph: %w", err) } stats.LogRepositoryInfo(ctx, repo) @@ -71,16 +72,16 @@ func (s *server) RepackIncremental(ctx context.Context, in *gitalypb.RepackIncre repackCounter.WithLabelValues(fmt.Sprint(false)).Inc() if err := housekeeping.RepackObjects(ctx, repo, cfg); err != nil { - return nil, helper.ErrInternalf("repacking objects: %w", err) + return nil, structerr.NewInternal("repacking objects: %w", err) } writeCommitGraphCfg, err := housekeeping.WriteCommitGraphConfigForRepository(ctx, repo) if err != nil { - return nil, helper.ErrInternalf("getting commit-graph config: %w", err) + return nil, structerr.NewInternal("getting commit-graph config: %w", err) } if err := housekeeping.WriteCommitGraph(ctx, repo, writeCommitGraphCfg); err != nil { - return nil, helper.ErrInternalf("writing commit-graph: %w", err) + return nil, structerr.NewInternal("writing commit-graph: %w", err) } stats.LogRepositoryInfo(ctx, repo) diff --git a/internal/gitaly/service/repository/replicate.go b/internal/gitaly/service/repository/replicate.go index f2eced44d..0dc09b210 100644 --- a/internal/gitaly/service/repository/replicate.go +++ b/internal/gitaly/service/repository/replicate.go @@ -22,6 +22,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/metadata" "gitlab.com/gitlab-org/gitaly/v15/internal/safe" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/internal/tempdir" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" @@ -39,7 +40,7 @@ func (s *server) ReplicateRepository(ctx context.Context, in *gitalypb.Replicate repoPath, err := s.locator.GetPath(in.GetRepository()) if err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } if !storage.IsGitDirectory(repoPath) { @@ -48,13 +49,13 @@ func (s *server) ReplicateRepository(ctx context.Context, in *gitalypb.Replicate return nil, ErrInvalidSourceRepository } - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } } repoClient, err := s.newRepoClient(ctx, in.GetSource().GetStorageName()) if err != nil { - return nil, helper.ErrInternalf("new client: %w", err) + return nil, structerr.NewInternal("new client: %w", err) } // We're checking for repository existence up front such that we can give a conclusive error @@ -67,7 +68,7 @@ func (s *server) ReplicateRepository(ctx context.Context, in *gitalypb.Replicate Repository: in.GetSource(), }) if err != nil { - return nil, helper.ErrInternalf("checking for repo existence: %w", err) + return nil, structerr.NewInternal("checking for repo existence: %w", err) } if !request.GetExists() { return nil, ErrInvalidSourceRepository @@ -76,15 +77,15 @@ func (s *server) ReplicateRepository(ctx context.Context, in *gitalypb.Replicate outgoingCtx := metadata.IncomingToOutgoing(ctx) if err := s.syncGitconfig(outgoingCtx, in); err != nil { - return nil, helper.ErrInternalf("synchronizing gitconfig: %w", err) + return nil, structerr.NewInternal("synchronizing gitconfig: %w", err) } if err := s.syncInfoAttributes(outgoingCtx, in); err != nil { - return nil, helper.ErrInternalf("synchronizing gitattributes: %w", err) + return nil, structerr.NewInternal("synchronizing gitattributes: %w", err) } if err := s.syncRepository(outgoingCtx, in); err != nil { - return nil, helper.ErrInternalf("synchronizing repository: %w", err) + return nil, structerr.NewInternal("synchronizing repository: %w", err) } return &gitalypb.ReplicateRepositoryResponse{}, nil @@ -236,22 +237,22 @@ func fetchInternalRemote( remoteRepo, err := remoterepo.New(ctx, remoteRepoProto, conns) if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } remoteDefaultBranch, err := remoteRepo.GetDefaultBranch(ctx) if err != nil { - return helper.ErrInternalf("getting remote default branch: %w", err) + return structerr.NewInternal("getting remote default branch: %w", err) } defaultBranch, err := repo.GetDefaultBranch(ctx) if err != nil { - return helper.ErrInternalf("getting local default branch: %w", err) + return structerr.NewInternal("getting local default branch: %w", err) } if defaultBranch != remoteDefaultBranch { if err := repo.SetDefaultBranch(ctx, txManager, remoteDefaultBranch); err != nil { - return helper.ErrInternalf("setting default branch: %w", err) + return structerr.NewInternal("setting default branch: %w", err) } } diff --git a/internal/gitaly/service/repository/restore_custom_hooks.go b/internal/gitaly/service/repository/restore_custom_hooks.go index 3d4d74cc2..9bdfcdf22 100644 --- a/internal/gitaly/service/repository/restore_custom_hooks.go +++ b/internal/gitaly/service/repository/restore_custom_hooks.go @@ -14,6 +14,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/metadata/featureflag" "gitlab.com/gitlab-org/gitaly/v15/internal/safe" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/internal/transaction/txinfo" "gitlab.com/gitlab-org/gitaly/v15/internal/transaction/voting" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" @@ -27,7 +28,7 @@ func (s *server) RestoreCustomHooks(stream gitalypb.RepositoryService_RestoreCus firstRequest, err := stream.Recv() if err != nil { - return helper.ErrInternalf("first request failed %w", err) + return structerr.NewInternal("first request failed %w", err) } repository := firstRequest.GetRepository() @@ -48,7 +49,7 @@ func (s *server) RestoreCustomHooks(stream gitalypb.RepositoryService_RestoreCus repoPath, err := s.locator.GetPath(repository) if err != nil { - return helper.ErrInternalf("getting repo path failed %w", err) + return structerr.NewInternal("getting repo path failed %w", err) } cmdArgs := []string{ @@ -62,11 +63,11 @@ func (s *server) RestoreCustomHooks(stream gitalypb.RepositoryService_RestoreCus ctx := stream.Context() cmd, err := command.New(ctx, append([]string{"tar"}, cmdArgs...), command.WithStdin(reader)) if err != nil { - return helper.ErrInternalf("Could not untar custom hooks tar %w", err) + return structerr.NewInternal("Could not untar custom hooks tar %w", err) } if err := cmd.Wait(); err != nil { - return helper.ErrInternalf("cmd wait failed: %w", err) + return structerr.NewInternal("cmd wait failed: %w", err) } return stream.SendAndClose(&gitalypb.RestoreCustomHooksResponse{}) @@ -75,7 +76,7 @@ func (s *server) RestoreCustomHooks(stream gitalypb.RepositoryService_RestoreCus func (s *server) restoreCustomHooksWithVoting(stream gitalypb.RepositoryService_RestoreCustomHooksServer) error { firstRequest, err := stream.Recv() if err != nil { - return helper.ErrInternalf("first request failed %w", err) + return structerr.NewInternal("first request failed %w", err) } ctx := stream.Context() @@ -89,22 +90,22 @@ func (s *server) restoreCustomHooksWithVoting(stream gitalypb.RepositoryService_ repoPath, err := s.locator.GetRepoPath(repository) if err != nil { - return helper.ErrInternalf("RestoreCustomHooks: getting repo path failed %w", err) + return structerr.NewInternal("RestoreCustomHooks: getting repo path failed %w", err) } customHooksPath := filepath.Join(repoPath, customHooksDir) if err = os.MkdirAll(customHooksPath, os.ModePerm); err != nil { - return helper.ErrInternalf("making custom hooks directory %w", err) + return structerr.NewInternal("making custom hooks directory %w", err) } lockDir, err := safe.NewLockingDirectory(customHooksPath) if err != nil { - return helper.ErrInternalf("RestoreCustomHooks: creating locking directory: %w", err) + return structerr.NewInternal("RestoreCustomHooks: creating locking directory: %w", err) } if err := lockDir.Lock(); err != nil { - return helper.ErrInternalf("locking directory failed: %w", err) + return structerr.NewInternal("locking directory failed: %w", err) } defer func() { @@ -149,11 +150,11 @@ func (s *server) restoreCustomHooksWithVoting(stream gitalypb.RepositoryService_ cmd, err := command.New(ctx, append([]string{"tar"}, cmdArgs...), command.WithStdin(reader)) if err != nil { - return helper.ErrInternalf("Could not untar custom hooks tar %w", err) + return structerr.NewInternal("Could not untar custom hooks tar %w", err) } if err := cmd.Wait(); err != nil { - return helper.ErrInternalf("cmd wait failed: %w", err) + return structerr.NewInternal("cmd wait failed: %w", err) } if err := voteCustomHooks(ctx, s.txManager, &v, voting.Committed); err != nil { @@ -161,7 +162,7 @@ func (s *server) restoreCustomHooksWithVoting(stream gitalypb.RepositoryService_ } if err := lockDir.Unlock(); err != nil { - return helper.ErrInternalf("committing lock dir %w", err) + return structerr.NewInternal("committing lock dir %w", err) } return stream.SendAndClose(&gitalypb.RestoreCustomHooksResponse{}) diff --git a/internal/gitaly/service/repository/search_files.go b/internal/gitaly/service/repository/search_files.go index bc11fe030..a9783b81f 100644 --- a/internal/gitaly/service/repository/search_files.go +++ b/internal/gitaly/service/repository/search_files.go @@ -12,6 +12,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/lstree" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" ) @@ -44,11 +45,11 @@ func (s *server) SearchFilesByContent(req *gitalypb.SearchFilesByContentRequest, git.Flag{Name: "-e"}, }, Args: []string{req.GetQuery(), string(req.GetRef())}}) if err != nil { - return helper.ErrInternalf("cmd start failed: %w", err) + return structerr.NewInternal("cmd start failed: %w", err) } if err = sendSearchFilesResultChunked(cmd, stream); err != nil { - return helper.ErrInternalf("sending chunked response failed: %w", err) + return structerr.NewInternal("sending chunked response failed: %w", err) } return nil @@ -128,7 +129,7 @@ func (s *server) SearchFilesByName(req *gitalypb.SearchFilesByNameRequest, strea git.Flag{Name: "-z"}, }, Args: []string{string(req.GetRef()), req.GetQuery()}}) if err != nil { - return helper.ErrInternalf("cmd start failed: %w", err) + return structerr.NewInternal("cmd start failed: %w", err) } files, err := parseLsTree(cmd, filter, int(req.GetOffset()), int(req.GetLimit())) diff --git a/internal/gitaly/service/repository/snapshot.go b/internal/gitaly/service/repository/snapshot.go index aaef6c694..b43654d6a 100644 --- a/internal/gitaly/service/repository/snapshot.go +++ b/internal/gitaly/service/repository/snapshot.go @@ -12,6 +12,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/archive" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" ) @@ -72,11 +73,11 @@ func (s *server) GetSnapshot(in *gitalypb.GetSnapshotRequest, stream gitalypb.Re _ = builder.FileIfExist("shallow") if err := s.addAlternateFiles(stream.Context(), in.GetRepository(), builder); err != nil { - return helper.ErrInternalf("add alternates: %w", err) + return structerr.NewInternal("add alternates: %w", err) } if err := builder.Close(); err != nil { - return helper.ErrInternalf("building snapshot failed: %w", err) + return structerr.NewInternal("building snapshot failed: %w", err) } return nil diff --git a/internal/gitaly/service/repository/util.go b/internal/gitaly/service/repository/util.go index 39c19d4bb..2e4664916 100644 --- a/internal/gitaly/service/repository/util.go +++ b/internal/gitaly/service/repository/util.go @@ -73,7 +73,7 @@ func (s *server) createRepository( // Create the parent directory in case it doesn't exist yet. if err := os.MkdirAll(filepath.Dir(targetPath), 0o770); err != nil { - return helper.ErrInternalf("create directories: %w", err) + return structerr.NewInternal("create directories: %w", err) } newRepo, newRepoDir, err := tempdir.NewRepository(ctx, repository.GetStorageName(), s.locator) diff --git a/internal/gitaly/service/repository/write_ref.go b/internal/gitaly/service/repository/write_ref.go index 46c2a8996..b1be72478 100644 --- a/internal/gitaly/service/repository/write_ref.go +++ b/internal/gitaly/service/repository/write_ref.go @@ -10,6 +10,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/updateref" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -18,7 +19,7 @@ func (s *server) WriteRef(ctx context.Context, req *gitalypb.WriteRefRequest) (* return nil, helper.ErrInvalidArgumentf("%w", err) } if err := s.writeRef(ctx, req); err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.WriteRefResponse{}, nil diff --git a/internal/gitaly/service/repository/write_ref_test.go b/internal/gitaly/service/repository/write_ref_test.go index c6b38d713..4c302227c 100644 --- a/internal/gitaly/service/repository/write_ref_test.go +++ b/internal/gitaly/service/repository/write_ref_test.go @@ -11,9 +11,9 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/git/gittest" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/transaction" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/text" "gitlab.com/gitlab-org/gitaly/v15/internal/metadata" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper" "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper/testserver" "gitlab.com/gitlab-org/gitaly/v15/internal/transaction/txinfo" @@ -217,7 +217,7 @@ func TestWriteRef_missingRevisions(t *testing.T) { Ref: []byte("refs/heads/main"), Revision: []byte("refs/heads/missing"), }, - expectedErr: helper.ErrInternalf("resolving new revision: reference not found"), + expectedErr: structerr.NewInternal("resolving new revision: reference not found"), }, { desc: "revision refers to missing object", @@ -226,7 +226,7 @@ func TestWriteRef_missingRevisions(t *testing.T) { Ref: []byte("refs/heads/main"), Revision: bytes.Repeat([]byte("1"), gittest.DefaultObjectHash.EncodedLen()), }, - expectedErr: helper.ErrInternalf("resolving new revision: reference not found"), + expectedErr: structerr.NewInternal("resolving new revision: reference not found"), }, { desc: "old revision refers to missing reference", @@ -236,7 +236,7 @@ func TestWriteRef_missingRevisions(t *testing.T) { Revision: []byte(commitID), OldRevision: bytes.Repeat([]byte("1"), gittest.DefaultObjectHash.EncodedLen()), }, - expectedErr: helper.ErrInternalf("resolving old revision: reference not found"), + expectedErr: structerr.NewInternal("resolving old revision: reference not found"), }, } { t.Run(tc.desc, func(t *testing.T) { diff --git a/internal/gitaly/service/server/info.go b/internal/gitaly/service/server/info.go index 719bc5b66..59bd88269 100644 --- a/internal/gitaly/service/server/info.go +++ b/internal/gitaly/service/server/info.go @@ -7,8 +7,8 @@ import ( "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus/ctxlogrus" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/storage" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/fstype" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/internal/version" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -16,7 +16,7 @@ import ( func (s *server) ServerInfo(ctx context.Context, in *gitalypb.ServerInfoRequest) (*gitalypb.ServerInfoResponse, error) { gitVersion, err := s.gitCmdFactory.GitVersion(ctx) if err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } var storageStatuses []*gitalypb.ServerInfoResponse_StorageStatus diff --git a/internal/gitaly/service/smarthttp/cache.go b/internal/gitaly/service/smarthttp/cache.go index 3ef3a877d..bf638f89d 100644 --- a/internal/gitaly/service/smarthttp/cache.go +++ b/internal/gitaly/service/smarthttp/cache.go @@ -10,7 +10,7 @@ import ( "github.com/prometheus/client_golang/prometheus/promauto" log "github.com/sirupsen/logrus" "gitlab.com/gitlab-org/gitaly/v15/internal/cache" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -66,7 +66,7 @@ func (c infoRefCache) tryCache(ctx context.Context, in *gitalypb.InfoRefsRequest logger.Info("cache hit for UploadPack response") if _, err := io.Copy(w, stream); err != nil { - return helper.ErrInternalf("cache copy: %w", err) + return structerr.NewInternal("cache copy: %w", err) } return nil diff --git a/internal/gitaly/service/smarthttp/inforefs.go b/internal/gitaly/service/smarthttp/inforefs.go index ef04ad60a..9ce61eec7 100644 --- a/internal/gitaly/service/smarthttp/inforefs.go +++ b/internal/gitaly/service/smarthttp/inforefs.go @@ -11,6 +11,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/pktline" "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/service" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v15/streamio" ) @@ -76,23 +77,23 @@ func (s *server) handleInfoRefs(ctx context.Context, service, repoPath string, r Args: []string{repoPath}, }, cmdOpts...) if err != nil { - return helper.ErrInternalf("cmd: %w", err) + return structerr.NewInternal("cmd: %w", err) } if _, err := pktline.WriteString(w, fmt.Sprintf("# service=git-%s\n", service)); err != nil { - return helper.ErrInternalf("pktLine: %w", err) + return structerr.NewInternal("pktLine: %w", err) } if err := pktline.WriteFlush(w); err != nil { - return helper.ErrInternalf("pktFlush: %w", err) + return structerr.NewInternal("pktFlush: %w", err) } if _, err := io.Copy(w, cmd); err != nil { - return helper.ErrInternalf("send: %w", err) + return structerr.NewInternal("send: %w", err) } if err := cmd.Wait(); err != nil { - return helper.ErrInternalf("wait: %w", err) + return structerr.NewInternal("wait: %w", err) } return nil diff --git a/internal/gitaly/service/smarthttp/upload_pack.go b/internal/gitaly/service/smarthttp/upload_pack.go index 450c9ef71..972ca080b 100644 --- a/internal/gitaly/service/smarthttp/upload_pack.go +++ b/internal/gitaly/service/smarthttp/upload_pack.go @@ -51,7 +51,7 @@ func (s *server) PostUploadPack(stream gitalypb.SmartHTTPService_PostUploadPackS }) if err := s.runUploadPack(ctx, req, repoPath, gitConfig, stdin, stdout); err != nil { - return helper.ErrInternalf("running upload-pack: %w", err) + return structerr.NewInternal("running upload-pack: %w", err) } return nil @@ -65,16 +65,16 @@ func (s *server) PostUploadPackWithSidechannel(ctx context.Context, req *gitalyp conn, err := sidechannel.OpenSidechannel(ctx) if err != nil { - return nil, helper.ErrInternalf("open sidechannel: %w", err) + return nil, structerr.NewInternal("open sidechannel: %w", err) } defer conn.Close() if err := s.runUploadPack(ctx, req, repoPath, gitConfig, conn, conn); err != nil { - return nil, helper.ErrInternalf("running upload-pack: %w", err) + return nil, structerr.NewInternal("running upload-pack: %w", err) } if err := conn.Close(); err != nil { - return nil, helper.ErrInternalf("close sidechannel connection: %w", err) + return nil, structerr.NewInternal("close sidechannel connection: %w", err) } return &gitalypb.PostUploadPackWithSidechannelResponse{}, nil diff --git a/internal/gitaly/service/ssh/receive_pack.go b/internal/gitaly/service/ssh/receive_pack.go index 0692c2120..70e1579c1 100644 --- a/internal/gitaly/service/ssh/receive_pack.go +++ b/internal/gitaly/service/ssh/receive_pack.go @@ -23,7 +23,7 @@ import ( func (s *server) SSHReceivePack(stream gitalypb.SSHService_SSHReceivePackServer) error { req, err := stream.Recv() // First request contains only Repository, GlId, and GlUsername if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } ctxlogrus.Extract(stream.Context()).WithFields(log.Fields{ @@ -39,7 +39,7 @@ func (s *server) SSHReceivePack(stream gitalypb.SSHService_SSHReceivePackServer) } if err := s.sshReceivePack(stream, req); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/ssh/receive_pack_test.go b/internal/gitaly/service/ssh/receive_pack_test.go index d7a9c176f..7603c58ea 100644 --- a/internal/gitaly/service/ssh/receive_pack_test.go +++ b/internal/gitaly/service/ssh/receive_pack_test.go @@ -227,7 +227,7 @@ func TestReceivePack_client(t *testing.T) { writeRequest: func(t *testing.T, stdin io.Writer) { gittest.WritePktlineString(t, stdin, "garbage") }, - expectedErr: helper.ErrInternalf("cmd wait: exit status 128"), + expectedErr: structerr.NewInternal("cmd wait: exit status 128"), expectedErrorCode: 128, expectedStderr: "fatal: protocol error: expected old/new/ref, got 'garbage'\n", }, diff --git a/internal/gitaly/service/ssh/upload_archive.go b/internal/gitaly/service/ssh/upload_archive.go index fc4432548..717884ca1 100644 --- a/internal/gitaly/service/ssh/upload_archive.go +++ b/internal/gitaly/service/ssh/upload_archive.go @@ -19,14 +19,14 @@ import ( func (s *server) SSHUploadArchive(stream gitalypb.SSHService_SSHUploadArchiveServer) error { req, err := stream.Recv() // First request contains Repository only if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } if err = validateFirstUploadArchiveRequest(req); err != nil { return helper.ErrInvalidArgumentf("%w", err) } if err = s.sshUploadArchive(stream, req); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil diff --git a/internal/gitaly/service/ssh/upload_pack.go b/internal/gitaly/service/ssh/upload_pack.go index 3f47dfde1..8bbbf11a7 100644 --- a/internal/gitaly/service/ssh/upload_pack.go +++ b/internal/gitaly/service/ssh/upload_pack.go @@ -28,7 +28,7 @@ func (s *server) SSHUploadPack(stream gitalypb.SSHService_SSHUploadPackServer) e req, err := stream.Recv() // First request contains Repository only if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } ctxlogrus.Extract(ctx).WithFields(log.Fields{ @@ -63,7 +63,7 @@ func (s *server) SSHUploadPack(stream gitalypb.SSHService_SSHUploadPackServer) e ctxlogrus.Extract(ctx).WithError(errSend).Error("send final status code") } - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil @@ -213,10 +213,10 @@ func (s *server) SSHUploadPackWithSidechannel(ctx context.Context, req *gitalypb stdout := sidebandWriter.Writer(stream.BandStdout) stderr := sidebandWriter.Writer(stream.BandStderr) if _, err := s.sshUploadPack(ctx, req, conn, stdout, stderr); err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } if err := conn.Close(); err != nil { - return nil, helper.ErrInternalf("close sidechannel: %w", err) + return nil, structerr.NewInternal("close sidechannel: %w", err) } return &gitalypb.SSHUploadPackWithSidechannelResponse{}, nil diff --git a/internal/gitaly/service/ssh/upload_pack_test.go b/internal/gitaly/service/ssh/upload_pack_test.go index b5c42c28d..a478ff53f 100644 --- a/internal/gitaly/service/ssh/upload_pack_test.go +++ b/internal/gitaly/service/ssh/upload_pack_test.go @@ -214,7 +214,7 @@ func TestUploadPackWithSidechannel_client(t *testing.T) { return nil }, - expectedErr: helper.ErrInternalf( + expectedErr: structerr.NewInternal( "cmd wait: exit status 128, stderr: %q", "fatal: unknown capability 'want 1e292f8fedd741b75372e19097c76d327140c312 multi_ack'\n", ), @@ -237,7 +237,7 @@ func TestUploadPackWithSidechannel_client(t *testing.T) { return nil }, - expectedErr: helper.ErrInternalf( + expectedErr: structerr.NewInternal( "cmd wait: exit status 128, stderr: %q", "fatal: git upload-pack: protocol error, expected to get object ID, not 'command=fetch'\n", ), @@ -256,7 +256,7 @@ func TestUploadPackWithSidechannel_client(t *testing.T) { return nil }, - expectedErr: helper.ErrInternalf("cmd wait: exit status 128, stderr: %q", + expectedErr: structerr.NewInternal("cmd wait: exit status 128, stderr: %q", "fatal: git upload-pack: not our ref "+strings.Repeat("1", 40)+"\n", ), }, @@ -274,7 +274,7 @@ func TestUploadPackWithSidechannel_client(t *testing.T) { return nil }, - expectedErr: helper.ErrInternalf("cmd wait: exit status 128, stderr: %q", + expectedErr: structerr.NewInternal("cmd wait: exit status 128, stderr: %q", "fatal: git upload-pack: protocol error, expected to get object ID, not 'want 1111 multi_ack'\n", ), }, @@ -318,7 +318,7 @@ func TestUploadPackWithSidechannel_client(t *testing.T) { require.NoError(t, clientConn.CloseWrite()) return nil }, - expectedErr: helper.ErrInternalf("cmd wait: exit status 128, stderr: %q", "fatal: unknown capability 'foobar'\n"), + expectedErr: structerr.NewInternal("cmd wait: exit status 128, stderr: %q", "fatal: unknown capability 'foobar'\n"), }, { desc: "close and cancellation", @@ -790,7 +790,7 @@ func TestUploadPack_gitFailure(t *testing.T) { require.NoError(t, stream.CloseSend()) err = recvUntilError(t, stream) - testhelper.RequireGrpcError(t, helper.ErrInternalf(`cmd wait: exit status 128, stderr: "fatal: bad config line 1 in file ./config\n"`), err) + testhelper.RequireGrpcError(t, structerr.NewInternal(`cmd wait: exit status 128, stderr: "fatal: bad config line 1 in file ./config\n"`), err) } func recvUntilError(t *testing.T, stream gitalypb.SSHService_SSHUploadPackClient) error { diff --git a/internal/helper/error.go b/internal/helper/error.go index 0f8c5c635..b9cb5c60a 100644 --- a/internal/helper/error.go +++ b/internal/helper/error.go @@ -21,12 +21,6 @@ func (sw statusWrapper) Unwrap() error { return sw.error } -// ErrInternalf wraps a formatted error with codes.Internal, unless the formatted error is a -// wrapped gRPC error. -func ErrInternalf(format string, a ...interface{}) error { - return formatError(codes.Internal, format, a...) -} - // ErrInvalidArgumentf wraps a formatted error with codes.InvalidArgument, unless the formatted // error is a wrapped gRPC error. func ErrInvalidArgumentf(format string, a ...interface{}) error { diff --git a/internal/helper/error_test.go b/internal/helper/error_test.go index 466ed3c96..06478ff20 100644 --- a/internal/helper/error_test.go +++ b/internal/helper/error_test.go @@ -25,11 +25,6 @@ func TestErrorf(t *testing.T) { expectedCode codes.Code }{ { - desc: "Internalf", - errorf: ErrInternalf, - expectedCode: codes.Internal, - }, - { desc: "InvalidArgumentf", errorf: ErrInvalidArgumentf, expectedCode: codes.InvalidArgument, @@ -107,7 +102,7 @@ func TestErrorf(t *testing.T) { require.NotEqual(t, tc.expectedCode, unusedErrorCode) err := tc.errorf("first: %w", - ErrInternalf("second: %w", + ErrNotFoundf("second: %w", status.Error(unusedErrorCode, "third"), ), ) diff --git a/internal/middleware/featureflag/featureflag_handler_test.go b/internal/middleware/featureflag/featureflag_handler_test.go index 0ec0e041e..28000954d 100644 --- a/internal/middleware/featureflag/featureflag_handler_test.go +++ b/internal/middleware/featureflag/featureflag_handler_test.go @@ -12,9 +12,9 @@ import ( "github.com/sirupsen/logrus" "github.com/sirupsen/logrus/hooks/test" "github.com/stretchr/testify/require" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/log" "gitlab.com/gitlab-org/gitaly/v15/internal/metadata/featureflag" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" @@ -101,7 +101,7 @@ func TestFeatureFlagLogs(t *testing.T) { featureA: true, featureB: false, }, - returnedErr: helper.ErrInternalf("something goes wrong"), + returnedErr: structerr.NewInternal("something goes wrong"), expectedFields: "feature_a feature_c", }, { @@ -111,7 +111,7 @@ func TestFeatureFlagLogs(t *testing.T) { featureA: false, featureB: false, }, - returnedErr: helper.ErrInternalf("something goes wrong"), + returnedErr: structerr.NewInternal("something goes wrong"), expectedFields: "", }, } diff --git a/internal/praefect/coordinator.go b/internal/praefect/coordinator.go index 395e42c26..0c6ecadc6 100644 --- a/internal/praefect/coordinator.go +++ b/internal/praefect/coordinator.go @@ -699,7 +699,7 @@ func (c *Coordinator) StreamDirector(ctx context.Context, fullMethodName string, return c.directStorageScopedMessage(ctx, mi, m) } - return nil, helper.ErrInternalf("rpc with undefined scope %q", mi.Scope) + return nil, structerr.NewInternal("rpc with undefined scope %q", mi.Scope) } func (c *Coordinator) directStorageScopedMessage(ctx context.Context, mi protoregistry.MethodInfo, msg proto.Message) (*proxy.StreamParameters, error) { @@ -730,7 +730,7 @@ func (c *Coordinator) accessorStorageStreamParameters(ctx context.Context, mi pr if errors.Is(err, nodes.ErrVirtualStorageNotExist) { return nil, helper.ErrInvalidArgumentf("%w", err) } - return nil, helper.ErrInternalf("accessor storage scoped: route storage accessor %q: %w", virtualStorage, err) + return nil, structerr.NewInternal("accessor storage scoped: route storage accessor %q: %w", virtualStorage, err) } node.addLogFields(ctx) @@ -758,7 +758,7 @@ func (c *Coordinator) mutatorStorageStreamParameters(ctx context.Context, mi pro if errors.Is(err, nodes.ErrVirtualStorageNotExist) { return nil, helper.ErrInvalidArgumentf("%w", err) } - return nil, helper.ErrInternalf("mutator storage scoped: get shard %q: %w", virtualStorage, err) + return nil, structerr.NewInternal("mutator storage scoped: get shard %q: %w", virtualStorage, err) } route.addLogFields(ctx) diff --git a/internal/praefect/middleware/errorhandler_test.go b/internal/praefect/middleware/errorhandler_test.go index bf186ef9a..a57463063 100644 --- a/internal/praefect/middleware/errorhandler_test.go +++ b/internal/praefect/middleware/errorhandler_test.go @@ -10,10 +10,10 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/praefect/grpc-proxy/proxy" "gitlab.com/gitlab-org/gitaly/v15/internal/praefect/nodes/tracker" "gitlab.com/gitlab-org/gitaly/v15/internal/praefect/protoregistry" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper" "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper/testcfg" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" @@ -27,7 +27,7 @@ type repositoryService struct { func (s *repositoryService) RepositoryExists(ctx context.Context, req *gitalypb.RepositoryExistsRequest) (*gitalypb.RepositoryExistsResponse, error) { if req.GetRepository() == nil { - return nil, helper.ErrInternalf("error") + return nil, structerr.NewInternal("error") } return &gitalypb.RepositoryExistsResponse{}, nil @@ -35,7 +35,7 @@ func (s *repositoryService) RepositoryExists(ctx context.Context, req *gitalypb. func (s *repositoryService) WriteRef(ctx context.Context, req *gitalypb.WriteRefRequest) (*gitalypb.WriteRefResponse, error) { if req.GetRepository() == nil { - return nil, helper.ErrInternalf("error") + return nil, structerr.NewInternal("error") } return &gitalypb.WriteRefResponse{}, nil diff --git a/internal/praefect/rename_repository.go b/internal/praefect/rename_repository.go index 7433c6fb0..eb52b08cb 100644 --- a/internal/praefect/rename_repository.go +++ b/internal/praefect/rename_repository.go @@ -70,7 +70,7 @@ func RenameRepositoryHandler(virtualStoragesNames []string, rs datastore.Reposit return structerr.NewAlreadyExists("target repo exists already") } - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return stream.SendMsg(&gitalypb.RenameRepositoryResponse{}) diff --git a/internal/praefect/server_test.go b/internal/praefect/server_test.go index 1eca3fe99..91134c591 100644 --- a/internal/praefect/server_test.go +++ b/internal/praefect/server_test.go @@ -735,11 +735,11 @@ func (m *mockSmartHTTP) PostReceivePack(stream gitalypb.SmartHTTPService_PostRec if errors.Is(err, io.EOF) { break } - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } if err := stream.Send(&gitalypb.PostReceivePackResponse{Data: req.GetData()}); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } } @@ -747,12 +747,12 @@ func (m *mockSmartHTTP) PostReceivePack(stream gitalypb.SmartHTTPService_PostRec tx, err := txinfo.TransactionFromContext(ctx) if err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } vote := voting.VoteFromData([]byte{}) if err := m.txMgr.VoteTransaction(ctx, tx.ID, tx.Node, vote); err != nil { - return helper.ErrInternalf("%w", err) + return structerr.NewInternal("%w", err) } return nil @@ -902,7 +902,7 @@ func TestErrorThreshold(t *testing.T) { } if md.Get("bad-header")[0] == "true" { - return nil, helper.ErrInternalf("something went wrong") + return nil, structerr.NewInternal("something went wrong") } return &gitalypb.ReplicateRepositoryResponse{}, nil @@ -914,7 +914,7 @@ func TestErrorThreshold(t *testing.T) { } if md.Get("bad-header")[0] == "true" { - return nil, helper.ErrInternalf("something went wrong") + return nil, structerr.NewInternal("something went wrong") } return &gitalypb.RepositoryExistsResponse{}, nil diff --git a/internal/praefect/service/info/metadata.go b/internal/praefect/service/info/metadata.go index 30ee9e7c4..91d49d4aa 100644 --- a/internal/praefect/service/info/metadata.go +++ b/internal/praefect/service/info/metadata.go @@ -7,6 +7,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/praefect/commonerr" "gitlab.com/gitlab-org/gitaly/v15/internal/praefect/datastore" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "google.golang.org/protobuf/types/known/timestamppb" ) @@ -24,7 +25,7 @@ func (s *Server) GetRepositoryMetadata(ctx context.Context, req *gitalypb.GetRep return s.rs.GetRepositoryMetadataByPath(ctx, query.Path.VirtualStorage, query.Path.RelativePath) } default: - return nil, helper.ErrInternalf("unknown query type: %T", query) + return nil, structerr.NewInternal("unknown query type: %T", query) } metadata, err := getMetadata() @@ -33,7 +34,7 @@ func (s *Server) GetRepositoryMetadata(ctx context.Context, req *gitalypb.GetRep return nil, helper.ErrNotFoundf("%w", err) } - return nil, helper.ErrInternalf("get metadata: %w", err) + return nil, structerr.NewInternal("get metadata: %w", err) } replicas := make([]*gitalypb.GetRepositoryMetadataResponse_Replica, 0, len(metadata.Replicas)) diff --git a/internal/praefect/service/info/replication_factor.go b/internal/praefect/service/info/replication_factor.go index d8a3e7f08..9f799bd26 100644 --- a/internal/praefect/service/info/replication_factor.go +++ b/internal/praefect/service/info/replication_factor.go @@ -7,6 +7,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/praefect/datastore" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -19,7 +20,7 @@ func (s *Server) SetReplicationFactor(ctx context.Context, req *gitalypb.SetRepl return nil, helper.ErrInvalidArgumentf("%w", err) } - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return resp, nil diff --git a/internal/praefect/service/info/repositories.go b/internal/praefect/service/info/repositories.go index 53e901328..1d8f7def0 100644 --- a/internal/praefect/service/info/repositories.go +++ b/internal/praefect/service/info/repositories.go @@ -4,8 +4,8 @@ import ( "context" "fmt" - "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/praefect/config" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" "golang.org/x/sync/errgroup" ) @@ -56,7 +56,7 @@ func (s *Server) RepositoryReplicas(ctx context.Context, in *gitalypb.Repository var resp gitalypb.RepositoryReplicasResponse if resp.Primary, err = s.getRepositoryDetails(ctx, virtualStorage, primary, relativePath, replicaPath); err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } resp.Replicas = make([]*gitalypb.RepositoryReplicasResponse_RepositoryDetails, len(secondaries)) @@ -74,7 +74,7 @@ func (s *Server) RepositoryReplicas(ctx context.Context, in *gitalypb.Repository } if err := g.Wait(); err != nil { - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &resp, nil diff --git a/internal/praefect/service/info/server.go b/internal/praefect/service/info/server.go index b6ea956a8..5b5ba0f69 100644 --- a/internal/praefect/service/info/server.go +++ b/internal/praefect/service/info/server.go @@ -9,6 +9,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/praefect/config" "gitlab.com/gitlab-org/gitaly/v15/internal/praefect/datastore" "gitlab.com/gitlab-org/gitaly/v15/internal/praefect/service" + "gitlab.com/gitlab-org/gitaly/v15/internal/structerr" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" ) @@ -84,7 +85,7 @@ func (s *Server) SetAuthoritativeStorage(ctx context.Context, req *gitalypb.SetA return nil, helper.ErrInvalidArgumentf("repository %q does not exist on virtual storage %q", req.RelativePath, req.VirtualStorage) } - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } return &gitalypb.SetAuthoritativeStorageResponse{}, nil diff --git a/internal/praefect/service/transaction/server.go b/internal/praefect/service/transaction/server.go index ca099d771..a2cdb7848 100644 --- a/internal/praefect/service/transaction/server.go +++ b/internal/praefect/service/transaction/server.go @@ -48,7 +48,7 @@ func (s *Server) VoteTransaction(ctx context.Context, in *gitalypb.VoteTransacti State: gitalypb.VoteTransactionResponse_ABORT, }, nil default: - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } } @@ -71,7 +71,7 @@ func (s *Server) StopTransaction(ctx context.Context, in *gitalypb.StopTransacti case errors.Is(err, transactions.ErrTransactionStopped): return &gitalypb.StopTransactionResponse{}, nil default: - return nil, helper.ErrInternalf("%w", err) + return nil, structerr.NewInternal("%w", err) } } |