diff options
author | Zeger-Jan van de Weg <zegerjan@gitlab.com> | 2018-09-28 17:39:11 +0300 |
---|---|---|
committer | Zeger-Jan van de Weg <zegerjan@gitlab.com> | 2018-09-28 17:39:11 +0300 |
commit | c5f74f2f46e83b648356c7784ed6cbbd8d1702e4 (patch) | |
tree | b5cd9bd22cf1abdc46250eef156aad429e993956 | |
parent | 0772a2be216304c412a7b136817df83396ebfcf3 (diff) | |
parent | fcdc0ecfb82082513e1427316702a3ef67591cdf (diff) |
Merge branch 'list-last-commits-for-tree' into 'master'
Add ListLastCommitsForTree to retrieve the last commits for every entry in the current path
See merge request gitlab-org/gitaly!881
-rw-r--r-- | changelogs/unreleased/list-last-commits-for-tree.yml | 6 | ||||
-rw-r--r-- | internal/git/lstree/last_commits.go | 101 | ||||
-rw-r--r-- | internal/git/lstree/last_commits_test.go | 109 | ||||
-rw-r--r-- | internal/git/lstree/testdata/z-lstree-irregular.txt | bin | 0 -> 265 bytes | |||
-rw-r--r-- | internal/git/lstree/testdata/z-lstree.txt | bin | 0 -> 260 bytes | |||
-rw-r--r-- | internal/service/commit/list_last_commits_for_tree.go | 134 | ||||
-rw-r--r-- | internal/service/commit/list_last_commits_for_tree_test.go | 295 | ||||
-rw-r--r-- | vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION | 2 | ||||
-rw-r--r-- | vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go | 2 | ||||
-rw-r--r-- | vendor/gitlab.com/gitlab-org/gitaly-proto/go/commit.pb.go | 411 | ||||
-rw-r--r-- | vendor/vendor.json | 10 |
11 files changed, 940 insertions, 130 deletions
diff --git a/changelogs/unreleased/list-last-commits-for-tree.yml b/changelogs/unreleased/list-last-commits-for-tree.yml new file mode 100644 index 000000000..9e1fe2102 --- /dev/null +++ b/changelogs/unreleased/list-last-commits-for-tree.yml @@ -0,0 +1,6 @@ +--- +title: Add ListLastCommitsForTree to retrieve the last commits for every entry in + the current path +merge_request: 881 +author: +type: added diff --git a/internal/git/lstree/last_commits.go b/internal/git/lstree/last_commits.go new file mode 100644 index 000000000..fd75596d5 --- /dev/null +++ b/internal/git/lstree/last_commits.go @@ -0,0 +1,101 @@ +package lstree + +import ( + "bufio" + "bytes" + "errors" + "io" +) + +// ObjectType is an Enum for the type of object of +// the ls-tree entry, which can be can be tree, blob or commit +type ObjectType int + +// Entry represents a single ls-tree entry +type Entry struct { + Mode []byte + Type ObjectType + Oid string + Path string +} + +// Entries holds every ls-tree Entry +type Entries []Entry + +// Parser holds the necessary state for parsing the ls-tree output +type Parser struct { + reader *bufio.Reader +} + +// Enum values for ObjectType +const ( + Tree ObjectType = iota + Blob + Submodule +) + +// ErrParse is returned when the parse of an entry was unsuccessful +var ErrParse = errors.New("Failed to parse git ls-tree response") + +func (e Entries) Len() int { + return len(e) +} + +func (e Entries) Swap(i, j int) { + e[i], e[j] = e[j], e[i] +} + +// We need to sort in the format [*tree *blobs *submodules] +func (e Entries) Less(i, j int) bool { + return e[i].Type < e[j].Type +} + +// NewParser returns a new Parser +func NewParser(src io.Reader) *Parser { + return &Parser{ + reader: bufio.NewReader(src), + } +} + +// NextEntry reads from git ls-tree --z --full-name command +// parses the tree entry and returns a *Entry. +func (p *Parser) NextEntry() (*Entry, error) { + data, err := p.reader.ReadBytes(0x00) + if err != nil { + return nil, err + } + + // We expect each `data` to be <mode> SP <type> SP <object> TAB <path>\0. + split := bytes.SplitN(data, []byte(" "), 3) + if len(split) != 3 { + return nil, ErrParse + } + + objectAndFile := bytes.SplitN(split[len(split)-1], []byte("\t"), 2) + if len(objectAndFile) != 2 { + return nil, ErrParse + } + + objectType, err := toEnum(string(split[1])) + if err != nil { + return nil, err + } + + // We know that the last byte in 'path' will be a zero byte. + path := string(bytes.TrimRight(objectAndFile[1], "\x00")) + + return &Entry{Mode: split[0], Type: objectType, Oid: string(objectAndFile[0]), Path: path}, nil +} + +func toEnum(s string) (ObjectType, error) { + switch s { + case "tree": + return Tree, nil + case "blob": + return Blob, nil + case "commit": + return Submodule, nil + default: + return -1, ErrParse + } +} diff --git a/internal/git/lstree/last_commits_test.go b/internal/git/lstree/last_commits_test.go new file mode 100644 index 000000000..d12e97247 --- /dev/null +++ b/internal/git/lstree/last_commits_test.go @@ -0,0 +1,109 @@ +package lstree + +import ( + "io" + "os" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestParser(t *testing.T) { + testCases := []struct { + desc string + filename string + entries Entries + }{ + { + desc: "regular entries", + filename: "testdata/z-lstree.txt", + entries: Entries{ + { + Mode: []byte("100644"), + Type: Blob, + Oid: "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82", + Path: ".gitignore", + }, + { + Mode: []byte("100644"), + Type: Blob, + Oid: "0792c58905eff3432b721f8c4a64363d8e28d9ae", + Path: ".gitmodules", + }, + { + Mode: []byte("040000"), + Type: Tree, + Oid: "3c122d2b7830eca25235131070602575cf8b41a1", + Path: "encoding", + }, + { + Mode: []byte("160000"), + Type: Submodule, + Oid: "79bceae69cb5750d6567b223597999bfa91cb3b9", + Path: "gitlab-shell", + }, + }, + }, + { + desc: "irregular path", + filename: "testdata/z-lstree-irregular.txt", + entries: Entries{ + { + Mode: []byte("100644"), + Type: Blob, + Oid: "dfaa3f97ca337e20154a98ac9d0be76ddd1fcc82", + Path: ".gitignore", + }, + { + Mode: []byte("100644"), + Type: Blob, + Oid: "0792c58905eff3432b721f8c4a64363d8e28d9ae", + Path: ".gitmodules", + }, + { + Mode: []byte("040000"), + Type: Tree, + Oid: "3c122d2b7830eca25235131070602575cf8b41a1", + Path: "some encoding", + }, + { + Mode: []byte("160000"), + Type: Submodule, + Oid: "79bceae69cb5750d6567b223597999bfa91cb3b9", + Path: "gitlab-shell", + }, + }, + }, + } + + for _, testCase := range testCases { + t.Run(testCase.desc, func(t *testing.T) { + file, err := os.Open(testCase.filename) + + require.NoError(t, err) + defer file.Close() + + parsedEntries := Entries{} + + parser := NewParser(file) + for { + entry, err := parser.NextEntry() + if err == io.EOF { + break + } + + require.NoError(t, err) + parsedEntries = append(parsedEntries, *entry) + } + + expectedEntries := testCase.entries + require.Len(t, expectedEntries, len(parsedEntries)) + + for index, parsedEntry := range parsedEntries { + expectedEntry := expectedEntries[index] + + require.Equal(t, expectedEntry, parsedEntry) + } + }) + } +} diff --git a/internal/git/lstree/testdata/z-lstree-irregular.txt b/internal/git/lstree/testdata/z-lstree-irregular.txt Binary files differnew file mode 100644 index 000000000..ed55df3a4 --- /dev/null +++ b/internal/git/lstree/testdata/z-lstree-irregular.txt diff --git a/internal/git/lstree/testdata/z-lstree.txt b/internal/git/lstree/testdata/z-lstree.txt Binary files differnew file mode 100644 index 000000000..653a2f8b1 --- /dev/null +++ b/internal/git/lstree/testdata/z-lstree.txt diff --git a/internal/service/commit/list_last_commits_for_tree.go b/internal/service/commit/list_last_commits_for_tree.go new file mode 100644 index 000000000..e7fa14ee2 --- /dev/null +++ b/internal/service/commit/list_last_commits_for_tree.go @@ -0,0 +1,134 @@ +package commit + +import ( + "fmt" + "io" + "sort" + + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + + pb "gitlab.com/gitlab-org/gitaly-proto/go" + "gitlab.com/gitlab-org/gitaly/internal/command" + "gitlab.com/gitlab-org/gitaly/internal/git" + "gitlab.com/gitlab-org/gitaly/internal/git/log" + "gitlab.com/gitlab-org/gitaly/internal/git/lstree" +) + +var ( + maxNumStatBatchSize = 10 +) + +func (s *server) ListLastCommitsForTree(in *pb.ListLastCommitsForTreeRequest, stream pb.CommitService_ListLastCommitsForTreeServer) error { + if err := validateListLastCommitsForTreeRequest(in); err != nil { + return status.Errorf(codes.InvalidArgument, "ListLastCommitsForTree: %v", err) + } + + cmd, parser, err := newLSTreeParser(in, stream) + if err != nil { + if _, ok := status.FromError(err); ok { + return err + } + + return status.Errorf(codes.Internal, "ListLastCommitsForTree: gitCommand: %v", err) + } + + batch := make([]*pb.ListLastCommitsForTreeResponse_CommitForTree, 0, maxNumStatBatchSize) + entries, err := getLSTreeEntries(parser) + if err != nil { + return err + } + + offset := int(in.GetOffset()) + if offset >= len(entries) { + offset = 0 + entries = lstree.Entries{} + } + + limit := offset + int(in.GetLimit()) + if limit > len(entries) { + limit = len(entries) + } + + for _, entry := range entries[offset:limit] { + commit, err := log.LastCommitForPath(stream.Context(), in.GetRepository(), string(in.GetRevision()), entry.Path) + if err != nil { + return err + } + + commitForTree := &pb.ListLastCommitsForTreeResponse_CommitForTree{ + Path: entry.Path, + Commit: commit, + } + + batch = append(batch, commitForTree) + if len(batch) == maxNumStatBatchSize { + if err := sendCommitsForTree(batch, stream); err != nil { + return err + } + + batch = batch[0:0] + } + } + + if err := cmd.Wait(); err != nil { + return status.Errorf(codes.Internal, "ListLastCommitsForTree: %v", err) + } + + return sendCommitsForTree(batch, stream) +} + +func getLSTreeEntries(parser *lstree.Parser) (lstree.Entries, error) { + entries := lstree.Entries{} + + for { + entry, err := parser.NextEntry() + if err != nil { + if err == io.EOF { + break + } + + return nil, err + } + + entries = append(entries, *entry) + } + + sort.Stable(entries) + + return entries, nil +} + +func newLSTreeParser(in *pb.ListLastCommitsForTreeRequest, stream pb.CommitService_ListLastCommitsForTreeServer) (*command.Command, *lstree.Parser, error) { + path := string(in.GetPath()) + if path == "" || path == "/" { + path = "." + } + + cmdArgs := []string{"ls-tree", "-z", "--full-name", string(in.GetRevision()), path} + cmd, err := git.Command(stream.Context(), in.GetRepository(), cmdArgs...) + if err != nil { + return nil, nil, err + } + + return cmd, lstree.NewParser(cmd), nil +} + +func sendCommitsForTree(batch []*pb.ListLastCommitsForTreeResponse_CommitForTree, stream pb.CommitService_ListLastCommitsForTreeServer) error { + if len(batch) == 0 { + return nil + } + + if err := stream.Send(&pb.ListLastCommitsForTreeResponse{Commits: batch}); err != nil { + return err + } + + return nil +} + +func validateListLastCommitsForTreeRequest(in *pb.ListLastCommitsForTreeRequest) error { + if in.Revision == "" { + return fmt.Errorf("empty Revision") + } + return nil +} diff --git a/internal/service/commit/list_last_commits_for_tree_test.go b/internal/service/commit/list_last_commits_for_tree_test.go new file mode 100644 index 000000000..1b0b10fc7 --- /dev/null +++ b/internal/service/commit/list_last_commits_for_tree_test.go @@ -0,0 +1,295 @@ +package commit + +import ( + "io" + "testing" + + "gitlab.com/gitlab-org/gitaly/internal/testhelper" + + pb "gitlab.com/gitlab-org/gitaly-proto/go" + + "github.com/stretchr/testify/require" + "golang.org/x/net/context" + "google.golang.org/grpc/codes" +) + +type commitInfo struct { + path []byte + id string +} + +func TestSuccessfulListLastCommitsForTreeRequest(t *testing.T) { + server, serverSockerPath := startTestServices(t) + defer server.Stop() + + client, conn := newCommitServiceClient(t, serverSockerPath) + defer conn.Close() + + testRepo, _, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + testCases := []struct { + desc string + revision string + path []byte + info []commitInfo + limit int32 + offset int32 + }{ + { + desc: "path is '/'", + revision: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", + path: []byte("/"), + info: []commitInfo{ + { + path: []byte("encoding"), + id: "913c66a37b4a45b9769037c55c2d238bd0942d2e", + }, + { + path: []byte("files"), + id: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", + }, + { + path: []byte(".gitignore"), + id: "c1acaa58bbcbc3eafe538cb8274ba387047b69f8", + }, + { + path: []byte(".gitmodules"), + id: "6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9", + }, + { + path: []byte("CHANGELOG"), + id: "913c66a37b4a45b9769037c55c2d238bd0942d2e", + }, + { + path: []byte("CONTRIBUTING.md"), + id: "6d394385cf567f80a8fd85055db1ab4c5295806f", + }, + { + path: []byte("Gemfile.zip"), + id: "ae73cb07c9eeaf35924a10f713b364d32b2dd34f", + }, + { + path: []byte("LICENSE"), + id: "1a0b36b3cdad1d2ee32457c102a8c0b7056fa863", + }, + { + path: []byte("MAINTENANCE.md"), + id: "913c66a37b4a45b9769037c55c2d238bd0942d2e", + }, + { + path: []byte("PROCESS.md"), + id: "913c66a37b4a45b9769037c55c2d238bd0942d2e", + }, + { + path: []byte("README.md"), + id: "1a0b36b3cdad1d2ee32457c102a8c0b7056fa863", + }, + { + path: []byte("VERSION"), + id: "913c66a37b4a45b9769037c55c2d238bd0942d2e", + }, + { + path: []byte("gitlab-shell"), + id: "6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9", + }, + { + path: []byte("six"), + id: "cfe32cf61b73a0d5e9f13e774abde7ff789b1660", + }, + }, + limit: 25, + offset: 0, + }, + { + desc: "path is 'files/'", + revision: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", + path: []byte("files/"), + info: []commitInfo{ + { + path: []byte("files/html"), + id: "913c66a37b4a45b9769037c55c2d238bd0942d2e", + }, + { + path: []byte("files/images"), + id: "2f63565e7aac07bcdadb654e253078b727143ec4", + }, + { + path: []byte("files/js"), + id: "913c66a37b4a45b9769037c55c2d238bd0942d2e", + }, + { + path: []byte("files/markdown"), + id: "913c66a37b4a45b9769037c55c2d238bd0942d2e", + }, + { + path: []byte("files/ruby"), + id: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", + }, + }, + limit: 25, + offset: 0, + }, + { + desc: "with offset higher than number of paths", + revision: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", + path: []byte("/"), + info: []commitInfo{}, + limit: 25, + offset: 14, + }, + { + desc: "with limit 1", + revision: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", + path: []byte("/"), + info: []commitInfo{ + { + path: []byte("encoding"), + id: "913c66a37b4a45b9769037c55c2d238bd0942d2e", + }, + }, + limit: 1, + offset: 0, + }, + { + desc: "with offset 13", + revision: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", + path: []byte("/"), + info: []commitInfo{ + { + path: []byte("six"), + id: "cfe32cf61b73a0d5e9f13e774abde7ff789b1660", + }, + }, + limit: 25, + offset: 13, + }, + } + + for _, testCase := range testCases { + t.Run(testCase.desc, func(t *testing.T) { + request := &pb.ListLastCommitsForTreeRequest{ + Repository: testRepo, + Revision: testCase.revision, + Path: testCase.path, + Limit: testCase.limit, + Offset: testCase.offset, + } + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + stream, err := client.ListLastCommitsForTree(ctx, request) + if err != nil { + t.Fatal(err) + } + + counter := 0 + for { + fetchedCommits, err := stream.Recv() + if err == io.EOF { + break + } + + require.NoError(t, err) + + commits := fetchedCommits.GetCommits() + + for _, fetchedCommit := range commits { + expectedInfo := testCase.info[counter] + + require.Equal(t, string(expectedInfo.path), string(fetchedCommit.Path)) + require.Equal(t, expectedInfo.id, fetchedCommit.Commit.Id) + + counter++ + } + } + }) + } +} + +func TestFailedListLastCommitsForTreeRequest(t *testing.T) { + server, serverSocketPath := startTestServices(t) + defer server.Stop() + + client, conn := newCommitServiceClient(t, serverSocketPath) + defer conn.Close() + + testRepo, _, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + invalidRepo := &pb.Repository{StorageName: "broken", RelativePath: "path"} + + testCases := []struct { + desc string + request *pb.ListLastCommitsForTreeRequest + code codes.Code + }{ + { + desc: "Revision is missing", + request: &pb.ListLastCommitsForTreeRequest{ + Repository: testRepo, + Path: []byte("/"), + Revision: "", + Offset: 0, + Limit: 25, + }, + code: codes.InvalidArgument, + }, + { + desc: "Invalid repository", + request: &pb.ListLastCommitsForTreeRequest{ + Repository: invalidRepo, + Path: []byte("/"), + Revision: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", + Offset: 0, + Limit: 25, + }, + code: codes.InvalidArgument, + }, + { + desc: "Repository is nil", + request: &pb.ListLastCommitsForTreeRequest{ + Path: []byte("/"), + Revision: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", + Offset: 0, + Limit: 25, + }, + code: codes.InvalidArgument, + }, + { + desc: "Revision is missing", + request: &pb.ListLastCommitsForTreeRequest{ + Repository: testRepo, + Path: []byte("/"), + Offset: 0, + Limit: 25, + }, + code: codes.InvalidArgument, + }, + { + desc: "Ambiguous revision", + request: &pb.ListLastCommitsForTreeRequest{ + Repository: testRepo, + Revision: "a", + Offset: 0, + Limit: 25, + }, + code: codes.Internal, + }, + } + + for _, testCase := range testCases { + ctx, cancel := testhelper.Context() + defer cancel() + + stream, err := client.ListLastCommitsForTree(ctx, testCase.request) + require.NoError(t, err) + + t.Run(testCase.desc, func(t *testing.T) { + _, err := stream.Recv() + + testhelper.RequireGrpcError(t, err, testCase.code) + }) + } +} diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION index a38b3bd31..f14311864 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION @@ -1 +1 @@ -0.117.0 +0.118.1 diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go index 26e5f47a7..3aac60a59 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go @@ -65,6 +65,8 @@ It has these top-level messages: RawBlameResponse LastCommitForPathRequest LastCommitForPathResponse + ListLastCommitsForTreeRequest + ListLastCommitsForTreeResponse CommitsByMessageRequest CommitsByMessageResponse FilterShasWithSignaturesRequest diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/commit.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/commit.pb.go index b9a259657..c12fd90f5 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/commit.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/commit.pb.go @@ -1024,6 +1024,101 @@ func (m *LastCommitForPathResponse) GetCommit() *GitCommit { return nil } +type ListLastCommitsForTreeRequest struct { + Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"` + Revision string `protobuf:"bytes,2,opt,name=revision" json:"revision,omitempty"` + Path []byte `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"` + // limit == -1 will get the last commit for all paths + Limit int32 `protobuf:"varint,4,opt,name=limit" json:"limit,omitempty"` + Offset int32 `protobuf:"varint,5,opt,name=offset" json:"offset,omitempty"` +} + +func (m *ListLastCommitsForTreeRequest) Reset() { *m = ListLastCommitsForTreeRequest{} } +func (m *ListLastCommitsForTreeRequest) String() string { return proto.CompactTextString(m) } +func (*ListLastCommitsForTreeRequest) ProtoMessage() {} +func (*ListLastCommitsForTreeRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{29} } + +func (m *ListLastCommitsForTreeRequest) GetRepository() *Repository { + if m != nil { + return m.Repository + } + return nil +} + +func (m *ListLastCommitsForTreeRequest) GetRevision() string { + if m != nil { + return m.Revision + } + return "" +} + +func (m *ListLastCommitsForTreeRequest) GetPath() []byte { + if m != nil { + return m.Path + } + return nil +} + +func (m *ListLastCommitsForTreeRequest) GetLimit() int32 { + if m != nil { + return m.Limit + } + return 0 +} + +func (m *ListLastCommitsForTreeRequest) GetOffset() int32 { + if m != nil { + return m.Offset + } + return 0 +} + +type ListLastCommitsForTreeResponse struct { + Commits []*ListLastCommitsForTreeResponse_CommitForTree `protobuf:"bytes,1,rep,name=commits" json:"commits,omitempty"` +} + +func (m *ListLastCommitsForTreeResponse) Reset() { *m = ListLastCommitsForTreeResponse{} } +func (m *ListLastCommitsForTreeResponse) String() string { return proto.CompactTextString(m) } +func (*ListLastCommitsForTreeResponse) ProtoMessage() {} +func (*ListLastCommitsForTreeResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{30} } + +func (m *ListLastCommitsForTreeResponse) GetCommits() []*ListLastCommitsForTreeResponse_CommitForTree { + if m != nil { + return m.Commits + } + return nil +} + +type ListLastCommitsForTreeResponse_CommitForTree struct { + Commit *GitCommit `protobuf:"bytes,2,opt,name=commit" json:"commit,omitempty"` + Path string `protobuf:"bytes,3,opt,name=path" json:"path,omitempty"` +} + +func (m *ListLastCommitsForTreeResponse_CommitForTree) Reset() { + *m = ListLastCommitsForTreeResponse_CommitForTree{} +} +func (m *ListLastCommitsForTreeResponse_CommitForTree) String() string { + return proto.CompactTextString(m) +} +func (*ListLastCommitsForTreeResponse_CommitForTree) ProtoMessage() {} +func (*ListLastCommitsForTreeResponse_CommitForTree) Descriptor() ([]byte, []int) { + return fileDescriptor1, []int{30, 0} +} + +func (m *ListLastCommitsForTreeResponse_CommitForTree) GetCommit() *GitCommit { + if m != nil { + return m.Commit + } + return nil +} + +func (m *ListLastCommitsForTreeResponse_CommitForTree) GetPath() string { + if m != nil { + return m.Path + } + return "" +} + type CommitsByMessageRequest struct { Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"` Revision []byte `protobuf:"bytes,2,opt,name=revision,proto3" json:"revision,omitempty"` @@ -1036,7 +1131,7 @@ type CommitsByMessageRequest struct { func (m *CommitsByMessageRequest) Reset() { *m = CommitsByMessageRequest{} } func (m *CommitsByMessageRequest) String() string { return proto.CompactTextString(m) } func (*CommitsByMessageRequest) ProtoMessage() {} -func (*CommitsByMessageRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{29} } +func (*CommitsByMessageRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{31} } func (m *CommitsByMessageRequest) GetRepository() *Repository { if m != nil { @@ -1088,7 +1183,7 @@ type CommitsByMessageResponse struct { func (m *CommitsByMessageResponse) Reset() { *m = CommitsByMessageResponse{} } func (m *CommitsByMessageResponse) String() string { return proto.CompactTextString(m) } func (*CommitsByMessageResponse) ProtoMessage() {} -func (*CommitsByMessageResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{30} } +func (*CommitsByMessageResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{32} } func (m *CommitsByMessageResponse) GetCommits() []*GitCommit { if m != nil { @@ -1106,7 +1201,7 @@ func (m *FilterShasWithSignaturesRequest) Reset() { *m = FilterShasWithS func (m *FilterShasWithSignaturesRequest) String() string { return proto.CompactTextString(m) } func (*FilterShasWithSignaturesRequest) ProtoMessage() {} func (*FilterShasWithSignaturesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor1, []int{31} + return fileDescriptor1, []int{33} } func (m *FilterShasWithSignaturesRequest) GetRepository() *Repository { @@ -1131,7 +1226,7 @@ func (m *FilterShasWithSignaturesResponse) Reset() { *m = FilterShasWith func (m *FilterShasWithSignaturesResponse) String() string { return proto.CompactTextString(m) } func (*FilterShasWithSignaturesResponse) ProtoMessage() {} func (*FilterShasWithSignaturesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor1, []int{32} + return fileDescriptor1, []int{34} } func (m *FilterShasWithSignaturesResponse) GetShas() [][]byte { @@ -1149,7 +1244,7 @@ type ExtractCommitSignatureRequest struct { func (m *ExtractCommitSignatureRequest) Reset() { *m = ExtractCommitSignatureRequest{} } func (m *ExtractCommitSignatureRequest) String() string { return proto.CompactTextString(m) } func (*ExtractCommitSignatureRequest) ProtoMessage() {} -func (*ExtractCommitSignatureRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{33} } +func (*ExtractCommitSignatureRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{35} } func (m *ExtractCommitSignatureRequest) GetRepository() *Repository { if m != nil { @@ -1175,7 +1270,7 @@ type ExtractCommitSignatureResponse struct { func (m *ExtractCommitSignatureResponse) Reset() { *m = ExtractCommitSignatureResponse{} } func (m *ExtractCommitSignatureResponse) String() string { return proto.CompactTextString(m) } func (*ExtractCommitSignatureResponse) ProtoMessage() {} -func (*ExtractCommitSignatureResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{34} } +func (*ExtractCommitSignatureResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{36} } func (m *ExtractCommitSignatureResponse) GetSignature() []byte { if m != nil { @@ -1199,7 +1294,7 @@ type GetCommitSignaturesRequest struct { func (m *GetCommitSignaturesRequest) Reset() { *m = GetCommitSignaturesRequest{} } func (m *GetCommitSignaturesRequest) String() string { return proto.CompactTextString(m) } func (*GetCommitSignaturesRequest) ProtoMessage() {} -func (*GetCommitSignaturesRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{35} } +func (*GetCommitSignaturesRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{37} } func (m *GetCommitSignaturesRequest) GetRepository() *Repository { if m != nil { @@ -1226,7 +1321,7 @@ type GetCommitSignaturesResponse struct { func (m *GetCommitSignaturesResponse) Reset() { *m = GetCommitSignaturesResponse{} } func (m *GetCommitSignaturesResponse) String() string { return proto.CompactTextString(m) } func (*GetCommitSignaturesResponse) ProtoMessage() {} -func (*GetCommitSignaturesResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{36} } +func (*GetCommitSignaturesResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{38} } func (m *GetCommitSignaturesResponse) GetCommitId() string { if m != nil { @@ -1257,7 +1352,7 @@ type GetCommitMessagesRequest struct { func (m *GetCommitMessagesRequest) Reset() { *m = GetCommitMessagesRequest{} } func (m *GetCommitMessagesRequest) String() string { return proto.CompactTextString(m) } func (*GetCommitMessagesRequest) ProtoMessage() {} -func (*GetCommitMessagesRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{37} } +func (*GetCommitMessagesRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{39} } func (m *GetCommitMessagesRequest) GetRepository() *Repository { if m != nil { @@ -1282,7 +1377,7 @@ type GetCommitMessagesResponse struct { func (m *GetCommitMessagesResponse) Reset() { *m = GetCommitMessagesResponse{} } func (m *GetCommitMessagesResponse) String() string { return proto.CompactTextString(m) } func (*GetCommitMessagesResponse) ProtoMessage() {} -func (*GetCommitMessagesResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{38} } +func (*GetCommitMessagesResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{40} } func (m *GetCommitMessagesResponse) GetCommitId() string { if m != nil { @@ -1329,6 +1424,9 @@ func init() { proto.RegisterType((*RawBlameResponse)(nil), "gitaly.RawBlameResponse") proto.RegisterType((*LastCommitForPathRequest)(nil), "gitaly.LastCommitForPathRequest") proto.RegisterType((*LastCommitForPathResponse)(nil), "gitaly.LastCommitForPathResponse") + proto.RegisterType((*ListLastCommitsForTreeRequest)(nil), "gitaly.ListLastCommitsForTreeRequest") + proto.RegisterType((*ListLastCommitsForTreeResponse)(nil), "gitaly.ListLastCommitsForTreeResponse") + proto.RegisterType((*ListLastCommitsForTreeResponse_CommitForTree)(nil), "gitaly.ListLastCommitsForTreeResponse.CommitForTree") proto.RegisterType((*CommitsByMessageRequest)(nil), "gitaly.CommitsByMessageRequest") proto.RegisterType((*CommitsByMessageResponse)(nil), "gitaly.CommitsByMessageResponse") proto.RegisterType((*FilterShasWithSignaturesRequest)(nil), "gitaly.FilterShasWithSignaturesRequest") @@ -1369,6 +1467,7 @@ type CommitServiceClient interface { CommitLanguages(ctx context.Context, in *CommitLanguagesRequest, opts ...grpc.CallOption) (*CommitLanguagesResponse, error) RawBlame(ctx context.Context, in *RawBlameRequest, opts ...grpc.CallOption) (CommitService_RawBlameClient, error) LastCommitForPath(ctx context.Context, in *LastCommitForPathRequest, opts ...grpc.CallOption) (*LastCommitForPathResponse, error) + ListLastCommitsForTree(ctx context.Context, in *ListLastCommitsForTreeRequest, opts ...grpc.CallOption) (CommitService_ListLastCommitsForTreeClient, error) CommitsByMessage(ctx context.Context, in *CommitsByMessageRequest, opts ...grpc.CallOption) (CommitService_CommitsByMessageClient, error) ListCommitsByOid(ctx context.Context, in *ListCommitsByOidRequest, opts ...grpc.CallOption) (CommitService_ListCommitsByOidClient, error) FilterShasWithSignatures(ctx context.Context, opts ...grpc.CallOption) (CommitService_FilterShasWithSignaturesClient, error) @@ -1666,8 +1765,40 @@ func (c *commitServiceClient) LastCommitForPath(ctx context.Context, in *LastCom return out, nil } +func (c *commitServiceClient) ListLastCommitsForTree(ctx context.Context, in *ListLastCommitsForTreeRequest, opts ...grpc.CallOption) (CommitService_ListLastCommitsForTreeClient, error) { + stream, err := grpc.NewClientStream(ctx, &_CommitService_serviceDesc.Streams[7], c.cc, "/gitaly.CommitService/ListLastCommitsForTree", opts...) + if err != nil { + return nil, err + } + x := &commitServiceListLastCommitsForTreeClient{stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +type CommitService_ListLastCommitsForTreeClient interface { + Recv() (*ListLastCommitsForTreeResponse, error) + grpc.ClientStream +} + +type commitServiceListLastCommitsForTreeClient struct { + grpc.ClientStream +} + +func (x *commitServiceListLastCommitsForTreeClient) Recv() (*ListLastCommitsForTreeResponse, error) { + m := new(ListLastCommitsForTreeResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + func (c *commitServiceClient) CommitsByMessage(ctx context.Context, in *CommitsByMessageRequest, opts ...grpc.CallOption) (CommitService_CommitsByMessageClient, error) { - stream, err := grpc.NewClientStream(ctx, &_CommitService_serviceDesc.Streams[7], c.cc, "/gitaly.CommitService/CommitsByMessage", opts...) + stream, err := grpc.NewClientStream(ctx, &_CommitService_serviceDesc.Streams[8], c.cc, "/gitaly.CommitService/CommitsByMessage", opts...) if err != nil { return nil, err } @@ -1699,7 +1830,7 @@ func (x *commitServiceCommitsByMessageClient) Recv() (*CommitsByMessageResponse, } func (c *commitServiceClient) ListCommitsByOid(ctx context.Context, in *ListCommitsByOidRequest, opts ...grpc.CallOption) (CommitService_ListCommitsByOidClient, error) { - stream, err := grpc.NewClientStream(ctx, &_CommitService_serviceDesc.Streams[8], c.cc, "/gitaly.CommitService/ListCommitsByOid", opts...) + stream, err := grpc.NewClientStream(ctx, &_CommitService_serviceDesc.Streams[9], c.cc, "/gitaly.CommitService/ListCommitsByOid", opts...) if err != nil { return nil, err } @@ -1731,7 +1862,7 @@ func (x *commitServiceListCommitsByOidClient) Recv() (*ListCommitsByOidResponse, } func (c *commitServiceClient) FilterShasWithSignatures(ctx context.Context, opts ...grpc.CallOption) (CommitService_FilterShasWithSignaturesClient, error) { - stream, err := grpc.NewClientStream(ctx, &_CommitService_serviceDesc.Streams[9], c.cc, "/gitaly.CommitService/FilterShasWithSignatures", opts...) + stream, err := grpc.NewClientStream(ctx, &_CommitService_serviceDesc.Streams[10], c.cc, "/gitaly.CommitService/FilterShasWithSignatures", opts...) if err != nil { return nil, err } @@ -1762,7 +1893,7 @@ func (x *commitServiceFilterShasWithSignaturesClient) Recv() (*FilterShasWithSig } func (c *commitServiceClient) ExtractCommitSignature(ctx context.Context, in *ExtractCommitSignatureRequest, opts ...grpc.CallOption) (CommitService_ExtractCommitSignatureClient, error) { - stream, err := grpc.NewClientStream(ctx, &_CommitService_serviceDesc.Streams[10], c.cc, "/gitaly.CommitService/ExtractCommitSignature", opts...) + stream, err := grpc.NewClientStream(ctx, &_CommitService_serviceDesc.Streams[11], c.cc, "/gitaly.CommitService/ExtractCommitSignature", opts...) if err != nil { return nil, err } @@ -1794,7 +1925,7 @@ func (x *commitServiceExtractCommitSignatureClient) Recv() (*ExtractCommitSignat } func (c *commitServiceClient) GetCommitSignatures(ctx context.Context, in *GetCommitSignaturesRequest, opts ...grpc.CallOption) (CommitService_GetCommitSignaturesClient, error) { - stream, err := grpc.NewClientStream(ctx, &_CommitService_serviceDesc.Streams[11], c.cc, "/gitaly.CommitService/GetCommitSignatures", opts...) + stream, err := grpc.NewClientStream(ctx, &_CommitService_serviceDesc.Streams[12], c.cc, "/gitaly.CommitService/GetCommitSignatures", opts...) if err != nil { return nil, err } @@ -1826,7 +1957,7 @@ func (x *commitServiceGetCommitSignaturesClient) Recv() (*GetCommitSignaturesRes } func (c *commitServiceClient) GetCommitMessages(ctx context.Context, in *GetCommitMessagesRequest, opts ...grpc.CallOption) (CommitService_GetCommitMessagesClient, error) { - stream, err := grpc.NewClientStream(ctx, &_CommitService_serviceDesc.Streams[12], c.cc, "/gitaly.CommitService/GetCommitMessages", opts...) + stream, err := grpc.NewClientStream(ctx, &_CommitService_serviceDesc.Streams[13], c.cc, "/gitaly.CommitService/GetCommitMessages", opts...) if err != nil { return nil, err } @@ -1874,6 +2005,7 @@ type CommitServiceServer interface { CommitLanguages(context.Context, *CommitLanguagesRequest) (*CommitLanguagesResponse, error) RawBlame(*RawBlameRequest, CommitService_RawBlameServer) error LastCommitForPath(context.Context, *LastCommitForPathRequest) (*LastCommitForPathResponse, error) + ListLastCommitsForTree(*ListLastCommitsForTreeRequest, CommitService_ListLastCommitsForTreeServer) error CommitsByMessage(*CommitsByMessageRequest, CommitService_CommitsByMessageServer) error ListCommitsByOid(*ListCommitsByOidRequest, CommitService_ListCommitsByOidServer) error FilterShasWithSignatures(CommitService_FilterShasWithSignaturesServer) error @@ -2144,6 +2276,27 @@ func _CommitService_LastCommitForPath_Handler(srv interface{}, ctx context.Conte return interceptor(ctx, in, info, handler) } +func _CommitService_ListLastCommitsForTree_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(ListLastCommitsForTreeRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(CommitServiceServer).ListLastCommitsForTree(m, &commitServiceListLastCommitsForTreeServer{stream}) +} + +type CommitService_ListLastCommitsForTreeServer interface { + Send(*ListLastCommitsForTreeResponse) error + grpc.ServerStream +} + +type commitServiceListLastCommitsForTreeServer struct { + grpc.ServerStream +} + +func (x *commitServiceListLastCommitsForTreeServer) Send(m *ListLastCommitsForTreeResponse) error { + return x.ServerStream.SendMsg(m) +} + func _CommitService_CommitsByMessage_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(CommitsByMessageRequest) if err := stream.RecvMsg(m); err != nil { @@ -2341,6 +2494,11 @@ var _CommitService_serviceDesc = grpc.ServiceDesc{ ServerStreams: true, }, { + StreamName: "ListLastCommitsForTree", + Handler: _CommitService_ListLastCommitsForTree_Handler, + ServerStreams: true, + }, + { StreamName: "CommitsByMessage", Handler: _CommitService_CommitsByMessage_Handler, ServerStreams: true, @@ -2378,112 +2536,117 @@ var _CommitService_serviceDesc = grpc.ServiceDesc{ func init() { proto.RegisterFile("commit.proto", fileDescriptor1) } var fileDescriptor1 = []byte{ - // 1697 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0xdd, 0x6e, 0xdb, 0x46, - 0x16, 0x36, 0x25, 0x4b, 0x96, 0x8e, 0xb4, 0x8e, 0x3c, 0xf9, 0xa3, 0x69, 0x27, 0x76, 0x98, 0x4d, - 0xd6, 0x41, 0x16, 0x8a, 0xa1, 0xc5, 0x2e, 0x76, 0xaf, 0x16, 0x76, 0x22, 0xbb, 0x4e, 0xed, 0x28, - 0xa0, 0x05, 0x04, 0x29, 0x0a, 0x08, 0xb4, 0x38, 0x92, 0xa6, 0xa6, 0x44, 0x85, 0x1c, 0xd9, 0x56, - 0x2f, 0x7a, 0x5f, 0xa0, 0xe8, 0x7d, 0x1f, 0xa2, 0x0f, 0xd1, 0x57, 0xe8, 0x73, 0xf4, 0x09, 0x82, - 0x5e, 0x14, 0xf3, 0x43, 0x0e, 0x25, 0x52, 0x76, 0x62, 0x43, 0xb9, 0x21, 0x66, 0xce, 0xfc, 0x9c, - 0xef, 0x9c, 0x39, 0xbf, 0x84, 0x72, 0xdb, 0xeb, 0xf7, 0x09, 0xad, 0x0e, 0x7d, 0x8f, 0x7a, 0x28, - 0xdf, 0x25, 0xd4, 0x76, 0xc7, 0x46, 0x39, 0xe8, 0xd9, 0x3e, 0x76, 0x04, 0xd5, 0xd8, 0xe8, 0x7a, - 0x5e, 0xd7, 0xc5, 0x2f, 0xf8, 0xec, 0x64, 0xd4, 0x79, 0x41, 0x49, 0x1f, 0x07, 0xd4, 0xee, 0x0f, - 0xc5, 0x06, 0xd3, 0x01, 0xf4, 0x92, 0x5f, 0x73, 0x4c, 0x6d, 0x1a, 0x58, 0xf8, 0xc3, 0x08, 0x07, - 0x14, 0xd5, 0x00, 0x7c, 0x3c, 0xf4, 0x02, 0x42, 0x3d, 0x7f, 0xac, 0x6b, 0x9b, 0xda, 0x56, 0xa9, - 0x86, 0xaa, 0x82, 0x43, 0xd5, 0x8a, 0x56, 0xac, 0xd8, 0x2e, 0x64, 0x40, 0xc1, 0xc7, 0x67, 0x24, - 0x20, 0xde, 0x40, 0xcf, 0x6c, 0x6a, 0x5b, 0x65, 0x2b, 0x9a, 0x9b, 0x6d, 0xb8, 0x3d, 0xc1, 0x25, - 0x18, 0x7a, 0x83, 0x00, 0xa3, 0x0a, 0x64, 0x3d, 0xe2, 0xf0, 0xfb, 0x8b, 0x16, 0x1b, 0xa2, 0x75, - 0x28, 0xda, 0x8e, 0x43, 0x28, 0xf1, 0x06, 0x01, 0xbf, 0x25, 0x67, 0x29, 0x02, 0x5b, 0x75, 0xb0, - 0x8b, 0xc5, 0x6a, 0x56, 0xac, 0x46, 0x04, 0xf3, 0x47, 0x0d, 0xee, 0x0b, 0x2e, 0x07, 0xc1, 0xce, - 0xa0, 0x8d, 0x03, 0xea, 0xf9, 0x37, 0x11, 0x68, 0x03, 0x4a, 0xb6, 0xbc, 0xa6, 0x45, 0x1c, 0x8e, - 0xa6, 0x68, 0x41, 0x48, 0x3a, 0x70, 0xd0, 0x2a, 0x14, 0xda, 0x3d, 0xe2, 0x3a, 0x6c, 0x35, 0xcb, - 0x57, 0x97, 0xf8, 0xfc, 0xc0, 0x31, 0xb7, 0x41, 0x4f, 0x42, 0x91, 0x52, 0xdf, 0x81, 0xdc, 0x99, - 0xed, 0x8e, 0x30, 0x87, 0x51, 0xb0, 0xc4, 0xc4, 0xfc, 0x49, 0x83, 0x4a, 0xd3, 0xc7, 0xb8, 0x3e, - 0xa0, 0xfe, 0x78, 0x4e, 0xef, 0x80, 0x10, 0x2c, 0x0e, 0x6d, 0xda, 0xe3, 0x68, 0xcb, 0x16, 0x1f, - 0x33, 0x38, 0x2e, 0xe9, 0x13, 0xaa, 0x2f, 0x6e, 0x6a, 0x5b, 0x59, 0x4b, 0x4c, 0xcc, 0xdf, 0x35, - 0x58, 0x89, 0xc1, 0x91, 0xd0, 0xff, 0x0b, 0x8b, 0x74, 0x3c, 0x14, 0xc8, 0x97, 0x6b, 0x7f, 0x0f, - 0x91, 0x24, 0x36, 0x56, 0x1b, 0x27, 0xdf, 0xe1, 0x36, 0x6d, 0x8e, 0x87, 0xd8, 0xe2, 0x27, 0xc2, - 0xa7, 0xce, 0xa8, 0xa7, 0x46, 0xb0, 0x18, 0x90, 0xef, 0x31, 0xc7, 0x92, 0xb5, 0xf8, 0x98, 0xd1, - 0xfa, 0x9e, 0x83, 0x39, 0x94, 0x9c, 0xc5, 0xc7, 0x8c, 0xe6, 0xd8, 0xd4, 0xd6, 0x73, 0x02, 0x33, - 0x1b, 0x9b, 0xff, 0x06, 0x50, 0x1c, 0x10, 0x40, 0xfe, 0x65, 0xe3, 0xe8, 0xe8, 0xa0, 0x59, 0x59, - 0x40, 0x05, 0x58, 0xdc, 0x3d, 0x6c, 0xec, 0x56, 0x34, 0x36, 0x6a, 0x5a, 0xf5, 0x7a, 0x25, 0x83, - 0x96, 0x20, 0xdb, 0xdc, 0xd9, 0xaf, 0x64, 0x4d, 0x0f, 0xee, 0x8a, 0x57, 0x09, 0x76, 0x31, 0x3d, - 0xc7, 0x78, 0x70, 0x13, 0x3d, 0x23, 0x58, 0xec, 0xf8, 0x5e, 0x5f, 0xea, 0x98, 0x8f, 0xd1, 0x32, - 0x64, 0xa8, 0x27, 0xb5, 0x9b, 0xa1, 0x9e, 0x59, 0x87, 0x7b, 0xd3, 0x0c, 0xa5, 0x26, 0x9f, 0xc3, - 0x92, 0x70, 0xdf, 0x40, 0xd7, 0x36, 0xb3, 0x5b, 0xa5, 0xda, 0x4a, 0xc8, 0x6e, 0x9f, 0x50, 0x71, - 0xc6, 0x0a, 0x77, 0x98, 0x3f, 0x67, 0x98, 0xff, 0x8c, 0x06, 0x72, 0x61, 0x5e, 0x6e, 0x8a, 0xb6, - 0x21, 0x67, 0x77, 0x28, 0xf6, 0xb9, 0x04, 0xa5, 0x9a, 0x51, 0x15, 0xd1, 0xa3, 0x1a, 0x46, 0x8f, - 0x6a, 0x33, 0x8c, 0x1e, 0x96, 0xd8, 0x88, 0x6a, 0x90, 0x3f, 0xc1, 0x1d, 0xcf, 0x17, 0x4f, 0x76, - 0xf9, 0x11, 0xb9, 0x33, 0x32, 0xc2, 0x5c, 0xcc, 0x08, 0xd7, 0xa0, 0xd8, 0xb7, 0x2f, 0x5a, 0x6d, - 0x26, 0xa4, 0x9e, 0xe7, 0xaf, 0x5f, 0xe8, 0xdb, 0x17, 0x5c, 0x68, 0x66, 0x3b, 0xb6, 0xeb, 0xea, - 0x4b, 0xdc, 0x5d, 0xd8, 0xd0, 0xfc, 0x27, 0xdc, 0x99, 0xd4, 0x87, 0x72, 0x2d, 0x71, 0x85, 0xc6, - 0xaf, 0x10, 0x13, 0xf3, 0xa3, 0x06, 0xc5, 0xc8, 0x44, 0x53, 0x82, 0xce, 0x2a, 0x14, 0x7c, 0xcf, - 0xa3, 0x2d, 0x65, 0xa0, 0x4b, 0x6c, 0xde, 0x10, 0x46, 0x9a, 0x70, 0x98, 0x17, 0xd2, 0x09, 0x16, - 0xb9, 0x13, 0xac, 0x25, 0x9c, 0xa0, 0xca, 0xbf, 0x31, 0xdb, 0x0f, 0xad, 0x3a, 0x17, 0xb3, 0xea, - 0x07, 0x00, 0xe2, 0x75, 0x39, 0xd7, 0x3c, 0xe7, 0x5a, 0x14, 0x14, 0xc6, 0x77, 0x0d, 0x8a, 0x1d, - 0xd7, 0xa6, 0x2d, 0xce, 0x7c, 0x49, 0x3c, 0x13, 0x23, 0xbc, 0xb5, 0x69, 0xcf, 0x7c, 0x0e, 0xc5, - 0x88, 0x45, 0x64, 0xf0, 0x0b, 0x91, 0xc1, 0x6b, 0x31, 0x87, 0xc8, 0x9a, 0xbf, 0x68, 0x70, 0x77, - 0x1f, 0xd3, 0x10, 0x1d, 0xc1, 0xc1, 0x97, 0x0c, 0x2e, 0xeb, 0x50, 0xf4, 0x71, 0x7b, 0xe4, 0x07, - 0xe4, 0x4c, 0x28, 0xac, 0x60, 0x29, 0x02, 0x73, 0x8f, 0x69, 0x68, 0xca, 0x3d, 0xb0, 0x20, 0x4d, - 0xbb, 0x87, 0x8a, 0x35, 0xe1, 0x0e, 0xf3, 0x04, 0x2a, 0x87, 0x24, 0xa0, 0x7b, 0xc4, 0x9d, 0x9b, - 0x70, 0xe6, 0x33, 0x58, 0x89, 0xf1, 0x50, 0xe6, 0xc6, 0xa4, 0x14, 0x18, 0xcb, 0x96, 0x98, 0x98, - 0x6d, 0x58, 0xd9, 0x23, 0x03, 0x47, 0x3a, 0xf1, 0x9c, 0xf0, 0xfc, 0x1f, 0x50, 0x9c, 0x89, 0x04, - 0xf4, 0x0c, 0xf2, 0xc2, 0x86, 0x24, 0x87, 0x94, 0xa0, 0x22, 0x37, 0x98, 0x2d, 0xb8, 0xcf, 0x04, - 0x0a, 0xc3, 0xd3, 0xb8, 0x41, 0x9c, 0x9b, 0x60, 0x8d, 0xe2, 0x7b, 0x56, 0x7a, 0x95, 0xb9, 0x0f, - 0x7a, 0x92, 0xc1, 0x75, 0xa2, 0xdf, 0x47, 0x0d, 0xee, 0x32, 0x59, 0x77, 0x5c, 0x77, 0xce, 0xf1, - 0x6f, 0x22, 0x0a, 0x65, 0xa7, 0xa2, 0x10, 0xcb, 0x57, 0xa7, 0x64, 0x18, 0xe6, 0x26, 0x36, 0x46, - 0xff, 0x83, 0x9c, 0xe7, 0x3b, 0xd8, 0xe7, 0xae, 0xbd, 0x5c, 0x7b, 0x1c, 0xf2, 0x4e, 0x85, 0x5b, - 0x6d, 0xb0, 0xad, 0x96, 0x38, 0x61, 0x3e, 0x81, 0x1c, 0x9f, 0x33, 0xb7, 0x7d, 0xd3, 0x78, 0x53, - 0x97, 0x0e, 0xdc, 0x78, 0xdb, 0x10, 0xb9, 0xeb, 0xd5, 0x4e, 0xb3, 0x5e, 0xc9, 0x30, 0x17, 0x99, - 0xbe, 0xec, 0x3a, 0x3a, 0xfc, 0x33, 0x13, 0xb7, 0x97, 0xb9, 0x29, 0x30, 0xaa, 0x25, 0x84, 0xf2, - 0xc4, 0x04, 0xdd, 0x83, 0xbc, 0xd7, 0xe9, 0x04, 0x98, 0x4a, 0xdd, 0xc9, 0x99, 0x72, 0x9f, 0x5c, - 0xcc, 0x7d, 0xd8, 0xee, 0x8e, 0xe7, 0xba, 0xde, 0x39, 0x8f, 0x8a, 0x05, 0x4b, 0xce, 0x58, 0x39, - 0xc6, 0x74, 0xde, 0xea, 0x63, 0xbf, 0x8b, 0x03, 0x99, 0x0d, 0x80, 0x91, 0x8e, 0x38, 0x05, 0x3d, - 0x82, 0xb2, 0x43, 0x02, 0xfb, 0xc4, 0xc5, 0xad, 0x73, 0xdb, 0x3d, 0xd5, 0x0b, 0x7c, 0x47, 0x49, - 0xd2, 0xde, 0xd9, 0xee, 0xa9, 0x4a, 0x70, 0xc5, 0xcf, 0x4f, 0x70, 0xf0, 0xc9, 0x09, 0x4e, 0xe6, - 0xab, 0x92, 0xca, 0x57, 0xbb, 0x70, 0x7b, 0x42, 0xfb, 0xd7, 0x79, 0xc2, 0x5e, 0x58, 0x4b, 0x1c, - 0xda, 0x83, 0xee, 0xc8, 0xee, 0xce, 0x2f, 0xd6, 0xfd, 0x1a, 0x15, 0xd2, 0x31, 0x56, 0x12, 0xf2, - 0x1e, 0x14, 0xdd, 0x90, 0x28, 0x41, 0x6f, 0x85, 0xac, 0x66, 0x9c, 0xa9, 0x86, 0x14, 0x4b, 0x1d, - 0x35, 0x5e, 0x43, 0x21, 0x24, 0x33, 0xcf, 0x1a, 0xd8, 0x7d, 0x2c, 0x53, 0x32, 0x1f, 0x33, 0xdb, - 0xe0, 0x8d, 0x0c, 0x07, 0x97, 0xb1, 0xc4, 0x44, 0xe4, 0x77, 0xd7, 0xf3, 0x65, 0xb9, 0x2d, 0x26, - 0xe6, 0x08, 0x6e, 0x59, 0xf6, 0xf9, 0xae, 0x6b, 0xf7, 0xf1, 0x17, 0xcc, 0x6d, 0xe6, 0x53, 0xa8, - 0x28, 0xb6, 0x52, 0x3d, 0x61, 0xb1, 0xaa, 0xc5, 0x8a, 0xd5, 0x1f, 0x40, 0x3f, 0xb4, 0xc3, 0x40, - 0xb8, 0xe7, 0xf9, 0x2c, 0x87, 0x7f, 0x49, 0x9c, 0x7b, 0xb0, 0x9a, 0xc2, 0xff, 0xf3, 0x33, 0xc6, - 0x6f, 0x91, 0x59, 0x04, 0xbb, 0xe3, 0x23, 0x1c, 0x04, 0xec, 0x49, 0xe7, 0x24, 0x87, 0x0a, 0x19, - 0xd9, 0xe9, 0x90, 0xa1, 0x9a, 0x95, 0x28, 0xc0, 0xa4, 0x55, 0x94, 0x77, 0x20, 0xf7, 0x61, 0x84, - 0xfd, 0xb1, 0xac, 0xad, 0xc4, 0x84, 0x25, 0xa5, 0xa4, 0x08, 0xd7, 0xf1, 0x46, 0x02, 0x1b, 0x7b, - 0xc4, 0xa5, 0xd8, 0x3f, 0xee, 0xd9, 0xc1, 0x3b, 0x42, 0x7b, 0xc7, 0xa4, 0x3b, 0xb0, 0xe9, 0xc8, - 0xbf, 0x99, 0x5b, 0xb2, 0x24, 0xd3, 0xb3, 0x03, 0x9e, 0x47, 0xcb, 0x16, 0x1f, 0x9b, 0xff, 0x81, - 0xcd, 0xd9, 0xac, 0x94, 0xdd, 0xf1, 0x73, 0x5a, 0xec, 0xdc, 0x10, 0x1e, 0xd4, 0x2f, 0xa8, 0x6f, - 0xb7, 0x25, 0xf8, 0xe8, 0xd8, 0x4d, 0x00, 0xae, 0x81, 0xac, 0x52, 0x55, 0x4b, 0x5c, 0x10, 0x84, - 0x03, 0xc7, 0x6c, 0xc1, 0xc3, 0x59, 0x1c, 0x25, 0xce, 0x75, 0x28, 0x06, 0x21, 0x51, 0x3a, 0x89, - 0x22, 0xf0, 0x10, 0x4f, 0xba, 0x03, 0xec, 0xb4, 0x28, 0xbe, 0xa0, 0xd2, 0x28, 0x40, 0x90, 0x9a, - 0xf8, 0x82, 0x9a, 0x1e, 0x18, 0xfb, 0x78, 0xfa, 0xf2, 0x1b, 0x29, 0x5c, 0xd5, 0xe1, 0xc4, 0x09, - 0x64, 0xf9, 0x52, 0x0c, 0x05, 0x0a, 0xcc, 0x31, 0xac, 0xa5, 0x32, 0x94, 0xe2, 0x4c, 0x68, 0x43, - 0x9b, 0xd4, 0xc6, 0xa4, 0xac, 0x99, 0x2b, 0x64, 0xcd, 0x26, 0x64, 0xed, 0x83, 0x1e, 0xb1, 0x96, - 0xa6, 0x3a, 0x4f, 0x49, 0x2d, 0x58, 0x4d, 0x61, 0xf7, 0x29, 0x72, 0xea, 0xb0, 0xd4, 0x17, 0x07, - 0xa4, 0x94, 0xe1, 0xb4, 0xf6, 0x47, 0x19, 0xfe, 0x26, 0x75, 0x87, 0xfd, 0x33, 0xd2, 0xc6, 0xe8, - 0x1d, 0x54, 0xa6, 0xff, 0x8b, 0xa0, 0x8d, 0xc9, 0xfc, 0x91, 0xf8, 0x79, 0x63, 0x6c, 0xce, 0xde, - 0x20, 0xf0, 0x99, 0x0b, 0xe8, 0x55, 0xbc, 0xc5, 0xd3, 0x53, 0x7e, 0x4c, 0x88, 0xab, 0x56, 0x67, - 0xfe, 0xb2, 0x30, 0x17, 0xb6, 0x35, 0x74, 0x0c, 0xcb, 0x93, 0xfd, 0x3a, 0x7a, 0x30, 0xc9, 0x7b, - 0xea, 0xc7, 0x81, 0xf1, 0x70, 0xd6, 0x72, 0xec, 0xd2, 0xaf, 0xa1, 0x1c, 0x6f, 0x56, 0xd1, 0x9a, - 0x3a, 0x93, 0x68, 0xe9, 0x8d, 0xf5, 0xf4, 0xc5, 0x48, 0xce, 0x63, 0x58, 0x9e, 0x6c, 0x99, 0x14, - 0xc2, 0xd4, 0x2e, 0x4f, 0x21, 0x4c, 0xef, 0xb4, 0x38, 0xc2, 0x57, 0x50, 0x8c, 0x9a, 0x1b, 0xa5, - 0xbc, 0xe9, 0x9e, 0x4a, 0x29, 0x2f, 0xd1, 0x09, 0xf1, 0x5b, 0xea, 0x00, 0xaa, 0xc8, 0x41, 0xab, - 0xf1, 0x5a, 0x78, 0xa2, 0x17, 0x32, 0x8c, 0xb4, 0xa5, 0x48, 0xc2, 0xaf, 0xa0, 0x14, 0xfb, 0x57, - 0x88, 0x8c, 0x49, 0x0d, 0xc7, 0x7f, 0x53, 0x1a, 0x6b, 0xa9, 0x6b, 0x71, 0x5d, 0x4d, 0xd6, 0xce, - 0x4a, 0x57, 0xa9, 0x05, 0xba, 0xd2, 0x55, 0x7a, 0xc9, 0xcd, 0xa5, 0x7c, 0x0d, 0xa5, 0x58, 0x29, - 0x87, 0x52, 0x64, 0x49, 0xc2, 0x4b, 0xa9, 0xfd, 0xf8, 0x5d, 0x4d, 0xb8, 0x35, 0x55, 0x33, 0xa1, - 0x87, 0x33, 0x8b, 0x29, 0x71, 0xe7, 0xc6, 0x15, 0xc5, 0x96, 0xb9, 0x80, 0x76, 0xa0, 0x10, 0xd6, - 0x25, 0xe8, 0x7e, 0x14, 0x14, 0x26, 0x0b, 0x24, 0x43, 0x4f, 0x2e, 0xc4, 0x80, 0x7d, 0x03, 0x2b, - 0x89, 0x92, 0x01, 0x45, 0x6e, 0x38, 0xab, 0x9a, 0x31, 0x1e, 0x5d, 0xb2, 0x23, 0x82, 0xf7, 0x3e, - 0x0c, 0x01, 0x2a, 0x05, 0x4f, 0x87, 0x80, 0x44, 0x7d, 0x31, 0x1d, 0x02, 0x92, 0xd9, 0x9b, 0xc3, - 0x7e, 0x2f, 0x7e, 0x04, 0xc4, 0x5b, 0x4e, 0x75, 0xf5, 0x8c, 0x6e, 0x57, 0x5d, 0x3d, 0xab, 0x5b, - 0xe5, 0x57, 0x07, 0xa0, 0xcf, 0x4a, 0xc2, 0xe8, 0x1f, 0xea, 0x9d, 0x2f, 0xad, 0x08, 0x8c, 0xad, - 0xab, 0x37, 0x86, 0x2c, 0xb7, 0xb4, 0x6d, 0x0d, 0x9d, 0xc2, 0xbd, 0xf4, 0x7c, 0x8a, 0x9e, 0x84, - 0x37, 0x5d, 0x9a, 0xe1, 0x8d, 0xa7, 0x57, 0x6d, 0x8b, 0x49, 0x78, 0x02, 0xb7, 0x53, 0x52, 0x1d, - 0x32, 0x63, 0xf1, 0x63, 0x46, 0xe2, 0x35, 0x1e, 0x5f, 0xba, 0x27, 0xc6, 0xe3, 0x5b, 0x58, 0x49, - 0x24, 0x19, 0x65, 0x57, 0xb3, 0xd2, 0x9d, 0xb2, 0xab, 0x99, 0x19, 0x8a, 0xdd, 0x7e, 0x92, 0xe7, - 0x3d, 0xd9, 0xbf, 0xfe, 0x0a, 0x00, 0x00, 0xff, 0xff, 0xb7, 0xe0, 0x5d, 0x22, 0x19, 0x19, 0x00, - 0x00, + // 1786 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x4b, 0x6f, 0xe3, 0xc8, + 0x11, 0x36, 0xf5, 0xb2, 0x58, 0xd2, 0x7a, 0xe5, 0x9e, 0x17, 0x4d, 0xcf, 0x8c, 0xbd, 0xbd, 0xd9, + 0x8d, 0x17, 0x1b, 0x68, 0x0c, 0xe5, 0x81, 0xe4, 0x14, 0xd8, 0x3b, 0xb2, 0xe3, 0x89, 0x3d, 0x5a, + 0xd0, 0x02, 0x06, 0x09, 0x02, 0x08, 0xb4, 0xd8, 0x92, 0x18, 0x53, 0xa2, 0x96, 0x6c, 0xd9, 0x56, + 0x0e, 0xb9, 0x07, 0x08, 0x72, 0xcf, 0x8f, 0xc8, 0x21, 0x3f, 0x21, 0x97, 0xfc, 0x80, 0xdc, 0xf2, + 0x57, 0x16, 0x39, 0x04, 0xfd, 0x20, 0x9b, 0x14, 0x29, 0x7b, 0xc6, 0x5e, 0xcd, 0x85, 0x60, 0x57, + 0x77, 0x57, 0x7d, 0x55, 0x5d, 0xaf, 0x6e, 0xa8, 0xf7, 0xfd, 0xf1, 0xd8, 0xa5, 0xcd, 0x69, 0xe0, + 0x53, 0x1f, 0x55, 0x86, 0x2e, 0xb5, 0xbd, 0xb9, 0x59, 0x0f, 0x47, 0x76, 0x40, 0x1c, 0x41, 0x35, + 0x77, 0x86, 0xbe, 0x3f, 0xf4, 0xc8, 0x2b, 0x3e, 0xba, 0x98, 0x0d, 0x5e, 0x51, 0x77, 0x4c, 0x42, + 0x6a, 0x8f, 0xa7, 0x62, 0x01, 0x76, 0x00, 0x7d, 0xc3, 0xd9, 0x9c, 0x53, 0x9b, 0x86, 0x16, 0xf9, + 0x6e, 0x46, 0x42, 0x8a, 0x5a, 0x00, 0x01, 0x99, 0xfa, 0xa1, 0x4b, 0xfd, 0x60, 0x6e, 0x68, 0xbb, + 0xda, 0x5e, 0xad, 0x85, 0x9a, 0x42, 0x42, 0xd3, 0x8a, 0x67, 0xac, 0xc4, 0x2a, 0x64, 0x42, 0x35, + 0x20, 0x57, 0x6e, 0xe8, 0xfa, 0x13, 0xa3, 0xb0, 0xab, 0xed, 0xd5, 0xad, 0x78, 0x8c, 0xfb, 0xf0, + 0x28, 0x25, 0x25, 0x9c, 0xfa, 0x93, 0x90, 0xa0, 0x06, 0x14, 0x7d, 0xd7, 0xe1, 0xfc, 0x75, 0x8b, + 0xfd, 0xa2, 0xe7, 0xa0, 0xdb, 0x8e, 0xe3, 0x52, 0xd7, 0x9f, 0x84, 0x9c, 0x4b, 0xd9, 0x52, 0x04, + 0x36, 0xeb, 0x10, 0x8f, 0x88, 0xd9, 0xa2, 0x98, 0x8d, 0x09, 0xf8, 0x2f, 0x1a, 0x3c, 0x13, 0x52, + 0x4e, 0xc2, 0x83, 0x49, 0x9f, 0x84, 0xd4, 0x0f, 0x1e, 0xa2, 0xd0, 0x0e, 0xd4, 0x6c, 0xc9, 0xa6, + 0xe7, 0x3a, 0x1c, 0x8d, 0x6e, 0x41, 0x44, 0x3a, 0x71, 0xd0, 0x16, 0x54, 0xfb, 0x23, 0xd7, 0x73, + 0xd8, 0x6c, 0x91, 0xcf, 0xae, 0xf3, 0xf1, 0x89, 0x83, 0xf7, 0xc1, 0xc8, 0x42, 0x91, 0x5a, 0x3f, + 0x86, 0xf2, 0x95, 0xed, 0xcd, 0x08, 0x87, 0x51, 0xb5, 0xc4, 0x00, 0xff, 0x55, 0x83, 0x46, 0x37, + 0x20, 0xa4, 0x3d, 0xa1, 0xc1, 0x7c, 0x45, 0xe7, 0x80, 0x10, 0x94, 0xa6, 0x36, 0x1d, 0x71, 0xb4, + 0x75, 0x8b, 0xff, 0x33, 0x38, 0x9e, 0x3b, 0x76, 0xa9, 0x51, 0xda, 0xd5, 0xf6, 0x8a, 0x96, 0x18, + 0xe0, 0xff, 0x68, 0xb0, 0x99, 0x80, 0x23, 0xa1, 0xff, 0x12, 0x4a, 0x74, 0x3e, 0x15, 0xc8, 0x37, + 0x5a, 0x3f, 0x8a, 0x90, 0x64, 0x16, 0x36, 0x3b, 0x17, 0x7f, 0x24, 0x7d, 0xda, 0x9d, 0x4f, 0x89, + 0xc5, 0x77, 0x44, 0x47, 0x5d, 0x50, 0x47, 0x8d, 0xa0, 0x14, 0xba, 0x7f, 0x22, 0x1c, 0x4b, 0xd1, + 0xe2, 0xff, 0x8c, 0x36, 0xf6, 0x1d, 0xc2, 0xa1, 0x94, 0x2d, 0xfe, 0xcf, 0x68, 0x8e, 0x4d, 0x6d, + 0xa3, 0x2c, 0x30, 0xb3, 0x7f, 0xfc, 0x73, 0x00, 0x25, 0x01, 0x01, 0x54, 0xbe, 0xe9, 0x9c, 0x9d, + 0x9d, 0x74, 0x1b, 0x6b, 0xa8, 0x0a, 0xa5, 0xc3, 0xd3, 0xce, 0x61, 0x43, 0x63, 0x7f, 0x5d, 0xab, + 0xdd, 0x6e, 0x14, 0xd0, 0x3a, 0x14, 0xbb, 0x07, 0xc7, 0x8d, 0x22, 0xf6, 0xe1, 0x89, 0x38, 0x95, + 0xf0, 0x90, 0xd0, 0x6b, 0x42, 0x26, 0x0f, 0xb1, 0x33, 0x82, 0xd2, 0x20, 0xf0, 0xc7, 0xd2, 0xc6, + 0xfc, 0x1f, 0x6d, 0x40, 0x81, 0xfa, 0xd2, 0xba, 0x05, 0xea, 0xe3, 0x36, 0x3c, 0x5d, 0x14, 0x28, + 0x2d, 0xf9, 0x35, 0xac, 0x8b, 0xf0, 0x0d, 0x0d, 0x6d, 0xb7, 0xb8, 0x57, 0x6b, 0x6d, 0x46, 0xe2, + 0x8e, 0x5d, 0x2a, 0xf6, 0x58, 0xd1, 0x0a, 0xfc, 0xb7, 0x02, 0x8b, 0x9f, 0xd9, 0x44, 0x4e, 0xac, + 0x2a, 0x4c, 0xd1, 0x3e, 0x94, 0xed, 0x01, 0x25, 0x01, 0xd7, 0xa0, 0xd6, 0x32, 0x9b, 0x22, 0x7b, + 0x34, 0xa3, 0xec, 0xd1, 0xec, 0x46, 0xd9, 0xc3, 0x12, 0x0b, 0x51, 0x0b, 0x2a, 0x17, 0x64, 0xe0, + 0x07, 0xe2, 0xc8, 0x6e, 0xdf, 0x22, 0x57, 0xc6, 0x4e, 0x58, 0x4e, 0x38, 0xe1, 0x36, 0xe8, 0x63, + 0xfb, 0xa6, 0xd7, 0x67, 0x4a, 0x1a, 0x15, 0x7e, 0xfa, 0xd5, 0xb1, 0x7d, 0xc3, 0x95, 0x66, 0xbe, + 0x63, 0x7b, 0x9e, 0xb1, 0xce, 0xc3, 0x85, 0xfd, 0xe2, 0x9f, 0xc0, 0xe3, 0xb4, 0x3d, 0x54, 0x68, + 0x09, 0x16, 0x1a, 0x67, 0x21, 0x06, 0xf8, 0x7b, 0x0d, 0xf4, 0xd8, 0x45, 0x73, 0x92, 0xce, 0x16, + 0x54, 0x03, 0xdf, 0xa7, 0x3d, 0xe5, 0xa0, 0xeb, 0x6c, 0xdc, 0x11, 0x4e, 0x9a, 0x09, 0x98, 0x57, + 0x32, 0x08, 0x4a, 0x3c, 0x08, 0xb6, 0x33, 0x41, 0xd0, 0xe4, 0xdf, 0x84, 0xef, 0x47, 0x5e, 0x5d, + 0x4e, 0x78, 0xf5, 0x0b, 0x00, 0x71, 0xba, 0x5c, 0x6a, 0x85, 0x4b, 0xd5, 0x05, 0x85, 0xc9, 0xdd, + 0x06, 0x7d, 0xe0, 0xd9, 0xb4, 0xc7, 0x85, 0xaf, 0x8b, 0x63, 0x62, 0x84, 0x6f, 0x6d, 0x3a, 0xc2, + 0x5f, 0x83, 0x1e, 0x8b, 0x88, 0x1d, 0x7e, 0x2d, 0x76, 0x78, 0x2d, 0x11, 0x10, 0x45, 0xfc, 0x77, + 0x0d, 0x9e, 0x1c, 0x13, 0x1a, 0xa1, 0x73, 0x49, 0xf8, 0x31, 0x93, 0xcb, 0x73, 0xd0, 0x03, 0xd2, + 0x9f, 0x05, 0xa1, 0x7b, 0x25, 0x0c, 0x56, 0xb5, 0x14, 0x81, 0x85, 0xc7, 0x22, 0x34, 0x15, 0x1e, + 0x44, 0x90, 0x16, 0xc3, 0x43, 0xe5, 0x9a, 0x68, 0x05, 0xbe, 0x80, 0xc6, 0xa9, 0x1b, 0xd2, 0x23, + 0xd7, 0x5b, 0x99, 0x72, 0xf8, 0x2b, 0xd8, 0x4c, 0xc8, 0x50, 0xee, 0xc6, 0xb4, 0x14, 0x18, 0xeb, + 0x96, 0x18, 0xe0, 0x3e, 0x6c, 0x1e, 0xb9, 0x13, 0x47, 0x06, 0xf1, 0x8a, 0xf0, 0xfc, 0x1a, 0x50, + 0x52, 0x88, 0x04, 0xf4, 0x15, 0x54, 0x84, 0x0f, 0x49, 0x09, 0x39, 0x49, 0x45, 0x2e, 0xc0, 0x3d, + 0x78, 0xc6, 0x14, 0x8a, 0xd2, 0xd3, 0xbc, 0xe3, 0x3a, 0x0f, 0xc1, 0x1a, 0xe7, 0xf7, 0xa2, 0x8c, + 0x2a, 0x7c, 0x0c, 0x46, 0x56, 0xc0, 0x7d, 0xb2, 0xdf, 0xf7, 0x1a, 0x3c, 0x61, 0xba, 0x1e, 0x78, + 0xde, 0x8a, 0xf3, 0x5f, 0x2a, 0x0b, 0x15, 0x17, 0xb2, 0x10, 0xab, 0x57, 0x97, 0xee, 0x34, 0xaa, + 0x4d, 0xec, 0x1f, 0xfd, 0x0a, 0xca, 0x7e, 0xe0, 0x90, 0x80, 0x87, 0xf6, 0x46, 0xeb, 0xf3, 0x48, + 0x76, 0x2e, 0xdc, 0x66, 0x87, 0x2d, 0xb5, 0xc4, 0x0e, 0xfc, 0x05, 0x94, 0xf9, 0x98, 0x85, 0xed, + 0xdb, 0xce, 0xdb, 0xb6, 0x0c, 0xe0, 0xce, 0xb7, 0x1d, 0x51, 0xbb, 0x5e, 0x1f, 0x74, 0xdb, 0x8d, + 0x02, 0x0b, 0x91, 0x45, 0x66, 0xf7, 0xb1, 0xe1, 0xff, 0x0a, 0x49, 0x7f, 0x59, 0x99, 0x01, 0xe3, + 0x5e, 0x42, 0x18, 0x4f, 0x0c, 0xd0, 0x53, 0xa8, 0xf8, 0x83, 0x41, 0x48, 0xa8, 0xb4, 0x9d, 0x1c, + 0xa9, 0xf0, 0x29, 0x27, 0xc2, 0x87, 0xad, 0x1e, 0xf8, 0x9e, 0xe7, 0x5f, 0xf3, 0xac, 0x58, 0xb5, + 0xe4, 0x88, 0xb5, 0x63, 0xcc, 0xe6, 0xbd, 0x31, 0x09, 0x86, 0x24, 0x94, 0xd5, 0x00, 0x18, 0xe9, + 0x8c, 0x53, 0xd0, 0x67, 0x50, 0x77, 0xdc, 0xd0, 0xbe, 0xf0, 0x48, 0xef, 0xda, 0xf6, 0x2e, 0x8d, + 0x2a, 0x5f, 0x51, 0x93, 0xb4, 0x77, 0xb6, 0x77, 0xa9, 0x0a, 0x9c, 0xfe, 0xe1, 0x05, 0x0e, 0xde, + 0xbb, 0xc0, 0xc9, 0x7a, 0x55, 0x53, 0xf5, 0xea, 0x10, 0x1e, 0xa5, 0xac, 0x7f, 0x9f, 0x23, 0x1c, + 0x45, 0xbd, 0xc4, 0xa9, 0x3d, 0x19, 0xce, 0xec, 0xe1, 0xea, 0x72, 0xdd, 0x3f, 0xe2, 0x46, 0x3a, + 0x21, 0x4a, 0x42, 0x3e, 0x02, 0xdd, 0x8b, 0x88, 0x12, 0xf4, 0x5e, 0x24, 0x6a, 0xc9, 0x9e, 0x66, + 0x44, 0xb1, 0xd4, 0x56, 0xf3, 0x0d, 0x54, 0x23, 0x32, 0x8b, 0xac, 0x89, 0x3d, 0x26, 0xb2, 0x24, + 0xf3, 0x7f, 0xe6, 0x1b, 0xfc, 0x22, 0xc3, 0xc1, 0x15, 0x2c, 0x31, 0x10, 0xf5, 0xdd, 0xf3, 0x03, + 0xd9, 0x6e, 0x8b, 0x01, 0x9e, 0xc1, 0xa7, 0x96, 0x7d, 0x7d, 0xe8, 0xd9, 0x63, 0xf2, 0x11, 0x6b, + 0x1b, 0xfe, 0x12, 0x1a, 0x4a, 0xac, 0x34, 0x4f, 0xd4, 0xac, 0x6a, 0x89, 0x66, 0xf5, 0xcf, 0x60, + 0x9c, 0xda, 0x51, 0x22, 0x3c, 0xf2, 0x03, 0x56, 0xc3, 0x3f, 0x26, 0xce, 0x23, 0xd8, 0xca, 0x91, + 0xff, 0xe1, 0x15, 0xe3, 0x9f, 0x1a, 0xbc, 0x60, 0x19, 0x5d, 0x31, 0x0b, 0x8f, 0xfc, 0x80, 0xd5, + 0xe3, 0x1f, 0x52, 0x1b, 0xfd, 0x43, 0xae, 0x2b, 0x39, 0x29, 0xa6, 0x9c, 0x4c, 0x31, 0xf8, 0xdf, + 0x1a, 0xbc, 0x5c, 0x86, 0x59, 0x5a, 0xe0, 0xed, 0x62, 0x10, 0xfe, 0x2c, 0x42, 0x7c, 0xfb, 0xc6, + 0x66, 0x6c, 0x50, 0x4e, 0x8d, 0x98, 0x98, 0x5d, 0xf8, 0x24, 0x35, 0x93, 0x30, 0x71, 0xe1, 0x0e, + 0x13, 0xa7, 0x14, 0xd6, 0x85, 0xc2, 0x6f, 0x4a, 0x55, 0xad, 0x51, 0xc0, 0xff, 0x8a, 0x63, 0x32, + 0x3c, 0x9c, 0x9f, 0x91, 0x30, 0x64, 0xf1, 0xb4, 0x22, 0x27, 0x52, 0xc6, 0x2c, 0x2e, 0xe6, 0xeb, + 0x1c, 0xd3, 0xe7, 0xb5, 0xf3, 0x8f, 0xa1, 0xfc, 0xdd, 0x8c, 0x04, 0x73, 0xd9, 0xd8, 0x8a, 0x01, + 0xeb, 0x08, 0xb2, 0x2a, 0xdc, 0x27, 0x15, 0xba, 0xb0, 0x73, 0xe4, 0x7a, 0x94, 0x04, 0xe7, 0x23, + 0x3b, 0x7c, 0xe7, 0xd2, 0xd1, 0xb9, 0x3b, 0x9c, 0xd8, 0x74, 0x16, 0x3c, 0x2c, 0x27, 0xb2, 0x0a, + 0x3f, 0xb2, 0x43, 0xde, 0xc4, 0xd4, 0x2d, 0xfe, 0x8f, 0x7f, 0x01, 0xbb, 0xcb, 0x45, 0xa9, 0xa0, + 0xe7, 0xfb, 0xb4, 0xc4, 0xbe, 0x29, 0xbc, 0x68, 0xdf, 0xd0, 0xc0, 0xee, 0x4b, 0xf0, 0xf1, 0xb6, + 0x87, 0x00, 0xdc, 0x06, 0x79, 0x45, 0x50, 0xef, 0x11, 0x55, 0x41, 0x38, 0x71, 0x70, 0x0f, 0x5e, + 0x2e, 0x93, 0x28, 0x71, 0x3e, 0x07, 0x3d, 0x8c, 0x88, 0x32, 0x43, 0x29, 0x02, 0xaf, 0xaf, 0xee, + 0x70, 0x42, 0x9c, 0x1e, 0x25, 0x37, 0x54, 0x3a, 0x05, 0x08, 0x52, 0x97, 0xdc, 0x50, 0xec, 0x83, + 0x79, 0x4c, 0x16, 0x99, 0x3f, 0xc8, 0xe0, 0xea, 0x12, 0xe4, 0x3a, 0xa1, 0xec, 0x1d, 0xf5, 0x48, + 0xa1, 0x10, 0xcf, 0x61, 0x3b, 0x57, 0xa0, 0x54, 0x27, 0x65, 0x0d, 0x2d, 0x6d, 0x8d, 0xb4, 0xae, + 0x85, 0x3b, 0x74, 0x2d, 0x66, 0x74, 0x1d, 0x83, 0x11, 0x8b, 0x96, 0xae, 0xba, 0x4a, 0x4d, 0x2d, + 0xd8, 0xca, 0x11, 0xf7, 0x3e, 0x7a, 0x1a, 0xb0, 0x3e, 0x16, 0x1b, 0xa4, 0x96, 0xd1, 0xb0, 0xf5, + 0xdf, 0x4f, 0xa2, 0x44, 0x74, 0x4e, 0x82, 0x2b, 0xb7, 0x4f, 0xd0, 0x3b, 0x68, 0x2c, 0x3e, 0x4a, + 0xa1, 0x9d, 0x74, 0xf1, 0xce, 0xbc, 0x9c, 0x99, 0xbb, 0xcb, 0x17, 0x08, 0x7c, 0x78, 0x0d, 0xbd, + 0x4e, 0xde, 0xaf, 0x8d, 0x9c, 0x57, 0x21, 0xc1, 0x6a, 0x6b, 0xe9, 0x7b, 0x11, 0x5e, 0xdb, 0xd7, + 0xd0, 0x39, 0x6c, 0xa4, 0x1f, 0x4b, 0xd0, 0x8b, 0xb4, 0xec, 0x85, 0x57, 0x1b, 0xf3, 0xe5, 0xb2, + 0xe9, 0x04, 0xd3, 0xdf, 0x42, 0x3d, 0xf9, 0x52, 0x80, 0xb6, 0xd5, 0x9e, 0xcc, 0x7b, 0x8a, 0xf9, + 0x3c, 0x7f, 0x32, 0xd6, 0xf3, 0x1c, 0x36, 0xd2, 0xf7, 0x55, 0x85, 0x30, 0xf7, 0x8a, 0xad, 0x10, + 0xe6, 0x5f, 0x73, 0x39, 0xc2, 0xd7, 0xa0, 0xc7, 0x37, 0x4b, 0x65, 0xbc, 0xc5, 0x0b, 0xad, 0x32, + 0x5e, 0xe6, 0x1a, 0xca, 0xb9, 0xb4, 0x01, 0x54, 0x87, 0x89, 0xb6, 0x92, 0x17, 0x91, 0xd4, 0x45, + 0xd4, 0x34, 0xf3, 0xa6, 0x62, 0x0d, 0x7f, 0x03, 0xb5, 0xc4, 0x43, 0x2d, 0x32, 0xd3, 0x16, 0x4e, + 0xbe, 0x11, 0x9b, 0xdb, 0xb9, 0x73, 0x49, 0x5b, 0xa5, 0x2f, 0x2e, 0xca, 0x56, 0xb9, 0xb7, 0x23, + 0x65, 0xab, 0xfc, 0xfb, 0x0e, 0xd7, 0xf2, 0x0d, 0xd4, 0x12, 0x7d, 0x34, 0xca, 0xd1, 0x25, 0x0b, + 0x2f, 0xa7, 0xf1, 0xe6, 0xbc, 0xba, 0xf0, 0xe9, 0x42, 0xc3, 0x8a, 0x5e, 0x2e, 0xed, 0x64, 0x05, + 0xcf, 0x9d, 0x3b, 0x3a, 0x5d, 0xbc, 0x86, 0x0e, 0xa0, 0x1a, 0x35, 0x85, 0xe8, 0x59, 0x9c, 0x14, + 0xd2, 0xdd, 0xa9, 0x69, 0x64, 0x27, 0x12, 0xc0, 0x7e, 0x0f, 0x9b, 0x99, 0x7e, 0x0d, 0xc5, 0x61, + 0xb8, 0xac, 0x95, 0x34, 0x3f, 0xbb, 0x65, 0x45, 0x0c, 0xef, 0x12, 0x9e, 0xe6, 0x77, 0x35, 0xe8, + 0x8b, 0xbb, 0xba, 0x1e, 0x21, 0xe5, 0xcb, 0xf7, 0x6b, 0x8e, 0xb8, 0x22, 0xbf, 0x8b, 0xf2, 0x8d, + 0xaa, 0xf7, 0x8b, 0xf9, 0x26, 0xd3, 0xcc, 0x2c, 0xe6, 0x9b, 0x6c, 0xab, 0x10, 0xb1, 0x5e, 0x7c, + 0x5c, 0x50, 0xac, 0x97, 0xbc, 0x6b, 0x28, 0xd6, 0xcb, 0xde, 0x25, 0x38, 0xeb, 0x10, 0x8c, 0x65, + 0x15, 0x1f, 0xfd, 0x58, 0x39, 0xd5, 0xad, 0xed, 0x87, 0xb9, 0x77, 0xf7, 0xc2, 0x48, 0xe4, 0x9e, + 0xb6, 0xaf, 0xb1, 0x73, 0xc9, 0x2f, 0xde, 0xea, 0x5c, 0x6e, 0x6d, 0x27, 0xd4, 0xb9, 0xdc, 0xde, + 0x03, 0x70, 0x0d, 0x2f, 0xe0, 0x51, 0x4e, 0x5d, 0x45, 0x38, 0x91, 0xac, 0x96, 0x54, 0x79, 0xf3, + 0xf3, 0x5b, 0xd7, 0x24, 0x64, 0xfc, 0x01, 0x36, 0x33, 0x15, 0x4d, 0x39, 0xf1, 0xb2, 0xda, 0xaa, + 0x9c, 0x78, 0x69, 0x39, 0x64, 0xdc, 0x2f, 0x2a, 0xfc, 0xf6, 0xfd, 0xd3, 0xff, 0x07, 0x00, 0x00, + 0xff, 0xff, 0xd1, 0xee, 0x8b, 0xf5, 0x03, 0x1b, 0x00, 0x00, } diff --git a/vendor/vendor.json b/vendor/vendor.json index 9813fc0ff..8b9aeeb1f 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -201,12 +201,12 @@ "revisionTime": "2017-12-31T12:27:32Z" }, { - "checksumSHA1": "J5+e1uiso5SbD8uR9VFB18dC0Ag=", + "checksumSHA1": "uLhcLmhcc35eZMhJTf5CXhjrRzw=", "path": "gitlab.com/gitlab-org/gitaly-proto/go", - "revision": "9b48e996a05d5347013dfc1f845b5c82abeb4450", - "revisionTime": "2018-09-06T18:35:31Z", - "version": "v0.117.0", - "versionExact": "v0.117.0" + "revision": "566ea63b045ce9705dbf21b9ca0ed1f1eb989bab", + "revisionTime": "2018-09-12T14:37:39Z", + "version": "v0.118.1", + "versionExact": "v0.118.1" }, { "checksumSHA1": "nqWNlnMmVpt628zzvyo6Yv2CX5Q=", |