Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <psteinhardt@gitlab.com>2021-08-17 10:32:33 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2021-08-17 10:32:33 +0300
commit063ec0b18a2a6eef4f2abe48548878a011916727 (patch)
tree7b31a7d9a83723ebabe7f1278365d79cef61a1ed
parentf6ebdc9e7754cf97776fe388f3b0914ae123f5ad (diff)
parent0eb93dc32da8727550b97594caa739f7389b0867 (diff)
Merge branch 'pks-linguist-fixes' into 'master'
linguist: Improve error messages See merge request gitlab-org/gitaly!3763
-rw-r--r--internal/gitaly/linguist/linguist.go16
-rw-r--r--internal/gitaly/service/commit/languages.go10
2 files changed, 14 insertions, 12 deletions
diff --git a/internal/gitaly/linguist/linguist.go b/internal/gitaly/linguist/linguist.go
index b0b9d6026..667491fd0 100644
--- a/internal/gitaly/linguist/linguist.go
+++ b/internal/gitaly/linguist/linguist.go
@@ -54,20 +54,24 @@ func New(cfg config.Cfg) (*Instance, error) {
func (inst *Instance) Stats(ctx context.Context, cfg config.Cfg, repoPath string, commitID string) (ByteCountPerLanguage, error) {
cmd, err := startGitLinguist(ctx, cfg, repoPath, commitID, "stats")
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("starting linguist: %w", err)
}
data, err := ioutil.ReadAll(cmd)
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("reading linguist output: %w", err)
}
if err := cmd.Wait(); err != nil {
- return nil, err
+ return nil, fmt.Errorf("waiting for linguist: %w", err)
}
stats := make(ByteCountPerLanguage)
- return stats, json.Unmarshal(data, &stats)
+ if err := json.Unmarshal(data, &stats); err != nil {
+ return nil, fmt.Errorf("unmarshaling stats: %w", err)
+ }
+
+ return stats, nil
}
// Color returns the color Linguist has assigned to language.
@@ -83,7 +87,7 @@ func (inst *Instance) Color(language string) string {
func startGitLinguist(ctx context.Context, cfg config.Cfg, repoPath string, commitID string, linguistCommand string) (*command.Command, error) {
bundle, err := exec.LookPath("bundle")
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("finding bundle executable: %w", err)
}
args := []string{
@@ -116,7 +120,7 @@ func startGitLinguist(ctx context.Context, cfg config.Cfg, repoPath string, comm
internalCmd, err := command.New(ctx, cmd, nil, nil, nil, exportEnvironment()...)
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("creating command: %w", err)
}
return internalCmd, nil
diff --git a/internal/gitaly/service/commit/languages.go b/internal/gitaly/service/commit/languages.go
index 566f63ce8..56c6645e6 100644
--- a/internal/gitaly/service/commit/languages.go
+++ b/internal/gitaly/service/commit/languages.go
@@ -14,8 +14,6 @@ import (
"gitlab.com/gitlab-org/gitaly/v14/internal/helper"
"gitlab.com/gitlab-org/gitaly/v14/internal/helper/text"
"gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb"
- "google.golang.org/grpc/codes"
- "google.golang.org/grpc/status"
)
var errAmbigRef = errors.New("ambiguous reference")
@@ -38,16 +36,16 @@ func (s *server) CommitLanguages(ctx context.Context, req *gitalypb.CommitLangua
commitID, err := s.lookupRevision(ctx, repo, revision)
if err != nil {
- return nil, err
+ return nil, helper.ErrInternalf("looking up revision: %w", err)
}
repoPath, err := repo.Path()
if err != nil {
- return nil, err
+ return nil, helper.ErrInternalf("repository path: %w", err)
}
stats, err := s.linguist.Stats(ctx, s.cfg, repoPath, commitID)
if err != nil {
- return nil, err
+ return nil, helper.ErrInternalf("language stats: %w", err)
}
resp := &gitalypb.CommitLanguagesResponse{}
@@ -61,7 +59,7 @@ func (s *server) CommitLanguages(ctx context.Context, req *gitalypb.CommitLangua
}
if total == 0 {
- return nil, status.Errorf(codes.Internal, "linguist stats added up to zero: %v", stats)
+ return nil, helper.ErrInternalf("linguist stats added up to zero: %v", stats)
}
for lang, count := range stats {