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:
authorJohn Cai <jcai@gitlab.com>2018-12-21 05:09:36 +0300
committerJohn Cai <jcai@gitlab.com>2019-01-04 10:10:43 +0300
commita7fd8d8ea7704c1f70bee21a09e36f1351ba68f6 (patch)
tree9e9e6eb5cf46044b239ea018d726a360280762a1
parent2d8c184ff2588824d33fadbe75fff59fb59c6f9c (diff)
adding validationg for find all tags
-rw-r--r--internal/service/commit/commit_messages_test.go2
-rw-r--r--internal/service/ref/refs.go20
2 files changed, 20 insertions, 2 deletions
diff --git a/internal/service/commit/commit_messages_test.go b/internal/service/commit/commit_messages_test.go
index 3a8cda045..0eb832758 100644
--- a/internal/service/commit/commit_messages_test.go
+++ b/internal/service/commit/commit_messages_test.go
@@ -51,7 +51,7 @@ func TestSuccessfulGetCommitMessagesRequest(t *testing.T) {
},
}
fetchedMessages := readAllMessagesFromClient(t, c)
- require.Equal(t, len(expectedMessages), len(fetchedMessages))
+
require.Equal(t, expectedMessages, fetchedMessages)
}
diff --git a/internal/service/ref/refs.go b/internal/service/ref/refs.go
index d9b0b40e4..4044e941d 100644
--- a/internal/service/ref/refs.go
+++ b/internal/service/ref/refs.go
@@ -3,10 +3,13 @@ package ref
import (
"bufio"
"bytes"
+ "errors"
"fmt"
"regexp"
"strings"
+ "gitlab.com/gitlab-org/gitaly/internal/helper"
+
grpc_logrus "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus"
log "github.com/sirupsen/logrus"
"gitlab.com/gitlab-org/gitaly-proto/go/gitalypb"
@@ -73,15 +76,30 @@ func (s *server) FindAllTagNames(in *gitalypb.FindAllTagNamesRequest, stream git
func (s *server) FindAllTags(in *gitalypb.FindAllTagsRequest, stream gitalypb.RefService_FindAllTagsServer) error {
ctx := stream.Context()
+ if err := validateFindAllTagsRequest(in); err != nil {
+ return status.Errorf(codes.InvalidArgument, "FindAllTags: %v", err)
+ }
+
tags, err := gitlog.GetAllTags(ctx, in.GetRepository())
if err != nil {
- return err
+ return status.Errorf(codes.Internal, "error when getting all tags: %v", err)
}
return stream.Send(&gitalypb.FindAllTagsResponse{
Tags: tags,
})
}
+func validateFindAllTagsRequest(request *gitalypb.FindAllTagsRequest) error {
+ if request.GetRepository() == nil {
+ return errors.New("empty Repository")
+ }
+ _, err := helper.GetRepoPath(request.GetRepository())
+ if err != nil {
+ return errors.New("invalid git directory")
+ }
+ return nil
+}
+
func _findBranchNames(ctx context.Context, repo *gitalypb.Repository) ([][]byte, error) {
var names [][]byte