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:
authorJames Fargher <proglottis@gmail.com>2021-07-05 04:27:49 +0300
committerJames Fargher <proglottis@gmail.com>2021-07-05 04:27:49 +0300
commitc9f804dd7049915ab276d8897d0e9f938cf8b362 (patch)
tree1eebfb999906f5073ce0acc0f3f5ef378276397d
parent99fd5bd82fe3ea84ac19c8f2a2dfdb419227c334 (diff)
parentc3dfb4ecb6b4f439ea2ed7685e9e46a7a31ae955 (diff)
Merge branch 'pks-list-commits' into 'master'
Introduce two new RPCs to list commits Closes #3600 See merge request gitlab-org/gitaly!3628
-rw-r--r--internal/git/catfile/commit.go5
-rw-r--r--internal/git/catfile/commit_test.go4
-rw-r--r--internal/git/gitpipe/catfile_info.go6
-rw-r--r--internal/git/gitpipe/pipeline_test.go51
-rw-r--r--internal/git/gitpipe/revlist.go144
-rw-r--r--internal/git/gitpipe/revlist_test.go175
-rw-r--r--internal/git/gittest/testdata.go310
-rw-r--r--internal/gitaly/service/blob/blobs.go5
-rw-r--r--internal/gitaly/service/blob/lfs_pointers.go5
-rw-r--r--internal/gitaly/service/commit/commits_sender.go23
-rw-r--r--internal/gitaly/service/commit/find_all_commits.go23
-rw-r--r--internal/gitaly/service/commit/find_all_commits_test.go173
-rw-r--r--internal/gitaly/service/commit/find_commits.go23
-rw-r--r--internal/gitaly/service/commit/list_all_commits.go100
-rw-r--r--internal/gitaly/service/commit/list_all_commits_test.go165
-rw-r--r--internal/gitaly/service/commit/list_commits.go141
-rw-r--r--internal/gitaly/service/commit/list_commits_test.go268
-rw-r--r--proto/commit.proto102
-rw-r--r--proto/go/gitalypb/commit.pb.go2212
-rw-r--r--proto/go/gitalypb/commit_grpc.pb.go166
-rw-r--r--ruby/proto/gitaly/commit_pb.rb32
-rw-r--r--ruby/proto/gitaly/commit_services_pb.rb8
22 files changed, 3058 insertions, 1083 deletions
diff --git a/internal/git/catfile/commit.go b/internal/git/catfile/commit.go
index 0444dad5f..dc6a4dc3e 100644
--- a/internal/git/catfile/commit.go
+++ b/internal/git/catfile/commit.go
@@ -25,7 +25,7 @@ func GetCommit(ctx context.Context, c Batch, revision git.Revision) (*gitalypb.G
return nil, err
}
- return parseRawCommit(obj.Reader, &obj.ObjectInfo)
+ return ParseCommit(obj.Reader, &obj.ObjectInfo)
}
// GetCommitWithTrailers looks up a commit by revision using an existing Batch instance, and
@@ -81,7 +81,8 @@ func GetCommitMessage(ctx context.Context, c Batch, repo repository.GitRepo, rev
return body, nil
}
-func parseRawCommit(r io.Reader, info *ObjectInfo) (*gitalypb.GitCommit, error) {
+// ParseCommit parses the commit data from the Reader.
+func ParseCommit(r io.Reader, info *ObjectInfo) (*gitalypb.GitCommit, error) {
header, body, err := splitRawCommit(r)
if err != nil {
return nil, err
diff --git a/internal/git/catfile/commit_test.go b/internal/git/catfile/commit_test.go
index a46973a1a..134e62570 100644
--- a/internal/git/catfile/commit_test.go
+++ b/internal/git/catfile/commit_test.go
@@ -12,7 +12,7 @@ import (
"google.golang.org/grpc/metadata"
)
-func TestParseRawCommit(t *testing.T) {
+func TestParseCommit(t *testing.T) {
info := &ObjectInfo{
Oid: "a984dfa4dee018c6d5f5f57ffec0d0e22763df16",
Type: "commit",
@@ -98,7 +98,7 @@ func TestParseRawCommit(t *testing.T) {
for _, tc := range testCases {
t.Run(tc.desc, func(t *testing.T) {
info.Size = int64(len(tc.in))
- out, err := parseRawCommit(bytes.NewBuffer(tc.in), info)
+ out, err := ParseCommit(bytes.NewBuffer(tc.in), info)
require.NoError(t, err, "parse error")
require.Equal(t, tc.out, out)
})
diff --git a/internal/git/gitpipe/catfile_info.go b/internal/git/gitpipe/catfile_info.go
index 5d928ef51..8a139989e 100644
--- a/internal/git/gitpipe/catfile_info.go
+++ b/internal/git/gitpipe/catfile_info.go
@@ -2,6 +2,7 @@ package gitpipe
import (
"bufio"
+ "bytes"
"context"
"errors"
"fmt"
@@ -92,6 +93,7 @@ func CatfileInfoAllObjects(ctx context.Context, repo *localrepo.Repo) CatfileInf
}
}
+ var stderr bytes.Buffer
cmd, err := repo.Exec(ctx, git.SubCmd{
Name: "cat-file",
Flags: []git.Option{
@@ -100,7 +102,7 @@ func CatfileInfoAllObjects(ctx context.Context, repo *localrepo.Repo) CatfileInf
git.Flag{Name: "--buffer"},
git.Flag{Name: "--unordered"},
},
- })
+ }, git.WithStderr(&stderr))
if err != nil {
sendResult(CatfileInfoResult{
err: fmt.Errorf("spawning cat-file failed: %w", err),
@@ -131,7 +133,7 @@ func CatfileInfoAllObjects(ctx context.Context, repo *localrepo.Repo) CatfileInf
if err := cmd.Wait(); err != nil {
sendResult(CatfileInfoResult{
- err: fmt.Errorf("cat-file failed: %w", err),
+ err: fmt.Errorf("cat-file failed: %w, stderr: %q", err, stderr),
})
return
}
diff --git a/internal/git/gitpipe/pipeline_test.go b/internal/git/gitpipe/pipeline_test.go
index 75b3396c3..1a0f8aea1 100644
--- a/internal/git/gitpipe/pipeline_test.go
+++ b/internal/git/gitpipe/pipeline_test.go
@@ -26,6 +26,7 @@ func TestPipeline(t *testing.T) {
for _, tc := range []struct {
desc string
revisions []string
+ revlistOptions []RevlistOption
revlistFilter func(RevlistResult) bool
catfileInfoFilter func(CatfileInfoResult) bool
expectedResults []CatfileObjectResult
@@ -36,17 +37,30 @@ func TestPipeline(t *testing.T) {
revisions: []string{
lfsPointer1,
},
+ revlistOptions: []RevlistOption{
+ WithObjects(),
+ },
expectedResults: []CatfileObjectResult{
{ObjectInfo: &catfile.ObjectInfo{Oid: lfsPointer1, Type: "blob", Size: 133}},
},
},
{
+ desc: "single blob without objects",
+ revisions: []string{
+ lfsPointer1,
+ },
+ expectedResults: nil,
+ },
+ {
desc: "multiple blobs",
revisions: []string{
lfsPointer1,
lfsPointer2,
lfsPointer3,
},
+ revlistOptions: []RevlistOption{
+ WithObjects(),
+ },
expectedResults: []CatfileObjectResult{
{ObjectInfo: &catfile.ObjectInfo{Oid: lfsPointer1, Type: "blob", Size: 133}},
{ObjectInfo: &catfile.ObjectInfo{Oid: lfsPointer2, Type: "blob", Size: 127}},
@@ -60,6 +74,9 @@ func TestPipeline(t *testing.T) {
lfsPointer2,
lfsPointer3,
},
+ revlistOptions: []RevlistOption{
+ WithObjects(),
+ },
revlistFilter: func(r RevlistResult) bool {
return r.OID == lfsPointer2
},
@@ -72,16 +89,29 @@ func TestPipeline(t *testing.T) {
revisions: []string{
"b95c0fad32f4361845f91d9ce4c1721b52b82793",
},
+ revlistOptions: []RevlistOption{
+ WithObjects(),
+ },
expectedResults: []CatfileObjectResult{
{ObjectInfo: &catfile.ObjectInfo{Oid: "b95c0fad32f4361845f91d9ce4c1721b52b82793", Type: "tree", Size: 43}},
{ObjectInfo: &catfile.ObjectInfo{Oid: "93e123ac8a3e6a0b600953d7598af629dec7b735", Type: "blob", Size: 59}, ObjectName: []byte("branch-test.txt")},
},
},
{
+ desc: "tree without objects",
+ revisions: []string{
+ "b95c0fad32f4361845f91d9ce4c1721b52b82793",
+ },
+ expectedResults: nil,
+ },
+ {
desc: "tree with blob filter",
revisions: []string{
"b95c0fad32f4361845f91d9ce4c1721b52b82793",
},
+ revlistOptions: []RevlistOption{
+ WithObjects(),
+ },
catfileInfoFilter: func(r CatfileInfoResult) bool {
return r.ObjectInfo.Type == "blob"
},
@@ -95,6 +125,9 @@ func TestPipeline(t *testing.T) {
"^master~",
"master",
},
+ revlistOptions: []RevlistOption{
+ WithObjects(),
+ },
expectedResults: []CatfileObjectResult{
{ObjectInfo: &catfile.ObjectInfo{Oid: "1e292f8fedd741b75372e19097c76d327140c312", Type: "commit", Size: 388}},
{ObjectInfo: &catfile.ObjectInfo{Oid: "07f8147e8e73aab6c935c296e8cdc5194dee729b", Type: "tree", Size: 780}},
@@ -106,10 +139,24 @@ func TestPipeline(t *testing.T) {
},
},
{
+ desc: "revision range without objects",
+ revisions: []string{
+ "^master~",
+ "master",
+ },
+ expectedResults: []CatfileObjectResult{
+ {ObjectInfo: &catfile.ObjectInfo{Oid: "1e292f8fedd741b75372e19097c76d327140c312", Type: "commit", Size: 388}},
+ {ObjectInfo: &catfile.ObjectInfo{Oid: "c1c67abbaf91f624347bb3ae96eabe3a1b742478", Type: "commit", Size: 326}},
+ },
+ },
+ {
desc: "--all with all filters",
revisions: []string{
"--all",
},
+ revlistOptions: []RevlistOption{
+ WithObjects(),
+ },
revlistFilter: func(r RevlistResult) bool {
// Let through two LFS pointers and a tree.
return r.OID == "b95c0fad32f4361845f91d9ce4c1721b52b82793" ||
@@ -166,7 +213,7 @@ func TestPipeline(t *testing.T) {
catfileProcess, err := catfileCache.BatchProcess(ctx, repo)
require.NoError(t, err)
- revlistIter := Revlist(ctx, repo, tc.revisions)
+ revlistIter := Revlist(ctx, repo, tc.revisions, tc.revlistOptions...)
if tc.revlistFilter != nil {
revlistIter = RevlistFilter(ctx, revlistIter, tc.revlistFilter)
}
@@ -258,7 +305,7 @@ func TestPipeline(t *testing.T) {
catfileProcess, err := catfileCache.BatchProcess(ctx, repo)
require.NoError(t, err)
- revlistIter := Revlist(ctx, repo, []string{"--all"})
+ revlistIter := Revlist(ctx, repo, []string{"--all"}, WithObjects())
catfileInfoIter := CatfileInfo(ctx, catfileProcess, revlistIter)
catfileObjectIter := CatfileObject(ctx, catfileProcess, catfileInfoIter)
diff --git a/internal/git/gitpipe/revlist.go b/internal/git/gitpipe/revlist.go
index f13b3336b..0c020fe86 100644
--- a/internal/git/gitpipe/revlist.go
+++ b/internal/git/gitpipe/revlist.go
@@ -5,6 +5,7 @@ import (
"bytes"
"context"
"fmt"
+ "time"
"gitlab.com/gitlab-org/gitaly/v14/internal/git"
"gitlab.com/gitlab-org/gitaly/v14/internal/git/localrepo"
@@ -40,13 +41,28 @@ const (
// revlistConfig is configuration for the revlist pipeline step.
type revlistConfig struct {
- blobLimit int
- objectType ObjectType
+ blobLimit int
+ objects bool
+ objectType ObjectType
+ order Order
+ maxParents uint
+ disabledWalk bool
+ firstParent bool
+ before, after time.Time
+ author []byte
}
// RevlistOption is an option for the revlist pipeline step.
type RevlistOption func(cfg *revlistConfig)
+// WithObjects will cause git-rev-list(1) to not only list commits, but also objects referenced by
+// those commits.
+func WithObjects() RevlistOption {
+ return func(cfg *revlistConfig) {
+ cfg.objects = true
+ }
+}
+
// WithBlobLimit sets up a size limit for blobs. Only blobs whose size is smaller than this limit
// will be returned by the pipeline step.
func WithBlobLimit(limit int) RevlistOption {
@@ -65,6 +81,75 @@ func WithObjectTypeFilter(t ObjectType) RevlistOption {
}
}
+// Order is the order in which objects are printed.
+type Order int
+
+const (
+ // OrderNone is the default ordering, which is reverse chronological order.
+ OrderNone = Order(iota)
+ // OrderTopo will cause no parents to be shown before all of its children are shown.
+ // Furthermore, multiple lines of history will not be intermixed.
+ OrderTopo
+ // OrderDate order will cause no parents to be shown before all of its children are shown.
+ // Otherwise, commits are shown in commit timestamp order. This can cause history to be
+ // shown intermixed.
+ OrderDate
+)
+
+// WithOrder will change the ordering of how objects are listed.
+func WithOrder(o Order) RevlistOption {
+ return func(cfg *revlistConfig) {
+ cfg.order = o
+ }
+}
+
+// WithMaxParents will cause git-rev-list(1) to list only commits with at most p parents. If set to
+// 1, then merge commits will be skipped. While the zero-value for git-rev-list(1) would cause it to
+// only print the root commit, we use it as the default value and simply print all commits in that
+// case.
+func WithMaxParents(p uint) RevlistOption {
+ return func(cfg *revlistConfig) {
+ cfg.maxParents = p
+ }
+}
+
+// WithDisabledWalk will cause git-rev-list(1) to not do a graph walk beyond the immediate specified
+// tips.
+func WithDisabledWalk() RevlistOption {
+ return func(cfg *revlistConfig) {
+ cfg.disabledWalk = true
+ }
+}
+
+// WithFirstParent will cause git-rev-list(1) to only walk down the first-parent chain of commits.
+func WithFirstParent() RevlistOption {
+ return func(cfg *revlistConfig) {
+ cfg.firstParent = true
+ }
+}
+
+// WithBefore will cause git-rev-list(1) to only show commits older than the specified time.
+func WithBefore(t time.Time) RevlistOption {
+ return func(cfg *revlistConfig) {
+ cfg.before = t
+ }
+}
+
+// WithAfter will cause git-rev-list(1) to only show commits newer than the specified time.
+func WithAfter(t time.Time) RevlistOption {
+ return func(cfg *revlistConfig) {
+ cfg.after = t
+ }
+}
+
+// WithAuthor will cause git-rev-list(1) to only show commits created by an author matching the
+// given pattern.
+func WithAuthor(author []byte) RevlistOption {
+ return func(cfg *revlistConfig) {
+ cfg.author = author
+ }
+}
+
// Revlist runs git-rev-list(1) with objects and object names enabled. The returned channel will
// contain all object IDs listed by this command. Cancelling the context will cause the pipeline to
// be cancelled, too.
@@ -92,16 +177,22 @@ func Revlist(
}
}
- flags := []git.Option{
- git.Flag{Name: "--in-commit-order"},
- git.Flag{Name: "--objects"},
- git.Flag{Name: "--object-names"},
+ flags := []git.Option{}
+
+ if cfg.objects {
+ flags = append(flags,
+ git.Flag{Name: "--in-commit-order"},
+ git.Flag{Name: "--objects"},
+ git.Flag{Name: "--object-names"},
+ )
}
+
if cfg.blobLimit > 0 {
flags = append(flags, git.Flag{
Name: fmt.Sprintf("--filter=blob:limit=%d", cfg.blobLimit),
})
}
+
if cfg.objectType != "" {
flags = append(flags,
git.Flag{Name: fmt.Sprintf("--filter=object:type=%s", cfg.objectType)},
@@ -109,6 +200,47 @@ func Revlist(
)
}
+ switch cfg.order {
+ case OrderNone:
+ // Default order, nothing to do.
+ case OrderTopo:
+ flags = append(flags, git.Flag{Name: "--topo-order"})
+ case OrderDate:
+ flags = append(flags, git.Flag{Name: "--date-order"})
+ }
+
+ if cfg.maxParents > 0 {
+ flags = append(flags, git.Flag{
+ Name: fmt.Sprintf("--max-parents=%d", cfg.maxParents)},
+ )
+ }
+
+ if cfg.disabledWalk {
+ flags = append(flags, git.Flag{Name: "--no-walk"})
+ }
+
+ if cfg.firstParent {
+ flags = append(flags, git.Flag{Name: "--first-parent"})
+ }
+
+ if !cfg.before.IsZero() {
+ flags = append(flags, git.Flag{
+ Name: fmt.Sprintf("--before=%s", cfg.before.String()),
+ })
+ }
+
+ if !cfg.after.IsZero() {
+ flags = append(flags, git.Flag{
+ Name: fmt.Sprintf("--after=%s", cfg.after.String()),
+ })
+ }
+
+ if len(cfg.author) > 0 {
+ flags = append(flags, git.Flag{
+ Name: fmt.Sprintf("--author=%s", string(cfg.author)),
+ })
+ }
+
revlist, err := repo.Exec(ctx, git.SubCmd{
Name: "rev-list",
Flags: flags,
diff --git a/internal/git/gitpipe/revlist_test.go b/internal/git/gitpipe/revlist_test.go
index d808927ea..8c8ca9bd5 100644
--- a/internal/git/gitpipe/revlist_test.go
+++ b/internal/git/gitpipe/revlist_test.go
@@ -3,6 +3,7 @@ package gitpipe
import (
"errors"
"testing"
+ "time"
"github.com/stretchr/testify/require"
"gitlab.com/gitlab-org/gitaly/v14/internal/git"
@@ -44,6 +45,9 @@ func TestRevlist(t *testing.T) {
revisions: []string{
lfsPointer1,
},
+ options: []RevlistOption{
+ WithObjects(),
+ },
expectedResults: []RevlistResult{
{OID: lfsPointer1},
},
@@ -56,6 +60,9 @@ func TestRevlist(t *testing.T) {
lfsPointer3,
lfsPointer4,
},
+ options: []RevlistOption{
+ WithObjects(),
+ },
expectedResults: []RevlistResult{
{OID: lfsPointer1},
{OID: lfsPointer2},
@@ -64,11 +71,24 @@ func TestRevlist(t *testing.T) {
},
},
{
+ desc: "multiple blobs without objects",
+ revisions: []string{
+ lfsPointer1,
+ lfsPointer2,
+ lfsPointer3,
+ lfsPointer4,
+ },
+ expectedResults: nil,
+ },
+ {
desc: "duplicated blob prints blob once only",
revisions: []string{
lfsPointer1,
lfsPointer1,
},
+ options: []RevlistOption{
+ WithObjects(),
+ },
expectedResults: []RevlistResult{
{OID: lfsPointer1},
},
@@ -78,17 +98,42 @@ func TestRevlist(t *testing.T) {
revisions: []string{
"b95c0fad32f4361845f91d9ce4c1721b52b82793",
},
+ options: []RevlistOption{
+ WithObjects(),
+ },
expectedResults: []RevlistResult{
{OID: "b95c0fad32f4361845f91d9ce4c1721b52b82793"},
{OID: "93e123ac8a3e6a0b600953d7598af629dec7b735", ObjectName: []byte("branch-test.txt")},
},
},
{
+ desc: "tree without objects returns nothing",
+ revisions: []string{
+ "b95c0fad32f4361845f91d9ce4c1721b52b82793",
+ },
+ expectedResults: nil,
+ },
+ {
+ desc: "revision without disabled walk",
+ revisions: []string{
+ "refs/heads/master",
+ },
+ options: []RevlistOption{
+ WithDisabledWalk(),
+ },
+ expectedResults: []RevlistResult{
+ {OID: "1e292f8fedd741b75372e19097c76d327140c312"},
+ },
+ },
+ {
desc: "revision range",
revisions: []string{
"^refs/heads/master~",
"refs/heads/master",
},
+ options: []RevlistOption{
+ WithObjects(),
+ },
expectedResults: []RevlistResult{
{OID: "1e292f8fedd741b75372e19097c76d327140c312"},
{OID: "07f8147e8e73aab6c935c296e8cdc5194dee729b"},
@@ -100,6 +145,127 @@ func TestRevlist(t *testing.T) {
},
},
{
+ desc: "revision range without objects",
+ revisions: []string{
+ "^refs/heads/master~",
+ "refs/heads/master",
+ },
+ expectedResults: []RevlistResult{
+ {OID: "1e292f8fedd741b75372e19097c76d327140c312"},
+ {OID: "c1c67abbaf91f624347bb3ae96eabe3a1b742478"},
+ },
+ },
+ {
+ desc: "revision range without objects with at most one parent",
+ revisions: []string{
+ "^refs/heads/master~",
+ "refs/heads/master",
+ },
+ options: []RevlistOption{
+ WithMaxParents(1),
+ },
+ expectedResults: []RevlistResult{
+ {OID: "c1c67abbaf91f624347bb3ae96eabe3a1b742478"},
+ },
+ },
+ {
+ desc: "revision range with topo order",
+ revisions: []string{
+ // This is one of the smaller examples I've found which reproduces
+ // different sorting orders between topo- and date-sorting. Expected
+ // results contain the same object for this and the next test case,
+ // but ordering is different.
+ "master",
+ "^master~5",
+ "flat-path",
+ },
+ options: []RevlistOption{
+ WithOrder(OrderTopo),
+ },
+ expectedResults: []RevlistResult{
+ {OID: "1e292f8fedd741b75372e19097c76d327140c312"},
+ {OID: "c1c67abbaf91f624347bb3ae96eabe3a1b742478"},
+ {OID: "7975be0116940bf2ad4321f79d02a55c5f7779aa"},
+ {OID: "c84ff944ff4529a70788a5e9003c2b7feae29047"},
+ {OID: "60ecb67744cb56576c30214ff52294f8ce2def98"},
+ {OID: "55bc176024cfa3baaceb71db584c7e5df900ea65"},
+ {OID: "e63f41fe459e62e1228fcef60d7189127aeba95a"},
+ {OID: "4a24d82dbca5c11c61556f3b35ca472b7463187e"},
+ {OID: "b83d6e391c22777fca1ed3012fce84f633d7fed0"},
+ {OID: "498214de67004b1da3d820901307bed2a68a8ef6"},
+ // The following commit is sorted differently in the next testcase.
+ {OID: "ce369011c189f62c815f5971d096b26759bab0d1"},
+ },
+ },
+ {
+ desc: "revision range with date order",
+ revisions: []string{
+ "master",
+ "^master~5",
+ "flat-path",
+ },
+ options: []RevlistOption{
+ WithOrder(OrderDate),
+ },
+ expectedResults: []RevlistResult{
+ {OID: "1e292f8fedd741b75372e19097c76d327140c312"},
+ {OID: "c1c67abbaf91f624347bb3ae96eabe3a1b742478"},
+ {OID: "7975be0116940bf2ad4321f79d02a55c5f7779aa"},
+ {OID: "c84ff944ff4529a70788a5e9003c2b7feae29047"},
+ {OID: "60ecb67744cb56576c30214ff52294f8ce2def98"},
+ {OID: "55bc176024cfa3baaceb71db584c7e5df900ea65"},
+ // The following commit is sorted differently in the previous
+ // testcase.
+ {OID: "ce369011c189f62c815f5971d096b26759bab0d1"},
+ {OID: "e63f41fe459e62e1228fcef60d7189127aeba95a"},
+ {OID: "4a24d82dbca5c11c61556f3b35ca472b7463187e"},
+ {OID: "b83d6e391c22777fca1ed3012fce84f633d7fed0"},
+ {OID: "498214de67004b1da3d820901307bed2a68a8ef6"},
+ },
+ },
+ {
+ desc: "revision range with dates",
+ revisions: []string{
+ "refs/heads/master",
+ },
+ options: []RevlistOption{
+ WithBefore(time.Date(2016, 6, 30, 18, 30, 0, 0, time.UTC)),
+ WithAfter(time.Date(2016, 6, 30, 18, 28, 0, 0, time.UTC)),
+ },
+ expectedResults: []RevlistResult{
+ {OID: "6907208d755b60ebeacb2e9dfea74c92c3449a1f"},
+ {OID: "c347ca2e140aa667b968e51ed0ffe055501fe4f4"},
+ },
+ },
+ {
+ desc: "revision range with author",
+ revisions: []string{
+ "refs/heads/master",
+ },
+ options: []RevlistOption{
+ WithAuthor([]byte("Sytse")),
+ },
+ expectedResults: []RevlistResult{
+ {OID: "e56497bb5f03a90a51293fc6d516788730953899"},
+ },
+ },
+ {
+ desc: "first parent chain",
+ revisions: []string{
+ "master",
+ "^master~4",
+ },
+ options: []RevlistOption{
+ WithFirstParent(),
+ },
+ expectedResults: []RevlistResult{
+ {OID: "1e292f8fedd741b75372e19097c76d327140c312"},
+ {OID: "7975be0116940bf2ad4321f79d02a55c5f7779aa"},
+ {OID: "60ecb67744cb56576c30214ff52294f8ce2def98"},
+ {OID: "e63f41fe459e62e1228fcef60d7189127aeba95a"},
+ },
+ },
+ {
// This is a tree object with multiple blobs. We cannot directly filter
// blobs given that Git will always print whatever's been provided on the
// command line. While we can already fix this with Git v2.32.0 via
@@ -110,6 +276,9 @@ func TestRevlist(t *testing.T) {
revisions: []string{
"79d5f98270ad677c86a7e1ab2baa922958565135",
},
+ options: []RevlistOption{
+ WithObjects(),
+ },
expectedResults: []RevlistResult{
{OID: "79d5f98270ad677c86a7e1ab2baa922958565135"},
{OID: "8af7f880ce38649fc49f66e3f38857bfbec3f0b7", ObjectName: []byte("feature-1.txt")},
@@ -131,6 +300,7 @@ func TestRevlist(t *testing.T) {
"79d5f98270ad677c86a7e1ab2baa922958565135",
},
options: []RevlistOption{
+ WithObjects(),
WithBlobLimit(10),
},
expectedResults: []RevlistResult{
@@ -147,6 +317,7 @@ func TestRevlist(t *testing.T) {
"79d5f98270ad677c86a7e1ab2baa922958565135",
},
options: []RevlistOption{
+ WithObjects(),
WithObjectTypeFilter(ObjectTypeBlob),
},
expectedResults: []RevlistResult{
@@ -168,6 +339,7 @@ func TestRevlist(t *testing.T) {
"--all",
},
options: []RevlistOption{
+ WithObjects(),
WithObjectTypeFilter(ObjectTypeTag),
},
expectedResults: []RevlistResult{
@@ -183,6 +355,7 @@ func TestRevlist(t *testing.T) {
"79d5f98270ad677c86a7e1ab2baa922958565135",
},
options: []RevlistOption{
+ WithObjects(),
WithObjectTypeFilter(ObjectTypeTree),
},
expectedResults: []RevlistResult{
@@ -197,6 +370,7 @@ func TestRevlist(t *testing.T) {
"refs/heads/master",
},
options: []RevlistOption{
+ WithObjects(),
WithObjectTypeFilter(ObjectTypeCommit),
},
expectedResults: []RevlistResult{
@@ -211,6 +385,7 @@ func TestRevlist(t *testing.T) {
"79d5f98270ad677c86a7e1ab2baa922958565135",
},
options: []RevlistOption{
+ WithObjects(),
WithBlobLimit(10),
WithObjectTypeFilter(ObjectTypeBlob),
},
diff --git a/internal/git/gittest/testdata.go b/internal/git/gittest/testdata.go
new file mode 100644
index 000000000..7744dc866
--- /dev/null
+++ b/internal/git/gittest/testdata.go
@@ -0,0 +1,310 @@
+package gittest
+
+import (
+ "github.com/golang/protobuf/ptypes/timestamp"
+ "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb"
+)
+
+// CommitsByID is a map of GitCommit structures by their respective IDs.
+var CommitsByID = map[string]*gitalypb.GitCommit{
+ "0031876facac3f2b2702a0e53a26e89939a42209": &gitalypb.GitCommit{
+ Id: "0031876facac3f2b2702a0e53a26e89939a42209",
+ Subject: []byte("Merge branch 'few-commits-4' into few-commits-2"),
+ Body: []byte("Merge branch 'few-commits-4' into few-commits-2\n"),
+ Author: ahmadSherif(1500320762),
+ Committer: ahmadSherif(1500320762),
+ ParentIds: []string{
+ "bf6e164cac2dc32b1f391ca4290badcbe4ffc5fb",
+ "48ca272b947f49eee601639d743784a176574a09",
+ },
+ BodySize: 48,
+ TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
+ },
+ "48ca272b947f49eee601639d743784a176574a09": &gitalypb.GitCommit{
+ Id: "48ca272b947f49eee601639d743784a176574a09",
+ Subject: []byte("Commit #9 alternate"),
+ Body: []byte("Commit #9 alternate\n"),
+ Author: ahmadSherif(1500320271),
+ Committer: ahmadSherif(1500320271),
+ ParentIds: []string{"335bc94d5b7369b10251e612158da2e4a4aaa2a5"},
+ BodySize: 20,
+ TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
+ },
+ "335bc94d5b7369b10251e612158da2e4a4aaa2a5": &gitalypb.GitCommit{
+ Id: "335bc94d5b7369b10251e612158da2e4a4aaa2a5",
+ Subject: []byte("Commit #8 alternate"),
+ Body: []byte("Commit #8 alternate\n"),
+ Author: ahmadSherif(1500320269),
+ Committer: ahmadSherif(1500320269),
+ ParentIds: []string{"1039376155a0d507eba0ea95c29f8f5b983ea34b"},
+ BodySize: 20,
+ TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
+ },
+ "bf6e164cac2dc32b1f391ca4290badcbe4ffc5fb": &gitalypb.GitCommit{
+ Id: "bf6e164cac2dc32b1f391ca4290badcbe4ffc5fb",
+ Subject: []byte("Commit #10"),
+ Body: []byte("Commit #10\n"),
+ Author: ahmadSherif(1500320272),
+ Committer: ahmadSherif(1500320272),
+ ParentIds: []string{"9d526f87b82e2b2fd231ca44c95508e5e85624ca"},
+ BodySize: 11,
+ TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
+ },
+ "9d526f87b82e2b2fd231ca44c95508e5e85624ca": &gitalypb.GitCommit{
+ Id: "9d526f87b82e2b2fd231ca44c95508e5e85624ca",
+ Subject: []byte("Commit #9"),
+ Body: []byte("Commit #9\n"),
+ Author: ahmadSherif(1500320270),
+ Committer: ahmadSherif(1500320270),
+ ParentIds: []string{"1039376155a0d507eba0ea95c29f8f5b983ea34b"},
+ BodySize: 10,
+ TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
+ },
+ "1039376155a0d507eba0ea95c29f8f5b983ea34b": &gitalypb.GitCommit{
+ Id: "1039376155a0d507eba0ea95c29f8f5b983ea34b",
+ Subject: []byte("Commit #8"),
+ Body: []byte("Commit #8\n"),
+ Author: ahmadSherif(1500320268),
+ Committer: ahmadSherif(1500320268),
+ ParentIds: []string{"54188278422b1fa877c2e71c4e37fc6640a58ad1"},
+ BodySize: 10,
+ TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
+ },
+ "54188278422b1fa877c2e71c4e37fc6640a58ad1": &gitalypb.GitCommit{
+ Id: "54188278422b1fa877c2e71c4e37fc6640a58ad1",
+ Subject: []byte("Commit #7"),
+ Body: []byte("Commit #7\n"),
+ Author: ahmadSherif(1500320266),
+ Committer: ahmadSherif(1500320266),
+ ParentIds: []string{"8b9270332688d58e25206601900ee5618fab2390"},
+ BodySize: 10,
+ TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
+ },
+ "8b9270332688d58e25206601900ee5618fab2390": &gitalypb.GitCommit{
+ Id: "8b9270332688d58e25206601900ee5618fab2390",
+ Subject: []byte("Commit #6"),
+ Body: []byte("Commit #6\n"),
+ Author: ahmadSherif(1500320264),
+ Committer: ahmadSherif(1500320264),
+ ParentIds: []string{"f9220df47bce1530e90c189064d301bfc8ceb5ab"},
+ BodySize: 10,
+ TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
+ },
+ "f9220df47bce1530e90c189064d301bfc8ceb5ab": &gitalypb.GitCommit{
+ Id: "f9220df47bce1530e90c189064d301bfc8ceb5ab",
+ Subject: []byte("Commit #5"),
+ Body: []byte("Commit #5\n"),
+ Author: ahmadSherif(1500320262),
+ Committer: ahmadSherif(1500320262),
+ ParentIds: []string{"40d408f89c1fd26b7d02e891568f880afe06a9f8"},
+ BodySize: 10,
+ TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
+ },
+ "40d408f89c1fd26b7d02e891568f880afe06a9f8": &gitalypb.GitCommit{
+ Id: "40d408f89c1fd26b7d02e891568f880afe06a9f8",
+ Subject: []byte("Commit #4"),
+ Body: []byte("Commit #4\n"),
+ Author: ahmadSherif(1500320260),
+ Committer: ahmadSherif(1500320260),
+ ParentIds: []string{"df914c609a1e16d7d68e4a61777ff5d6f6b6fde3"},
+ BodySize: 10,
+ TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
+ },
+ "df914c609a1e16d7d68e4a61777ff5d6f6b6fde3": &gitalypb.GitCommit{
+ Id: "df914c609a1e16d7d68e4a61777ff5d6f6b6fde3",
+ Subject: []byte("Commit #3"),
+ Body: []byte("Commit #3\n"),
+ Author: ahmadSherif(1500320258),
+ Committer: ahmadSherif(1500320258),
+ ParentIds: []string{"6762605237fc246ae146ac64ecb467f71d609120"},
+ BodySize: 10,
+ TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
+ },
+ "6762605237fc246ae146ac64ecb467f71d609120": &gitalypb.GitCommit{
+ Id: "6762605237fc246ae146ac64ecb467f71d609120",
+ Subject: []byte("Commit #2"),
+ Body: []byte("Commit #2\n"),
+ Author: ahmadSherif(1500320256),
+ Committer: ahmadSherif(1500320256),
+ ParentIds: []string{"79b06233d3dc769921576771a4e8bee4b439595d"},
+ BodySize: 10,
+ TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
+ },
+ "79b06233d3dc769921576771a4e8bee4b439595d": &gitalypb.GitCommit{
+ Id: "79b06233d3dc769921576771a4e8bee4b439595d",
+ Subject: []byte("Commit #1"),
+ Body: []byte("Commit #1\n"),
+ Author: ahmadSherif(1500320254),
+ Committer: ahmadSherif(1500320254),
+ ParentIds: []string{"1a0b36b3cdad1d2ee32457c102a8c0b7056fa863"},
+ BodySize: 10,
+ TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
+ },
+ "1a0b36b3cdad1d2ee32457c102a8c0b7056fa863": &gitalypb.GitCommit{
+ Id: "1a0b36b3cdad1d2ee32457c102a8c0b7056fa863",
+ Subject: []byte("Initial commit"),
+ Body: []byte("Initial commit\n"),
+ Author: dmitriyZaporozhets(1393488198),
+ Committer: dmitriyZaporozhets(1393488198),
+ ParentIds: nil,
+ BodySize: 15,
+ TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
+ },
+ "304d257dcb821665ab5110318fc58a007bd104ed": &gitalypb.GitCommit{
+ Id: "304d257dcb821665ab5110318fc58a007bd104ed",
+ Subject: []byte("Commit #11"),
+ Body: []byte("Commit #11\n"),
+ Author: ahmadSherif(1500322381),
+ Committer: ahmadSherif(1500322381),
+ ParentIds: []string{"1a0b36b3cdad1d2ee32457c102a8c0b7056fa863"},
+ BodySize: 11,
+ TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
+ },
+ "1e292f8fedd741b75372e19097c76d327140c312": &gitalypb.GitCommit{
+ Id: "1e292f8fedd741b75372e19097c76d327140c312",
+ Subject: []byte("Merge branch 'cherry-pikc-ce369011' into 'master'"),
+ Body: []byte("Merge branch 'cherry-pikc-ce369011' into 'master'\n\nAdd file with a _flattable_ path\n\n See merge request gitlab-org/gitlab-test!35\n"),
+ Author: drewBlessing(1540830087),
+ Committer: drewBlessing(1540830087),
+ ParentIds: []string{
+ "79b06233d3dc769921576771a4e8bee4b439595d",
+ "c1c67abbaf91f624347bb3ae96eabe3a1b742478",
+ },
+ BodySize: 388,
+ TreeId: "07f8147e8e73aab6c935c296e8cdc5194dee729b",
+ },
+ "60ecb67744cb56576c30214ff52294f8ce2def98": &gitalypb.GitCommit{
+ Id: "60ecb67744cb56576c30214ff52294f8ce2def98",
+ Subject: []byte("Merge branch 'lfs' into 'master'"),
+ Body: []byte("Merge branch 'lfs' into 'master'\n\nAdd LFS tracking of \"*.lfs\" to .gitattributes\n\nSee merge request gitlab-org/gitlab-test!28"),
+ Author: stanHu(1515740810),
+ Committer: stanHu(1515740810),
+ ParentIds: []string{
+ "e63f41fe459e62e1228fcef60d7189127aeba95a",
+ "55bc176024cfa3baaceb71db584c7e5df900ea65",
+ },
+ BodySize: 124,
+ TreeId: "7e2f26d033ee47cd0745649d1a28277c56197921",
+ },
+ "e63f41fe459e62e1228fcef60d7189127aeba95a": &gitalypb.GitCommit{
+ Id: "e63f41fe459e62e1228fcef60d7189127aeba95a",
+ Subject: []byte("Merge branch 'gitlab-test-usage-dev-testing-docs' into 'master'"),
+ Body: []byte("Merge branch 'gitlab-test-usage-dev-testing-docs' into 'master'\r\n\r\nUpdate README.md to include `Usage in testing and development`\r\n\r\nSee merge request !21"),
+ Author: seanMcGivern(1491906794),
+ Committer: seanMcGivern(1491906794),
+ ParentIds: []string{
+ "b83d6e391c22777fca1ed3012fce84f633d7fed0",
+ "4a24d82dbca5c11c61556f3b35ca472b7463187e",
+ },
+ BodySize: 154,
+ TreeId: "86ec18bfe87ad42a782fdabd8310f9b7ac750f51",
+ },
+ "55bc176024cfa3baaceb71db584c7e5df900ea65": &gitalypb.GitCommit{
+ Id: "55bc176024cfa3baaceb71db584c7e5df900ea65",
+ Subject: []byte("LFS tracks \"*.lfs\" through .gitattributes"),
+ Body: []byte("LFS tracks \"*.lfs\" through .gitattributes\n"),
+ Author: jamesEdwardsJones(1515687321),
+ Committer: jamesEdwardsJones(1515738427),
+ ParentIds: []string{
+ "b83d6e391c22777fca1ed3012fce84f633d7fed0",
+ },
+ BodySize: 42,
+ TreeId: "1970c07e0e1ce7fcf82edc2e3792564bd8ea3744",
+ },
+ "4a24d82dbca5c11c61556f3b35ca472b7463187e": &gitalypb.GitCommit{
+ Id: "4a24d82dbca5c11c61556f3b35ca472b7463187e",
+ Subject: []byte("Update README.md to include `Usage in testing and development`"),
+ Body: []byte("Update README.md to include `Usage in testing and development`"),
+ Author: lukeBennett(1491905339),
+ Committer: lukeBennett(1491905339),
+ ParentIds: []string{
+ "b83d6e391c22777fca1ed3012fce84f633d7fed0",
+ },
+ BodySize: 62,
+ TreeId: "86ec18bfe87ad42a782fdabd8310f9b7ac750f51",
+ },
+ "ce369011c189f62c815f5971d096b26759bab0d1": &gitalypb.GitCommit{
+ Id: "ce369011c189f62c815f5971d096b26759bab0d1",
+ Subject: []byte("Add file with a _flattable_ path"),
+ Body: []byte("Add file with a _flattable_ path\n"),
+ Author: alejandroRodriguez(1504382739),
+ Committer: alejandroRodriguez(1504397760),
+ ParentIds: []string{
+ "913c66a37b4a45b9769037c55c2d238bd0942d2e",
+ },
+ BodySize: 33,
+ TreeId: "729bb692f55d49149609dd1ceaaf1febbdec7d0d",
+ },
+}
+
+func alejandroRodriguez(ts int64) *gitalypb.CommitAuthor {
+ return &gitalypb.CommitAuthor{
+ Name: []byte("Alejandro Rodríguez"),
+ Email: []byte("alejorro70@gmail.com"),
+ Date: &timestamp.Timestamp{Seconds: ts},
+ Timezone: []byte("-0300"),
+ }
+}
+
+func ahmadSherif(ts int64) *gitalypb.CommitAuthor {
+ return &gitalypb.CommitAuthor{
+ Name: []byte("Ahmad Sherif"),
+ Email: []byte("ahmad+gitlab-test@gitlab.com"),
+ Date: &timestamp.Timestamp{Seconds: ts},
+ Timezone: []byte("+0200"),
+ }
+}
+
+func drewBlessing(ts int64) *gitalypb.CommitAuthor {
+ return &gitalypb.CommitAuthor{
+ Name: []byte("Drew Blessing"),
+ Email: []byte("drew@blessing.io"),
+ Date: &timestamp.Timestamp{Seconds: ts},
+ Timezone: []byte("+0000"),
+ }
+}
+
+func dmitriyZaporozhets(ts int64) *gitalypb.CommitAuthor {
+ return &gitalypb.CommitAuthor{
+ Name: []byte("Dmitriy Zaporozhets"),
+ Email: []byte("dmitriy.zaporozhets@gmail.com"),
+ Date: &timestamp.Timestamp{Seconds: ts},
+ Timezone: []byte("-0800"),
+ }
+}
+
+func jamesEdwardsJones(ts int64) *gitalypb.CommitAuthor {
+ return &gitalypb.CommitAuthor{
+ Name: []byte("James Edwards-Jones"),
+ Email: []byte("jedwardsjones@gitlab.com"),
+ Date: &timestamp.Timestamp{Seconds: ts},
+ Timezone: []byte("+0000"),
+ }
+}
+
+func lukeBennett(ts int64) *gitalypb.CommitAuthor {
+ return &gitalypb.CommitAuthor{
+ Name: []byte("Luke \"Jared\" Bennett"),
+ Email: []byte("lbennett@gitlab.com"),
+ Date: &timestamp.Timestamp{Seconds: ts},
+ Timezone: []byte("+0000"),
+ }
+}
+
+func seanMcGivern(ts int64) *gitalypb.CommitAuthor {
+ return &gitalypb.CommitAuthor{
+ Name: []byte("Sean McGivern"),
+ Email: []byte("sean@mcgivern.me.uk"),
+ Date: &timestamp.Timestamp{Seconds: ts},
+ Timezone: []byte("+0000"),
+ }
+}
+
+func stanHu(ts int64) *gitalypb.CommitAuthor {
+ return &gitalypb.CommitAuthor{
+ Name: []byte("Stan Hu"),
+ Email: []byte("stanhu@gmail.com"),
+ Date: &timestamp.Timestamp{Seconds: ts},
+ Timezone: []byte("+0000"),
+ }
+}
diff --git a/internal/gitaly/service/blob/blobs.go b/internal/gitaly/service/blob/blobs.go
index 78c447079..9f18fc7ff 100644
--- a/internal/gitaly/service/blob/blobs.go
+++ b/internal/gitaly/service/blob/blobs.go
@@ -59,7 +59,10 @@ func (s *server) ListBlobs(req *gitalypb.ListBlobsRequest, stream gitalypb.BlobS
return helper.ErrInternalf("cannot determine Git version: %v", err)
}
- var revlistOptions []gitpipe.RevlistOption
+ revlistOptions := []gitpipe.RevlistOption{
+ gitpipe.WithObjects(),
+ }
+
if gitVersion.SupportsObjectTypeFilter() {
revlistOptions = append(revlistOptions, gitpipe.WithObjectTypeFilter(gitpipe.ObjectTypeBlob))
}
diff --git a/internal/gitaly/service/blob/lfs_pointers.go b/internal/gitaly/service/blob/lfs_pointers.go
index 46442f546..bdb829c47 100644
--- a/internal/gitaly/service/blob/lfs_pointers.go
+++ b/internal/gitaly/service/blob/lfs_pointers.go
@@ -79,7 +79,10 @@ func (s *server) ListLFSPointers(in *gitalypb.ListLFSPointersRequest, stream git
return helper.ErrInternalf("cannot determine Git version: %v", err)
}
- revlistOptions := []gitpipe.RevlistOption{gitpipe.WithBlobLimit(lfsPointerMaxSize)}
+ revlistOptions := []gitpipe.RevlistOption{
+ gitpipe.WithObjects(),
+ gitpipe.WithBlobLimit(lfsPointerMaxSize),
+ }
if gitVersion.SupportsObjectTypeFilter() {
revlistOptions = append(revlistOptions, gitpipe.WithObjectTypeFilter(gitpipe.ObjectTypeBlob))
}
diff --git a/internal/gitaly/service/commit/commits_sender.go b/internal/gitaly/service/commit/commits_sender.go
new file mode 100644
index 000000000..f6f0812bb
--- /dev/null
+++ b/internal/gitaly/service/commit/commits_sender.go
@@ -0,0 +1,23 @@
+package commit
+
+import (
+ "github.com/golang/protobuf/proto"
+ "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb"
+)
+
+type commitsSender struct {
+ commits []*gitalypb.GitCommit
+ send func([]*gitalypb.GitCommit) error
+}
+
+func (s *commitsSender) Reset() {
+ s.commits = s.commits[:0]
+}
+
+func (s *commitsSender) Append(m proto.Message) {
+ s.commits = append(s.commits, m.(*gitalypb.GitCommit))
+}
+
+func (s *commitsSender) Send() error {
+ return s.send(s.commits)
+}
diff --git a/internal/gitaly/service/commit/find_all_commits.go b/internal/gitaly/service/commit/find_all_commits.go
index 0b0c83392..796c7185b 100644
--- a/internal/gitaly/service/commit/find_all_commits.go
+++ b/internal/gitaly/service/commit/find_all_commits.go
@@ -3,7 +3,6 @@ package commit
import (
"fmt"
- "github.com/golang/protobuf/proto"
"gitlab.com/gitlab-org/gitaly/v14/internal/git"
"gitlab.com/gitlab-org/gitaly/v14/internal/gitaly/service/ref"
"gitlab.com/gitlab-org/gitaly/v14/internal/helper"
@@ -13,20 +12,6 @@ import (
// We declare this function in variables so that we can override them in our tests
var _findBranchNamesFunc = ref.FindBranchNames
-type findAllCommitsSender struct {
- stream gitalypb.CommitService_FindAllCommitsServer
- commits []*gitalypb.GitCommit
-}
-
-func (sender *findAllCommitsSender) Reset() { sender.commits = nil }
-func (sender *findAllCommitsSender) Append(m proto.Message) {
- sender.commits = append(sender.commits, m.(*gitalypb.GitCommit))
-}
-
-func (sender *findAllCommitsSender) Send() error {
- return sender.stream.Send(&gitalypb.FindAllCommitsResponse{Commits: sender.commits})
-}
-
func (s *server) FindAllCommits(in *gitalypb.FindAllCommitsRequest, stream gitalypb.CommitService_FindAllCommitsServer) error {
if err := validateFindAllCommitsRequest(in); err != nil {
return err
@@ -64,7 +49,13 @@ func validateFindAllCommitsRequest(in *gitalypb.FindAllCommitsRequest) error {
}
func (s *server) findAllCommits(repo git.RepositoryExecutor, in *gitalypb.FindAllCommitsRequest, stream gitalypb.CommitService_FindAllCommitsServer, revisions []string) error {
- sender := &findAllCommitsSender{stream: stream}
+ sender := &commitsSender{
+ send: func(commits []*gitalypb.GitCommit) error {
+ return stream.Send(&gitalypb.FindAllCommitsResponse{
+ Commits: commits,
+ })
+ },
+ }
var gitLogExtraOptions []git.Option
if maxCount := in.GetMaxCount(); maxCount > 0 {
diff --git a/internal/gitaly/service/commit/find_all_commits_test.go b/internal/gitaly/service/commit/find_all_commits_test.go
index 4a519f2b6..b1c77886b 100644
--- a/internal/gitaly/service/commit/find_all_commits_test.go
+++ b/internal/gitaly/service/commit/find_all_commits_test.go
@@ -4,9 +4,9 @@ import (
"context"
"testing"
- "github.com/golang/protobuf/ptypes/timestamp"
"github.com/stretchr/testify/require"
"gitlab.com/gitlab-org/gitaly/v14/internal/git"
+ "gitlab.com/gitlab-org/gitaly/v14/internal/git/gittest"
"gitlab.com/gitlab-org/gitaly/v14/internal/gitaly/service/ref"
"gitlab.com/gitlab-org/gitaly/v14/internal/testhelper"
"gitlab.com/gitlab-org/gitaly/v14/internal/testhelper/testassert"
@@ -31,170 +31,29 @@ func TestSuccessfulFindAllCommitsRequest(t *testing.T) {
// Commits made on another branch in parallel to the normal commits below.
// Will be used to test topology ordering.
alternateCommits := []*gitalypb.GitCommit{
- {
- Id: "0031876facac3f2b2702a0e53a26e89939a42209",
- Subject: []byte("Merge branch 'few-commits-4' into few-commits-2"),
- Body: []byte("Merge branch 'few-commits-4' into few-commits-2\n"),
- Author: dummyCommitAuthor(1500320762),
- Committer: dummyCommitAuthor(1500320762),
- ParentIds: []string{
- "bf6e164cac2dc32b1f391ca4290badcbe4ffc5fb",
- "48ca272b947f49eee601639d743784a176574a09",
- },
- BodySize: 48,
- TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
- },
- {
- Id: "48ca272b947f49eee601639d743784a176574a09",
- Subject: []byte("Commit #9 alternate"),
- Body: []byte("Commit #9 alternate\n"),
- Author: dummyCommitAuthor(1500320271),
- Committer: dummyCommitAuthor(1500320271),
- ParentIds: []string{"335bc94d5b7369b10251e612158da2e4a4aaa2a5"},
- BodySize: 20,
- TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
- },
- {
- Id: "335bc94d5b7369b10251e612158da2e4a4aaa2a5",
- Subject: []byte("Commit #8 alternate"),
- Body: []byte("Commit #8 alternate\n"),
- Author: dummyCommitAuthor(1500320269),
- Committer: dummyCommitAuthor(1500320269),
- ParentIds: []string{"1039376155a0d507eba0ea95c29f8f5b983ea34b"},
- BodySize: 20,
- TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
- },
+ gittest.CommitsByID["0031876facac3f2b2702a0e53a26e89939a42209"],
+ gittest.CommitsByID["48ca272b947f49eee601639d743784a176574a09"],
+ gittest.CommitsByID["335bc94d5b7369b10251e612158da2e4a4aaa2a5"],
}
// Nothing special about these commits.
normalCommits := []*gitalypb.GitCommit{
- {
- Id: "bf6e164cac2dc32b1f391ca4290badcbe4ffc5fb",
- Subject: []byte("Commit #10"),
- Body: []byte("Commit #10\n"),
- Author: dummyCommitAuthor(1500320272),
- Committer: dummyCommitAuthor(1500320272),
- ParentIds: []string{"9d526f87b82e2b2fd231ca44c95508e5e85624ca"},
- BodySize: 11,
- TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
- },
- {
- Id: "9d526f87b82e2b2fd231ca44c95508e5e85624ca",
- Subject: []byte("Commit #9"),
- Body: []byte("Commit #9\n"),
- Author: dummyCommitAuthor(1500320270),
- Committer: dummyCommitAuthor(1500320270),
- ParentIds: []string{"1039376155a0d507eba0ea95c29f8f5b983ea34b"},
- BodySize: 10,
- TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
- },
- {
- Id: "1039376155a0d507eba0ea95c29f8f5b983ea34b",
- Subject: []byte("Commit #8"),
- Body: []byte("Commit #8\n"),
- Author: dummyCommitAuthor(1500320268),
- Committer: dummyCommitAuthor(1500320268),
- ParentIds: []string{"54188278422b1fa877c2e71c4e37fc6640a58ad1"},
- BodySize: 10,
- TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
- }, {
- Id: "54188278422b1fa877c2e71c4e37fc6640a58ad1",
- Subject: []byte("Commit #7"),
- Body: []byte("Commit #7\n"),
- Author: dummyCommitAuthor(1500320266),
- Committer: dummyCommitAuthor(1500320266),
- ParentIds: []string{"8b9270332688d58e25206601900ee5618fab2390"},
- BodySize: 10,
- TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
- }, {
- Id: "8b9270332688d58e25206601900ee5618fab2390",
- Subject: []byte("Commit #6"),
- Body: []byte("Commit #6\n"),
- Author: dummyCommitAuthor(1500320264),
- Committer: dummyCommitAuthor(1500320264),
- ParentIds: []string{"f9220df47bce1530e90c189064d301bfc8ceb5ab"},
- BodySize: 10,
- TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
- }, {
- Id: "f9220df47bce1530e90c189064d301bfc8ceb5ab",
- Subject: []byte("Commit #5"),
- Body: []byte("Commit #5\n"),
- Author: dummyCommitAuthor(1500320262),
- Committer: dummyCommitAuthor(1500320262),
- ParentIds: []string{"40d408f89c1fd26b7d02e891568f880afe06a9f8"},
- BodySize: 10,
- TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
- }, {
- Id: "40d408f89c1fd26b7d02e891568f880afe06a9f8",
- Subject: []byte("Commit #4"),
- Body: []byte("Commit #4\n"),
- Author: dummyCommitAuthor(1500320260),
- Committer: dummyCommitAuthor(1500320260),
- ParentIds: []string{"df914c609a1e16d7d68e4a61777ff5d6f6b6fde3"},
- BodySize: 10,
- TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
- }, {
- Id: "df914c609a1e16d7d68e4a61777ff5d6f6b6fde3",
- Subject: []byte("Commit #3"),
- Body: []byte("Commit #3\n"),
- Author: dummyCommitAuthor(1500320258),
- Committer: dummyCommitAuthor(1500320258),
- ParentIds: []string{"6762605237fc246ae146ac64ecb467f71d609120"},
- BodySize: 10,
- TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
- }, {
- Id: "6762605237fc246ae146ac64ecb467f71d609120",
- Subject: []byte("Commit #2"),
- Body: []byte("Commit #2\n"),
- Author: dummyCommitAuthor(1500320256),
- Committer: dummyCommitAuthor(1500320256),
- ParentIds: []string{"79b06233d3dc769921576771a4e8bee4b439595d"},
- BodySize: 10,
- TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
- }, {
- Id: "79b06233d3dc769921576771a4e8bee4b439595d",
- Subject: []byte("Commit #1"),
- Body: []byte("Commit #1\n"),
- Author: dummyCommitAuthor(1500320254),
- Committer: dummyCommitAuthor(1500320254),
- ParentIds: []string{"1a0b36b3cdad1d2ee32457c102a8c0b7056fa863"},
- BodySize: 10,
- TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
- },
- {
- Id: "1a0b36b3cdad1d2ee32457c102a8c0b7056fa863",
- Subject: []byte("Initial commit"),
- Body: []byte("Initial commit\n"),
- Author: &gitalypb.CommitAuthor{
- Name: []byte("Dmitriy Zaporozhets"),
- Email: []byte("dmitriy.zaporozhets@gmail.com"),
- Date: &timestamp.Timestamp{Seconds: 1393488198},
- Timezone: []byte("-0800"),
- },
- Committer: &gitalypb.CommitAuthor{
- Name: []byte("Dmitriy Zaporozhets"),
- Email: []byte("dmitriy.zaporozhets@gmail.com"),
- Date: &timestamp.Timestamp{Seconds: 1393488198},
- Timezone: []byte("-0800"),
- },
- ParentIds: nil,
- BodySize: 15,
- TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
- },
+ gittest.CommitsByID["bf6e164cac2dc32b1f391ca4290badcbe4ffc5fb"],
+ gittest.CommitsByID["9d526f87b82e2b2fd231ca44c95508e5e85624ca"],
+ gittest.CommitsByID["1039376155a0d507eba0ea95c29f8f5b983ea34b"],
+ gittest.CommitsByID["54188278422b1fa877c2e71c4e37fc6640a58ad1"],
+ gittest.CommitsByID["8b9270332688d58e25206601900ee5618fab2390"],
+ gittest.CommitsByID["f9220df47bce1530e90c189064d301bfc8ceb5ab"],
+ gittest.CommitsByID["40d408f89c1fd26b7d02e891568f880afe06a9f8"],
+ gittest.CommitsByID["df914c609a1e16d7d68e4a61777ff5d6f6b6fde3"],
+ gittest.CommitsByID["6762605237fc246ae146ac64ecb467f71d609120"],
+ gittest.CommitsByID["79b06233d3dc769921576771a4e8bee4b439595d"],
+ gittest.CommitsByID["1a0b36b3cdad1d2ee32457c102a8c0b7056fa863"],
}
// A commit that exists on "two-commits" branch.
singleCommit := []*gitalypb.GitCommit{
- {
- Id: "304d257dcb821665ab5110318fc58a007bd104ed",
- Subject: []byte("Commit #11"),
- Body: []byte("Commit #11\n"),
- Author: dummyCommitAuthor(1500322381),
- Committer: dummyCommitAuthor(1500322381),
- ParentIds: []string{"1a0b36b3cdad1d2ee32457c102a8c0b7056fa863"},
- BodySize: 11,
- TreeId: "91639b9835ff541f312fd2735f639a50bf35d472",
- },
+ gittest.CommitsByID["304d257dcb821665ab5110318fc58a007bd104ed"],
}
timeOrderedCommits := []*gitalypb.GitCommit{
diff --git a/internal/gitaly/service/commit/find_commits.go b/internal/gitaly/service/commit/find_commits.go
index 8a975ed0c..6367aa35d 100644
--- a/internal/gitaly/service/commit/find_commits.go
+++ b/internal/gitaly/service/commit/find_commits.go
@@ -8,7 +8,6 @@ import (
"io"
"strings"
- "github.com/golang/protobuf/proto"
"gitlab.com/gitlab-org/gitaly/v14/internal/command"
"gitlab.com/gitlab-org/gitaly/v14/internal/git"
"gitlab.com/gitlab-org/gitaly/v14/internal/git/catfile"
@@ -152,24 +151,16 @@ func (g *GetCommits) Commit(ctx context.Context, trailers bool) (*gitalypb.GitCo
return commit, nil
}
-type findCommitsSender struct {
- stream gitalypb.CommitService_FindCommitsServer
- commits []*gitalypb.GitCommit
-}
-
-func (s *findCommitsSender) Reset() { s.commits = nil }
-func (s *findCommitsSender) Append(m proto.Message) {
- s.commits = append(s.commits, m.(*gitalypb.GitCommit))
-}
-
-func (s *findCommitsSender) Send() error {
- return s.stream.Send(&gitalypb.FindCommitsResponse{Commits: s.commits})
-}
-
func streamCommits(getCommits *GetCommits, stream gitalypb.CommitService_FindCommitsServer, trailers bool) error {
ctx := stream.Context()
- chunker := chunk.New(&findCommitsSender{stream: stream})
+ chunker := chunk.New(&commitsSender{
+ send: func(commits []*gitalypb.GitCommit) error {
+ return stream.Send(&gitalypb.FindCommitsResponse{
+ Commits: commits,
+ })
+ },
+ })
for getCommits.Scan() {
commit, err := getCommits.Commit(ctx, trailers)
diff --git a/internal/gitaly/service/commit/list_all_commits.go b/internal/gitaly/service/commit/list_all_commits.go
new file mode 100644
index 000000000..f99e6424d
--- /dev/null
+++ b/internal/gitaly/service/commit/list_all_commits.go
@@ -0,0 +1,100 @@
+package commit
+
+import (
+ "errors"
+ "fmt"
+
+ "gitlab.com/gitlab-org/gitaly/v14/internal/git"
+ "gitlab.com/gitlab-org/gitaly/v14/internal/git/catfile"
+ "gitlab.com/gitlab-org/gitaly/v14/internal/git/gitpipe"
+ "gitlab.com/gitlab-org/gitaly/v14/internal/helper"
+ "gitlab.com/gitlab-org/gitaly/v14/internal/helper/chunk"
+ "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb"
+)
+
+func verifyListAllCommitsRequest(request *gitalypb.ListAllCommitsRequest) error {
+ if request.GetRepository() == nil {
+ return errors.New("empty repository")
+ }
+ return nil
+}
+
+func (s *server) ListAllCommits(
+ request *gitalypb.ListAllCommitsRequest,
+ stream gitalypb.CommitService_ListAllCommitsServer,
+) error {
+ if err := verifyListAllCommitsRequest(request); err != nil {
+ return helper.ErrInvalidArgument(err)
+ }
+
+ ctx := stream.Context()
+ repo := s.localrepo(request.GetRepository())
+
+ catfileProcess, err := s.catfileCache.BatchProcess(ctx, repo)
+ if err != nil {
+ return helper.ErrInternal(fmt.Errorf("creating catfile process: %w", err))
+ }
+
+ catfileInfoIter := gitpipe.CatfileInfoAllObjects(ctx, repo)
+
+ // If we've got a pagination token, then we will only start to print commits as soon as
+ // we've seen the token.
+ token := request.GetPaginationParams().GetPageToken()
+ waitingForToken := token != ""
+
+ catfileInfoIter = gitpipe.CatfileInfoFilter(ctx, catfileInfoIter, func(r gitpipe.CatfileInfoResult) bool {
+ if waitingForToken {
+ waitingForToken = r.ObjectInfo.Oid != git.ObjectID(token)
+ // We also skip the token itself, thus we always return `false`
+ // here.
+ return false
+ }
+
+ if r.ObjectInfo.Type != "commit" {
+ return false
+ }
+
+ return true
+ })
+
+ catfileObjectIter := gitpipe.CatfileObject(ctx, catfileProcess, catfileInfoIter)
+
+ chunker := chunk.New(&commitsSender{
+ send: func(commits []*gitalypb.GitCommit) error {
+ return stream.Send(&gitalypb.ListAllCommitsResponse{
+ Commits: commits,
+ })
+ },
+ })
+
+ limit := request.GetPaginationParams().GetLimit()
+
+ for i := int32(0); catfileObjectIter.Next(); i++ {
+ // If we hit the pagination limit, then we stop sending commits even if there are
+ // more commits in the pipeline.
+ if limit > 0 && limit <= i {
+ break
+ }
+
+ object := catfileObjectIter.Result()
+
+ commit, err := catfile.ParseCommit(object.ObjectReader, object.ObjectInfo)
+ if err != nil {
+ return helper.ErrInternal(fmt.Errorf("parsing commit: %w", err))
+ }
+
+ if err := chunker.Send(commit); err != nil {
+ return helper.ErrInternal(fmt.Errorf("sending commit: %w", err))
+ }
+ }
+
+ if err := catfileObjectIter.Err(); err != nil {
+ return helper.ErrInternal(fmt.Errorf("iterating objects: %w", err))
+ }
+
+ if err := chunker.Flush(); err != nil {
+ return helper.ErrInternal(fmt.Errorf("flushing commits: %w", err))
+ }
+
+ return nil
+}
diff --git a/internal/gitaly/service/commit/list_all_commits_test.go b/internal/gitaly/service/commit/list_all_commits_test.go
new file mode 100644
index 000000000..10abb0cad
--- /dev/null
+++ b/internal/gitaly/service/commit/list_all_commits_test.go
@@ -0,0 +1,165 @@
+package commit
+
+import (
+ "errors"
+ "fmt"
+ "io"
+ "os"
+ "os/exec"
+ "path/filepath"
+ "testing"
+
+ "github.com/golang/protobuf/ptypes/timestamp"
+ "github.com/stretchr/testify/require"
+ "gitlab.com/gitlab-org/gitaly/v14/internal/git/gittest"
+ "gitlab.com/gitlab-org/gitaly/v14/internal/helper/text"
+ "gitlab.com/gitlab-org/gitaly/v14/internal/testhelper"
+ "gitlab.com/gitlab-org/gitaly/v14/internal/testhelper/testassert"
+ "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb"
+)
+
+func TestListAllCommits(t *testing.T) {
+ receiveCommits := func(t *testing.T, stream gitalypb.CommitService_ListAllCommitsClient) []*gitalypb.GitCommit {
+ t.Helper()
+
+ var commits []*gitalypb.GitCommit
+ for {
+ response, err := stream.Recv()
+ if errors.Is(err, io.EOF) {
+ break
+ }
+ require.NoError(t, err)
+
+ commits = append(commits, response.Commits...)
+ }
+
+ return commits
+ }
+
+ ctx, cancel := testhelper.Context()
+ defer cancel()
+
+ t.Run("empty repo", func(t *testing.T) {
+ cfg, client := setupCommitService(t)
+
+ repo, _, cleanup := gittest.InitBareRepoAt(t, cfg, cfg.Storages[0])
+ defer cleanup()
+
+ stream, err := client.ListAllCommits(ctx, &gitalypb.ListAllCommitsRequest{
+ Repository: repo,
+ })
+ require.NoError(t, err)
+
+ require.Empty(t, receiveCommits(t, stream))
+ })
+
+ t.Run("normal repo", func(t *testing.T) {
+ _, repo, _, client := setupCommitServiceWithRepo(t, true)
+
+ stream, err := client.ListAllCommits(ctx, &gitalypb.ListAllCommitsRequest{
+ Repository: repo,
+ })
+ require.NoError(t, err)
+
+ commits := receiveCommits(t, stream)
+ require.Greater(t, len(commits), 350)
+
+ // Build a map of received commits by their OID so that we can easily compare a
+ // subset via `testassert.ProtoEqual()`. Ideally, we'd just use `require.Subset()`,
+ // but that doesn't work with protobuf messages.
+ commitsByID := make(map[string]*gitalypb.GitCommit)
+ for _, commit := range commits {
+ commitsByID[commit.Id] = commit
+ }
+
+ // We've got quite a bunch of commits, so let's only compare a small subset to be
+ // sure that commits are correctly read.
+ for _, oid := range []string{
+ "0031876facac3f2b2702a0e53a26e89939a42209",
+ "48ca272b947f49eee601639d743784a176574a09",
+ "335bc94d5b7369b10251e612158da2e4a4aaa2a5",
+ "bf6e164cac2dc32b1f391ca4290badcbe4ffc5fb",
+ } {
+ testassert.ProtoEqual(t, gittest.CommitsByID[oid], commitsByID[oid])
+ }
+ })
+
+ t.Run("pagination", func(t *testing.T) {
+ _, repo, _, client := setupCommitServiceWithRepo(t, true)
+
+ stream, err := client.ListAllCommits(ctx, &gitalypb.ListAllCommitsRequest{
+ Repository: repo,
+ PaginationParams: &gitalypb.PaginationParameter{
+ PageToken: "1039376155a0d507eba0ea95c29f8f5b983ea34b",
+ Limit: 1,
+ },
+ })
+ require.NoError(t, err)
+
+ testassert.ProtoEqual(t, []*gitalypb.GitCommit{
+ gittest.CommitsByID["54188278422b1fa877c2e71c4e37fc6640a58ad1"],
+ }, receiveCommits(t, stream))
+ })
+
+ t.Run("quarantine directory", func(t *testing.T) {
+ cfg, repo, repoPath, client := setupCommitServiceWithRepo(t, true)
+
+ quarantineDir := filepath.Join("objects", "incoming-123456")
+ require.NoError(t, os.Mkdir(filepath.Join(repoPath, quarantineDir), 0777))
+
+ repo.GitObjectDirectory = quarantineDir
+ repo.GitAlternateObjectDirectories = nil
+
+ // There are no quarantined objects yet, so none should be returned
+ // here.
+ stream, err := client.ListAllCommits(ctx, &gitalypb.ListAllCommitsRequest{
+ Repository: repo,
+ })
+ require.NoError(t, err)
+ require.Empty(t, receiveCommits(t, stream))
+
+ treeID := text.ChompBytes(gittest.Exec(t, cfg, "-C", repoPath, "rev-parse", "HEAD^{tree}"))
+
+ // We cannot easily spawn a command with an object directory, so we just do so
+ // manually here and write the commit into the quarantine object directory.
+ commitTree := exec.Command(cfg.Git.BinPath, "-C", repoPath,
+ "-c", "user.name=John Doe",
+ "-c", "user.email=john.doe@example.com",
+ "commit-tree", treeID, "-m", "An empty commit")
+ commitTree.Env = []string{
+ "GIT_AUTHOR_DATE=1600000000 +0200",
+ "GIT_COMMITTER_DATE=1600000001 +0200",
+ fmt.Sprintf("GIT_OBJECT_DIRECTORY=%s", quarantineDir),
+ fmt.Sprintf("GIT_ALTERNATE_OBJECT_DIRECTORIES=%s", filepath.Join(repoPath, "objects")),
+ }
+
+ commitID, err := commitTree.Output()
+ require.NoError(t, err)
+
+ // We now expect only the quarantined commit to be returned.
+ stream, err = client.ListAllCommits(ctx, &gitalypb.ListAllCommitsRequest{
+ Repository: repo,
+ })
+ require.NoError(t, err)
+
+ require.Equal(t, []*gitalypb.GitCommit{{
+ Id: text.ChompBytes(commitID),
+ Subject: []byte("An empty commit"),
+ Body: []byte("An empty commit\n"),
+ BodySize: 16,
+ TreeId: treeID,
+ Author: &gitalypb.CommitAuthor{
+ Name: []byte("John Doe"),
+ Email: []byte("john.doe@example.com"),
+ Date: &timestamp.Timestamp{Seconds: 1600000000},
+ Timezone: []byte("+0200"),
+ },
+ Committer: &gitalypb.CommitAuthor{
+ Name: []byte("John Doe"),
+ Email: []byte("john.doe@example.com"),
+ Date: &timestamp.Timestamp{Seconds: 1600000001},
+ Timezone: []byte("+0200"),
+ },
+ }}, receiveCommits(t, stream))
+ })
+}
diff --git a/internal/gitaly/service/commit/list_commits.go b/internal/gitaly/service/commit/list_commits.go
new file mode 100644
index 000000000..978b7e96a
--- /dev/null
+++ b/internal/gitaly/service/commit/list_commits.go
@@ -0,0 +1,141 @@
+package commit
+
+import (
+ "errors"
+ "fmt"
+ "strings"
+
+ "gitlab.com/gitlab-org/gitaly/v14/internal/git"
+ "gitlab.com/gitlab-org/gitaly/v14/internal/git/catfile"
+ "gitlab.com/gitlab-org/gitaly/v14/internal/git/gitpipe"
+ "gitlab.com/gitlab-org/gitaly/v14/internal/helper"
+ "gitlab.com/gitlab-org/gitaly/v14/internal/helper/chunk"
+ "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb"
+)
+
+func verifyListCommitsRequest(request *gitalypb.ListCommitsRequest) error {
+ if request.GetRepository() == nil {
+ return errors.New("empty repository")
+ }
+ if len(request.GetRevisions()) == 0 {
+ return errors.New("missing revisions")
+ }
+ for _, revision := range request.Revisions {
+ if strings.HasPrefix(revision, "-") && revision != "--all" && revision != "--not" {
+ return fmt.Errorf("invalid revision: %q", revision)
+ }
+ }
+ return nil
+}
+
+func (s *server) ListCommits(
+ request *gitalypb.ListCommitsRequest,
+ stream gitalypb.CommitService_ListCommitsServer,
+) error {
+ if err := verifyListCommitsRequest(request); err != nil {
+ return helper.ErrInvalidArgument(err)
+ }
+
+ ctx := stream.Context()
+ repo := s.localrepo(request.GetRepository())
+
+ catfileProcess, err := s.catfileCache.BatchProcess(ctx, repo)
+ if err != nil {
+ return helper.ErrInternal(fmt.Errorf("creating catfile process: %w", err))
+ }
+
+ revlistOptions := []gitpipe.RevlistOption{}
+
+ switch request.GetOrder() {
+ case gitalypb.ListCommitsRequest_NONE:
+ // Nothing to do, we use default sorting.
+ case gitalypb.ListCommitsRequest_TOPO:
+ revlistOptions = append(revlistOptions, gitpipe.WithOrder(gitpipe.OrderTopo))
+ case gitalypb.ListCommitsRequest_DATE:
+ revlistOptions = append(revlistOptions, gitpipe.WithOrder(gitpipe.OrderDate))
+ }
+
+ if request.GetMaxParents() > 0 {
+ revlistOptions = append(revlistOptions, gitpipe.WithMaxParents(uint(request.GetMaxParents())))
+ }
+
+ if request.GetDisableWalk() {
+ revlistOptions = append(revlistOptions, gitpipe.WithDisabledWalk())
+ }
+
+ if request.GetFirstParent() {
+ revlistOptions = append(revlistOptions, gitpipe.WithFirstParent())
+ }
+
+ if request.GetBefore() != nil {
+ revlistOptions = append(revlistOptions, gitpipe.WithBefore(request.GetBefore().AsTime()))
+ }
+
+ if request.GetAfter() != nil {
+ revlistOptions = append(revlistOptions, gitpipe.WithAfter(request.GetAfter().AsTime()))
+ }
+
+ if len(request.GetAuthor()) != 0 {
+ revlistOptions = append(revlistOptions, gitpipe.WithAuthor(request.GetAuthor()))
+ }
+
+ revlistIter := gitpipe.Revlist(ctx, repo, request.GetRevisions(), revlistOptions...)
+
+ // If we've got a pagination token, then we will only start to print commits as soon as
+ // we've seen the token.
+ if token := request.GetPaginationParams().GetPageToken(); token != "" {
+ tokenSeen := false
+ revlistIter = gitpipe.RevlistFilter(ctx, revlistIter, func(r gitpipe.RevlistResult) bool {
+ if !tokenSeen {
+ tokenSeen = r.OID == git.ObjectID(token)
+ // We also skip the token itself, thus we always return `false`
+ // here.
+ return false
+ }
+
+ return true
+ })
+ }
+
+ catfileInfoIter := gitpipe.CatfileInfo(ctx, catfileProcess, revlistIter)
+ catfileObjectIter := gitpipe.CatfileObject(ctx, catfileProcess, catfileInfoIter)
+
+ chunker := chunk.New(&commitsSender{
+ send: func(commits []*gitalypb.GitCommit) error {
+ return stream.Send(&gitalypb.ListCommitsResponse{
+ Commits: commits,
+ })
+ },
+ })
+
+ limit := request.GetPaginationParams().GetLimit()
+
+ for i := int32(0); catfileObjectIter.Next(); i++ {
+ // If we hit the pagination limit, then we stop sending commits even if there are
+ // more commits in the pipeline.
+ if limit > 0 && limit <= i {
+ break
+ }
+
+ object := catfileObjectIter.Result()
+
+ commit, err := catfile.ParseCommit(object.ObjectReader, object.ObjectInfo)
+ if err != nil {
+ return helper.ErrInternal(fmt.Errorf("parsing commit: %w", err))
+ }
+
+ if err := chunker.Send(commit); err != nil {
+ return helper.ErrInternal(fmt.Errorf("sending commit: %w", err))
+ }
+ }
+
+ if err := catfileObjectIter.Err(); err != nil {
+ return helper.ErrInternal(fmt.Errorf("iterating objects: %w", err))
+ }
+
+ if err := chunker.Flush(); err != nil {
+ return helper.ErrInternal(fmt.Errorf("flushing commits: %w", err))
+ }
+
+ return nil
+}
diff --git a/internal/gitaly/service/commit/list_commits_test.go b/internal/gitaly/service/commit/list_commits_test.go
new file mode 100644
index 000000000..963582078
--- /dev/null
+++ b/internal/gitaly/service/commit/list_commits_test.go
@@ -0,0 +1,268 @@
+package commit
+
+import (
+ "errors"
+ "io"
+ "testing"
+
+ "github.com/golang/protobuf/ptypes/timestamp"
+ "github.com/stretchr/testify/require"
+ "gitlab.com/gitlab-org/gitaly/v14/internal/git/gittest"
+ "gitlab.com/gitlab-org/gitaly/v14/internal/testhelper"
+ "gitlab.com/gitlab-org/gitaly/v14/internal/testhelper/testassert"
+ "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb"
+)
+
+func TestListCommits(t *testing.T) {
+ _, repo, _, client := setupCommitServiceWithRepo(t, true)
+
+ for _, tc := range []struct {
+ desc string
+ request *gitalypb.ListCommitsRequest
+ expectedCommits []*gitalypb.GitCommit
+ expectedErr error
+ }{
+ {
+ desc: "single revision",
+ request: &gitalypb.ListCommitsRequest{
+ Repository: repo,
+ Revisions: []string{
+ "0031876facac3f2b2702a0e53a26e89939a42209",
+ },
+ },
+ expectedCommits: []*gitalypb.GitCommit{
+ gittest.CommitsByID["0031876facac3f2b2702a0e53a26e89939a42209"],
+ gittest.CommitsByID["bf6e164cac2dc32b1f391ca4290badcbe4ffc5fb"],
+ gittest.CommitsByID["48ca272b947f49eee601639d743784a176574a09"],
+ gittest.CommitsByID["9d526f87b82e2b2fd231ca44c95508e5e85624ca"],
+ gittest.CommitsByID["335bc94d5b7369b10251e612158da2e4a4aaa2a5"],
+ gittest.CommitsByID["1039376155a0d507eba0ea95c29f8f5b983ea34b"],
+ gittest.CommitsByID["54188278422b1fa877c2e71c4e37fc6640a58ad1"],
+ gittest.CommitsByID["8b9270332688d58e25206601900ee5618fab2390"],
+ gittest.CommitsByID["f9220df47bce1530e90c189064d301bfc8ceb5ab"],
+ gittest.CommitsByID["40d408f89c1fd26b7d02e891568f880afe06a9f8"],
+ gittest.CommitsByID["df914c609a1e16d7d68e4a61777ff5d6f6b6fde3"],
+ gittest.CommitsByID["6762605237fc246ae146ac64ecb467f71d609120"],
+ gittest.CommitsByID["79b06233d3dc769921576771a4e8bee4b439595d"],
+ gittest.CommitsByID["1a0b36b3cdad1d2ee32457c102a8c0b7056fa863"],
+ },
+ },
+ {
+ desc: "single revision with limit",
+ request: &gitalypb.ListCommitsRequest{
+ Repository: repo,
+ Revisions: []string{
+ "0031876facac3f2b2702a0e53a26e89939a42209",
+ },
+ PaginationParams: &gitalypb.PaginationParameter{
+ Limit: 2,
+ },
+ },
+ expectedCommits: []*gitalypb.GitCommit{
+ gittest.CommitsByID["0031876facac3f2b2702a0e53a26e89939a42209"],
+ gittest.CommitsByID["bf6e164cac2dc32b1f391ca4290badcbe4ffc5fb"],
+ },
+ },
+ {
+ desc: "single revision with page token",
+ request: &gitalypb.ListCommitsRequest{
+ Repository: repo,
+ Revisions: []string{
+ "0031876facac3f2b2702a0e53a26e89939a42209",
+ },
+ PaginationParams: &gitalypb.PaginationParameter{
+ PageToken: "79b06233d3dc769921576771a4e8bee4b439595d",
+ },
+ },
+ expectedCommits: []*gitalypb.GitCommit{
+ gittest.CommitsByID["1a0b36b3cdad1d2ee32457c102a8c0b7056fa863"],
+ },
+ },
+ {
+ desc: "revision range",
+ request: &gitalypb.ListCommitsRequest{
+ Repository: repo,
+ Revisions: []string{
+ "^0031876facac3f2b2702a0e53a26e89939a42209~",
+ "0031876facac3f2b2702a0e53a26e89939a42209",
+ },
+ },
+ expectedCommits: []*gitalypb.GitCommit{
+ gittest.CommitsByID["0031876facac3f2b2702a0e53a26e89939a42209"],
+ gittest.CommitsByID["48ca272b947f49eee601639d743784a176574a09"],
+ gittest.CommitsByID["335bc94d5b7369b10251e612158da2e4a4aaa2a5"],
+ },
+ },
+ {
+ desc: "revisions with sort topo order",
+ request: &gitalypb.ListCommitsRequest{
+ Repository: repo,
+ Revisions: []string{
+ "master~2",
+ "^master~4",
+ "flat-path",
+ "^flat-path~",
+ },
+ Order: gitalypb.ListCommitsRequest_TOPO,
+ },
+ expectedCommits: []*gitalypb.GitCommit{
+ gittest.CommitsByID["60ecb67744cb56576c30214ff52294f8ce2def98"],
+ gittest.CommitsByID["55bc176024cfa3baaceb71db584c7e5df900ea65"],
+ gittest.CommitsByID["e63f41fe459e62e1228fcef60d7189127aeba95a"],
+ gittest.CommitsByID["4a24d82dbca5c11c61556f3b35ca472b7463187e"],
+ // This commit is sorted differently compared to the following test.
+ gittest.CommitsByID["ce369011c189f62c815f5971d096b26759bab0d1"],
+ },
+ },
+ {
+ desc: "revisions with sort date order",
+ request: &gitalypb.ListCommitsRequest{
+ Repository: repo,
+ Revisions: []string{
+ "master~2",
+ "^master~4",
+ "flat-path",
+ "^flat-path~",
+ },
+ Order: gitalypb.ListCommitsRequest_DATE,
+ },
+ expectedCommits: []*gitalypb.GitCommit{
+ gittest.CommitsByID["60ecb67744cb56576c30214ff52294f8ce2def98"],
+ gittest.CommitsByID["55bc176024cfa3baaceb71db584c7e5df900ea65"],
+ // This commit is sorted differently compared to the preceding test.
+ gittest.CommitsByID["ce369011c189f62c815f5971d096b26759bab0d1"],
+ gittest.CommitsByID["e63f41fe459e62e1228fcef60d7189127aeba95a"],
+ gittest.CommitsByID["4a24d82dbca5c11c61556f3b35ca472b7463187e"],
+ },
+ },
+ {
+ desc: "revision with pseudo-revisions",
+ request: &gitalypb.ListCommitsRequest{
+ Repository: repo,
+ Revisions: []string{
+ "0031876facac3f2b2702a0e53a26e89939a42209",
+ "--not",
+ "--all",
+ },
+ },
+ expectedCommits: nil,
+ },
+ {
+ desc: "only non-merge commits",
+ request: &gitalypb.ListCommitsRequest{
+ Repository: repo,
+ Revisions: []string{
+ "0031876facac3f2b2702a0e53a26e89939a42209",
+ },
+ MaxParents: 1,
+ },
+ expectedCommits: []*gitalypb.GitCommit{
+ gittest.CommitsByID["bf6e164cac2dc32b1f391ca4290badcbe4ffc5fb"],
+ gittest.CommitsByID["48ca272b947f49eee601639d743784a176574a09"],
+ gittest.CommitsByID["9d526f87b82e2b2fd231ca44c95508e5e85624ca"],
+ gittest.CommitsByID["335bc94d5b7369b10251e612158da2e4a4aaa2a5"],
+ gittest.CommitsByID["1039376155a0d507eba0ea95c29f8f5b983ea34b"],
+ gittest.CommitsByID["54188278422b1fa877c2e71c4e37fc6640a58ad1"],
+ gittest.CommitsByID["8b9270332688d58e25206601900ee5618fab2390"],
+ gittest.CommitsByID["f9220df47bce1530e90c189064d301bfc8ceb5ab"],
+ gittest.CommitsByID["40d408f89c1fd26b7d02e891568f880afe06a9f8"],
+ gittest.CommitsByID["df914c609a1e16d7d68e4a61777ff5d6f6b6fde3"],
+ gittest.CommitsByID["6762605237fc246ae146ac64ecb467f71d609120"],
+ gittest.CommitsByID["79b06233d3dc769921576771a4e8bee4b439595d"],
+ gittest.CommitsByID["1a0b36b3cdad1d2ee32457c102a8c0b7056fa863"],
+ },
+ },
+ {
+ desc: "disabled walk",
+ request: &gitalypb.ListCommitsRequest{
+ Repository: repo,
+ Revisions: []string{
+ "0031876facac3f2b2702a0e53a26e89939a42209",
+ },
+ DisableWalk: true,
+ },
+ expectedCommits: []*gitalypb.GitCommit{
+ gittest.CommitsByID["0031876facac3f2b2702a0e53a26e89939a42209"],
+ },
+ },
+ {
+ desc: "first-parent",
+ request: &gitalypb.ListCommitsRequest{
+ Repository: repo,
+ Revisions: []string{
+ "0031876facac3f2b2702a0e53a26e89939a42209",
+ },
+ FirstParent: true,
+ },
+ expectedCommits: []*gitalypb.GitCommit{
+ gittest.CommitsByID["0031876facac3f2b2702a0e53a26e89939a42209"],
+ gittest.CommitsByID["bf6e164cac2dc32b1f391ca4290badcbe4ffc5fb"],
+ gittest.CommitsByID["9d526f87b82e2b2fd231ca44c95508e5e85624ca"],
+ gittest.CommitsByID["1039376155a0d507eba0ea95c29f8f5b983ea34b"],
+ gittest.CommitsByID["54188278422b1fa877c2e71c4e37fc6640a58ad1"],
+ gittest.CommitsByID["8b9270332688d58e25206601900ee5618fab2390"],
+ gittest.CommitsByID["f9220df47bce1530e90c189064d301bfc8ceb5ab"],
+ gittest.CommitsByID["40d408f89c1fd26b7d02e891568f880afe06a9f8"],
+ gittest.CommitsByID["df914c609a1e16d7d68e4a61777ff5d6f6b6fde3"],
+ gittest.CommitsByID["6762605237fc246ae146ac64ecb467f71d609120"],
+ gittest.CommitsByID["79b06233d3dc769921576771a4e8bee4b439595d"],
+ gittest.CommitsByID["1a0b36b3cdad1d2ee32457c102a8c0b7056fa863"],
+ },
+ },
+ {
+ desc: "author",
+ request: &gitalypb.ListCommitsRequest{
+ Repository: repo,
+ Revisions: []string{
+ "0031876facac3f2b2702a0e53a26e89939a42209",
+ },
+ Author: []byte("Dmitriy"),
+ },
+ expectedCommits: []*gitalypb.GitCommit{
+ gittest.CommitsByID["1a0b36b3cdad1d2ee32457c102a8c0b7056fa863"],
+ },
+ },
+ {
+ desc: "time range",
+ request: &gitalypb.ListCommitsRequest{
+ Repository: repo,
+ Revisions: []string{
+ "0031876facac3f2b2702a0e53a26e89939a42209",
+ },
+ After: &timestamp.Timestamp{
+ Seconds: 1393488197,
+ },
+ Before: &timestamp.Timestamp{
+ Seconds: 1393488199,
+ },
+ },
+ expectedCommits: []*gitalypb.GitCommit{
+ gittest.CommitsByID["1a0b36b3cdad1d2ee32457c102a8c0b7056fa863"],
+ },
+ },
+ } {
+ t.Run(tc.desc, func(t *testing.T) {
+ ctx, cancel := testhelper.Context()
+ defer cancel()
+
+ stream, err := client.ListCommits(ctx, tc.request)
+ require.NoError(t, err)
+
+ var commits []*gitalypb.GitCommit
+ for {
+ response, err := stream.Recv()
+ if err != nil {
+ if errors.Is(err, io.EOF) {
+ break
+ }
+
+ require.Equal(t, tc.expectedErr, err)
+ }
+
+ commits = append(commits, response.Commits...)
+ }
+
+ testassert.ProtoEqual(t, tc.expectedCommits, commits)
+ })
+ }
+}
diff --git a/proto/commit.proto b/proto/commit.proto
index 050d0a66a..d66a996d7 100644
--- a/proto/commit.proto
+++ b/proto/commit.proto
@@ -9,6 +9,25 @@ import "shared.proto";
import "google/protobuf/timestamp.proto";
service CommitService {
+
+ // ListCommits lists all commits reachable via a set of references by doing a
+ // graph walk. This deprecates ListNewCommits, FindAllCommits, FindCommits
+ // (except Follow is not yet supported) and CommitsBetweenRequest. Any
+ // unknown revisions will cause the RPC to fail.
+ rpc ListCommits(ListCommitsRequest) returns (stream ListCommitsResponse) {
+ option (op_type) = {
+ op: ACCESSOR
+ };
+ }
+
+ // ListAllCommits lists all commits present in the repository, including
+ // those not reachable by any reference.
+ rpc ListAllCommits(ListAllCommitsRequest) returns (stream ListAllCommitsResponse) {
+ option (op_type) = {
+ op: ACCESSOR
+ };
+ }
+
rpc CommitIsAncestor(CommitIsAncestorRequest) returns (CommitIsAncestorResponse) {
option (op_type) = {
op: ACCESSOR
@@ -100,6 +119,7 @@ service CommitService {
op: ACCESSOR
};
}
+
rpc FilterShasWithSignatures(stream FilterShasWithSignaturesRequest) returns (stream FilterShasWithSignaturesResponse) {
option (op_type) = {
op: ACCESSOR
@@ -118,6 +138,88 @@ service CommitService {
}
}
+// ListCommitsRequest is a request for the ListCommits RPC.
+message ListCommitsRequest {
+ // Order is the order in which commits shoud be traversed.
+ enum Order {
+ // NONE defaults to reverse chronological order.
+ NONE = 0;
+ // TOPO order will cause no parents to be shown before all of its children
+ // are shown. Furthermore, multiple lines of history will not be
+ // intermixed.
+ TOPO = 1;
+ // DATE order will cause no parents to be shown before all of its children
+ // are shown. Otherwise, commits are shown in commit timestamp order. This
+ // can cause history to be shown intermixed.
+ DATE = 2;
+ };
+
+ // Repository is the repository in which commits should be searched for.
+ Repository repository = 1 [(target_repository)=true];
+
+ // Revisions is the set of revisions which should be walked to enumerate
+ // commits. Accepts all notation as documented in gitrevisions(7) as well as
+ // the pseudo-revisions `--not` and `--all` as documented in git-rev-list(1).
+ // Must not be empty.
+ repeated string revisions = 2;
+
+ // PaginationParams allows implementation of pagination. The page token is
+ // the last commit OID that was sent. It's expected to be the full object ID
+ // to guard against ambigious OIDs.
+ PaginationParameter pagination_params = 3;
+
+ // Order is the order in which commits should be traversed. Please refer to
+ // the enum's documentation for further information.
+ Order order = 4;
+
+ // MaxParents will skip all commits which have more than the specified number
+ // of parents. If set to `0`, no filtering by parents will happen. If set to
+ // `1`, all merge commits will be omitted.
+ uint32 max_parents = 5;
+
+ // DisableWalk will disable walking the graph. As a result, only commits
+ // which are immediately referenced by Revisions will be returned.
+ bool disable_walk = 6;
+
+ // FirstParent will cause the graph walk to only go down the first-parent
+ // chain of commits. Merge commits will thus only cause the mainline to be
+ // enumerated.
+ bool first_parent = 7;
+
+ // After will only list commits which are more recent than the specified date.
+ google.protobuf.Timestamp after = 8;
+
+ // After will only list commits which are older than the specified date.
+ google.protobuf.Timestamp before = 9;
+
+ // Author will only list commits whose author matches the given pattern,
+ // which is a regular expression.
+ bytes author = 10;
+}
+
+// ListCommitsResponse is a response for the ListCommits RPC.
+message ListCommitsResponse {
+ // Commits is the list of commits found.
+ repeated GitCommit commits = 1;
+}
+
+// ListAllCommitsRequest is a request for the ListAllCommits RPC.
+message ListAllCommitsRequest {
+ // Repository is the repository in which commits should be searched for.
+ Repository repository = 1 [(target_repository)=true];
+
+ // PaginationParams allows implementation of pagination. The page token is
+ // the last commit OID that was sent. It's expected to be the full object ID
+ // to guard against ambigious OIDs.
+ PaginationParameter pagination_params = 2;
+}
+
+// ListAllCommitsResponse is a response for the ListAllCommits RPC.
+message ListAllCommitsResponse {
+ // Commits is the list of commits found.
+ repeated GitCommit commits = 1;
+}
+
message CommitStatsRequest {
Repository repository = 1 [(target_repository)=true];
bytes revision = 2;
diff --git a/proto/go/gitalypb/commit.pb.go b/proto/go/gitalypb/commit.pb.go
index 09328e157..b9a65c6be 100644
--- a/proto/go/gitalypb/commit.pb.go
+++ b/proto/go/gitalypb/commit.pb.go
@@ -21,6 +21,63 @@ const (
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
+// Order is the order in which commits shoud be traversed.
+type ListCommitsRequest_Order int32
+
+const (
+ // NONE defaults to reverse chronological order.
+ ListCommitsRequest_NONE ListCommitsRequest_Order = 0
+ // TOPO order will cause no parents to be shown before all of its children
+ // are shown. Furthermore, multiple lines of history will not be
+ // intermixed.
+ ListCommitsRequest_TOPO ListCommitsRequest_Order = 1
+ // DATE order will cause no parents to be shown before all of its children
+ // are shown. Otherwise, commits are shown in commit timestamp order. This
+ // can cause history to be shown intermixed.
+ ListCommitsRequest_DATE ListCommitsRequest_Order = 2
+)
+
+// Enum value maps for ListCommitsRequest_Order.
+var (
+ ListCommitsRequest_Order_name = map[int32]string{
+ 0: "NONE",
+ 1: "TOPO",
+ 2: "DATE",
+ }
+ ListCommitsRequest_Order_value = map[string]int32{
+ "NONE": 0,
+ "TOPO": 1,
+ "DATE": 2,
+ }
+)
+
+func (x ListCommitsRequest_Order) Enum() *ListCommitsRequest_Order {
+ p := new(ListCommitsRequest_Order)
+ *p = x
+ return p
+}
+
+func (x ListCommitsRequest_Order) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (ListCommitsRequest_Order) Descriptor() protoreflect.EnumDescriptor {
+ return file_commit_proto_enumTypes[0].Descriptor()
+}
+
+func (ListCommitsRequest_Order) Type() protoreflect.EnumType {
+ return &file_commit_proto_enumTypes[0]
+}
+
+func (x ListCommitsRequest_Order) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use ListCommitsRequest_Order.Descriptor instead.
+func (ListCommitsRequest_Order) EnumDescriptor() ([]byte, []int) {
+ return file_commit_proto_rawDescGZIP(), []int{0, 0}
+}
+
// TODO: Replace this enum with ObjectType in shared.proto
type TreeEntryResponse_ObjectType int32
@@ -58,11 +115,11 @@ func (x TreeEntryResponse_ObjectType) String() string {
}
func (TreeEntryResponse_ObjectType) Descriptor() protoreflect.EnumDescriptor {
- return file_commit_proto_enumTypes[0].Descriptor()
+ return file_commit_proto_enumTypes[1].Descriptor()
}
func (TreeEntryResponse_ObjectType) Type() protoreflect.EnumType {
- return &file_commit_proto_enumTypes[0]
+ return &file_commit_proto_enumTypes[1]
}
func (x TreeEntryResponse_ObjectType) Number() protoreflect.EnumNumber {
@@ -71,7 +128,7 @@ func (x TreeEntryResponse_ObjectType) Number() protoreflect.EnumNumber {
// Deprecated: Use TreeEntryResponse_ObjectType.Descriptor instead.
func (TreeEntryResponse_ObjectType) EnumDescriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{5, 0}
+ return file_commit_proto_rawDescGZIP(), []int{9, 0}
}
// TODO: Replace this enum with ObjectType in shared.proto
@@ -108,11 +165,11 @@ func (x TreeEntry_EntryType) String() string {
}
func (TreeEntry_EntryType) Descriptor() protoreflect.EnumDescriptor {
- return file_commit_proto_enumTypes[1].Descriptor()
+ return file_commit_proto_enumTypes[2].Descriptor()
}
func (TreeEntry_EntryType) Type() protoreflect.EnumType {
- return &file_commit_proto_enumTypes[1]
+ return &file_commit_proto_enumTypes[2]
}
func (x TreeEntry_EntryType) Number() protoreflect.EnumNumber {
@@ -121,7 +178,7 @@ func (x TreeEntry_EntryType) Number() protoreflect.EnumNumber {
// Deprecated: Use TreeEntry_EntryType.Descriptor instead.
func (TreeEntry_EntryType) EnumDescriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{12, 0}
+ return file_commit_proto_rawDescGZIP(), []int{16, 0}
}
type FindAllCommitsRequest_Order int32
@@ -157,11 +214,11 @@ func (x FindAllCommitsRequest_Order) String() string {
}
func (FindAllCommitsRequest_Order) Descriptor() protoreflect.EnumDescriptor {
- return file_commit_proto_enumTypes[2].Descriptor()
+ return file_commit_proto_enumTypes[3].Descriptor()
}
func (FindAllCommitsRequest_Order) Type() protoreflect.EnumType {
- return &file_commit_proto_enumTypes[2]
+ return &file_commit_proto_enumTypes[3]
}
func (x FindAllCommitsRequest_Order) Number() protoreflect.EnumNumber {
@@ -170,7 +227,7 @@ func (x FindAllCommitsRequest_Order) Number() protoreflect.EnumNumber {
// Deprecated: Use FindAllCommitsRequest_Order.Descriptor instead.
func (FindAllCommitsRequest_Order) EnumDescriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{23, 0}
+ return file_commit_proto_rawDescGZIP(), []int{27, 0}
}
type FindCommitsRequest_Order int32
@@ -203,11 +260,11 @@ func (x FindCommitsRequest_Order) String() string {
}
func (FindCommitsRequest_Order) Descriptor() protoreflect.EnumDescriptor {
- return file_commit_proto_enumTypes[3].Descriptor()
+ return file_commit_proto_enumTypes[4].Descriptor()
}
func (FindCommitsRequest_Order) Type() protoreflect.EnumType {
- return &file_commit_proto_enumTypes[3]
+ return &file_commit_proto_enumTypes[4]
}
func (x FindCommitsRequest_Order) Number() protoreflect.EnumNumber {
@@ -216,7 +273,307 @@ func (x FindCommitsRequest_Order) Number() protoreflect.EnumNumber {
// Deprecated: Use FindCommitsRequest_Order.Descriptor instead.
func (FindCommitsRequest_Order) EnumDescriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{25, 0}
+ return file_commit_proto_rawDescGZIP(), []int{29, 0}
+}
+
+// ListCommitsRequest is a request for the ListCommits RPC.
+type ListCommitsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Repository is the repository in which commits should be searched for.
+ Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
+ // Revisions is the set of revisions which should be walked to enumerate
+ // commits. Accepts all notation as documented in gitrevisions(7) as well as
+ // the pseudo-revisions `--not` and `--all` as documented in git-rev-list(1).
+ // Must not be empty.
+ Revisions []string `protobuf:"bytes,2,rep,name=revisions,proto3" json:"revisions,omitempty"`
+ // PaginationParams allows implementation of pagination. The page token is
+ // the last commit OID that was sent. It's expected to be the full object ID
+ // to guard against ambigious OIDs.
+ PaginationParams *PaginationParameter `protobuf:"bytes,3,opt,name=pagination_params,json=paginationParams,proto3" json:"pagination_params,omitempty"`
+ // Order is the order in which commits should be traversed. Please refer to
+ // the enum's documentation for further information.
+ Order ListCommitsRequest_Order `protobuf:"varint,4,opt,name=order,proto3,enum=gitaly.ListCommitsRequest_Order" json:"order,omitempty"`
+ // MaxParents will skip all commits which have more than the specified number
+ // of parents. If set to `0`, no filtering by parents will happen. If set to
+ // `1`, all merge commits will be omitted.
+ MaxParents uint32 `protobuf:"varint,5,opt,name=max_parents,json=maxParents,proto3" json:"max_parents,omitempty"`
+ // DisableWalk will disable walking the graph. As a result, only commits
+ // which are immediately referenced by Revisions will be returned.
+ DisableWalk bool `protobuf:"varint,6,opt,name=disable_walk,json=disableWalk,proto3" json:"disable_walk,omitempty"`
+ // FirstParent will cause the graph walk to only go down the first-parent
+ // chain of commits. Merge commits will thus only cause the mainline to be
+ // enumerated.
+ FirstParent bool `protobuf:"varint,7,opt,name=first_parent,json=firstParent,proto3" json:"first_parent,omitempty"`
+ // After will only list commits which are more recent than the specified date.
+ After *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=after,proto3" json:"after,omitempty"`
+ // After will only list commits which are older than the specified date.
+ Before *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=before,proto3" json:"before,omitempty"`
+ // Author will only list commits whose author matches the given pattern,
+ // which is a regular expression.
+ Author []byte `protobuf:"bytes,10,opt,name=author,proto3" json:"author,omitempty"`
+}
+
+func (x *ListCommitsRequest) Reset() {
+ *x = ListCommitsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_commit_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListCommitsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListCommitsRequest) ProtoMessage() {}
+
+func (x *ListCommitsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_commit_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListCommitsRequest.ProtoReflect.Descriptor instead.
+func (*ListCommitsRequest) Descriptor() ([]byte, []int) {
+ return file_commit_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *ListCommitsRequest) GetRepository() *Repository {
+ if x != nil {
+ return x.Repository
+ }
+ return nil
+}
+
+func (x *ListCommitsRequest) GetRevisions() []string {
+ if x != nil {
+ return x.Revisions
+ }
+ return nil
+}
+
+func (x *ListCommitsRequest) GetPaginationParams() *PaginationParameter {
+ if x != nil {
+ return x.PaginationParams
+ }
+ return nil
+}
+
+func (x *ListCommitsRequest) GetOrder() ListCommitsRequest_Order {
+ if x != nil {
+ return x.Order
+ }
+ return ListCommitsRequest_NONE
+}
+
+func (x *ListCommitsRequest) GetMaxParents() uint32 {
+ if x != nil {
+ return x.MaxParents
+ }
+ return 0
+}
+
+func (x *ListCommitsRequest) GetDisableWalk() bool {
+ if x != nil {
+ return x.DisableWalk
+ }
+ return false
+}
+
+func (x *ListCommitsRequest) GetFirstParent() bool {
+ if x != nil {
+ return x.FirstParent
+ }
+ return false
+}
+
+func (x *ListCommitsRequest) GetAfter() *timestamppb.Timestamp {
+ if x != nil {
+ return x.After
+ }
+ return nil
+}
+
+func (x *ListCommitsRequest) GetBefore() *timestamppb.Timestamp {
+ if x != nil {
+ return x.Before
+ }
+ return nil
+}
+
+func (x *ListCommitsRequest) GetAuthor() []byte {
+ if x != nil {
+ return x.Author
+ }
+ return nil
+}
+
+// ListCommitsResponse is a response for the ListCommits RPC.
+type ListCommitsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Commits is the list of commits found.
+ Commits []*GitCommit `protobuf:"bytes,1,rep,name=commits,proto3" json:"commits,omitempty"`
+}
+
+func (x *ListCommitsResponse) Reset() {
+ *x = ListCommitsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_commit_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListCommitsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListCommitsResponse) ProtoMessage() {}
+
+func (x *ListCommitsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_commit_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListCommitsResponse.ProtoReflect.Descriptor instead.
+func (*ListCommitsResponse) Descriptor() ([]byte, []int) {
+ return file_commit_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *ListCommitsResponse) GetCommits() []*GitCommit {
+ if x != nil {
+ return x.Commits
+ }
+ return nil
+}
+
+// ListAllCommitsRequest is a request for the ListAllCommits RPC.
+type ListAllCommitsRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Repository is the repository in which commits should be searched for.
+ Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"`
+ // PaginationParams allows implementation of pagination. The page token is
+ // the last commit OID that was sent. It's expected to be the full object ID
+ // to guard against ambigious OIDs.
+ PaginationParams *PaginationParameter `protobuf:"bytes,2,opt,name=pagination_params,json=paginationParams,proto3" json:"pagination_params,omitempty"`
+}
+
+func (x *ListAllCommitsRequest) Reset() {
+ *x = ListAllCommitsRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_commit_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListAllCommitsRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListAllCommitsRequest) ProtoMessage() {}
+
+func (x *ListAllCommitsRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_commit_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListAllCommitsRequest.ProtoReflect.Descriptor instead.
+func (*ListAllCommitsRequest) Descriptor() ([]byte, []int) {
+ return file_commit_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *ListAllCommitsRequest) GetRepository() *Repository {
+ if x != nil {
+ return x.Repository
+ }
+ return nil
+}
+
+func (x *ListAllCommitsRequest) GetPaginationParams() *PaginationParameter {
+ if x != nil {
+ return x.PaginationParams
+ }
+ return nil
+}
+
+// ListAllCommitsResponse is a response for the ListAllCommits RPC.
+type ListAllCommitsResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Commits is the list of commits found.
+ Commits []*GitCommit `protobuf:"bytes,1,rep,name=commits,proto3" json:"commits,omitempty"`
+}
+
+func (x *ListAllCommitsResponse) Reset() {
+ *x = ListAllCommitsResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_commit_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListAllCommitsResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListAllCommitsResponse) ProtoMessage() {}
+
+func (x *ListAllCommitsResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_commit_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListAllCommitsResponse.ProtoReflect.Descriptor instead.
+func (*ListAllCommitsResponse) Descriptor() ([]byte, []int) {
+ return file_commit_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *ListAllCommitsResponse) GetCommits() []*GitCommit {
+ if x != nil {
+ return x.Commits
+ }
+ return nil
}
type CommitStatsRequest struct {
@@ -231,7 +588,7 @@ type CommitStatsRequest struct {
func (x *CommitStatsRequest) Reset() {
*x = CommitStatsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[0]
+ mi := &file_commit_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -244,7 +601,7 @@ func (x *CommitStatsRequest) String() string {
func (*CommitStatsRequest) ProtoMessage() {}
func (x *CommitStatsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[0]
+ mi := &file_commit_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -257,7 +614,7 @@ func (x *CommitStatsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use CommitStatsRequest.ProtoReflect.Descriptor instead.
func (*CommitStatsRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{0}
+ return file_commit_proto_rawDescGZIP(), []int{4}
}
func (x *CommitStatsRequest) GetRepository() *Repository {
@@ -288,7 +645,7 @@ type CommitStatsResponse struct {
func (x *CommitStatsResponse) Reset() {
*x = CommitStatsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[1]
+ mi := &file_commit_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -301,7 +658,7 @@ func (x *CommitStatsResponse) String() string {
func (*CommitStatsResponse) ProtoMessage() {}
func (x *CommitStatsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[1]
+ mi := &file_commit_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -314,7 +671,7 @@ func (x *CommitStatsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use CommitStatsResponse.ProtoReflect.Descriptor instead.
func (*CommitStatsResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{1}
+ return file_commit_proto_rawDescGZIP(), []int{5}
}
func (x *CommitStatsResponse) GetOid() string {
@@ -351,7 +708,7 @@ type CommitIsAncestorRequest struct {
func (x *CommitIsAncestorRequest) Reset() {
*x = CommitIsAncestorRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[2]
+ mi := &file_commit_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -364,7 +721,7 @@ func (x *CommitIsAncestorRequest) String() string {
func (*CommitIsAncestorRequest) ProtoMessage() {}
func (x *CommitIsAncestorRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[2]
+ mi := &file_commit_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -377,7 +734,7 @@ func (x *CommitIsAncestorRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use CommitIsAncestorRequest.ProtoReflect.Descriptor instead.
func (*CommitIsAncestorRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{2}
+ return file_commit_proto_rawDescGZIP(), []int{6}
}
func (x *CommitIsAncestorRequest) GetRepository() *Repository {
@@ -412,7 +769,7 @@ type CommitIsAncestorResponse struct {
func (x *CommitIsAncestorResponse) Reset() {
*x = CommitIsAncestorResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[3]
+ mi := &file_commit_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -425,7 +782,7 @@ func (x *CommitIsAncestorResponse) String() string {
func (*CommitIsAncestorResponse) ProtoMessage() {}
func (x *CommitIsAncestorResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[3]
+ mi := &file_commit_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -438,7 +795,7 @@ func (x *CommitIsAncestorResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use CommitIsAncestorResponse.ProtoReflect.Descriptor instead.
func (*CommitIsAncestorResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{3}
+ return file_commit_proto_rawDescGZIP(), []int{7}
}
func (x *CommitIsAncestorResponse) GetValue() bool {
@@ -469,7 +826,7 @@ type TreeEntryRequest struct {
func (x *TreeEntryRequest) Reset() {
*x = TreeEntryRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[4]
+ mi := &file_commit_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -482,7 +839,7 @@ func (x *TreeEntryRequest) String() string {
func (*TreeEntryRequest) ProtoMessage() {}
func (x *TreeEntryRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[4]
+ mi := &file_commit_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -495,7 +852,7 @@ func (x *TreeEntryRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use TreeEntryRequest.ProtoReflect.Descriptor instead.
func (*TreeEntryRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{4}
+ return file_commit_proto_rawDescGZIP(), []int{8}
}
func (x *TreeEntryRequest) GetRepository() *Repository {
@@ -551,7 +908,7 @@ type TreeEntryResponse struct {
func (x *TreeEntryResponse) Reset() {
*x = TreeEntryResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[5]
+ mi := &file_commit_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -564,7 +921,7 @@ func (x *TreeEntryResponse) String() string {
func (*TreeEntryResponse) ProtoMessage() {}
func (x *TreeEntryResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[5]
+ mi := &file_commit_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -577,7 +934,7 @@ func (x *TreeEntryResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use TreeEntryResponse.ProtoReflect.Descriptor instead.
func (*TreeEntryResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{5}
+ return file_commit_proto_rawDescGZIP(), []int{9}
}
func (x *TreeEntryResponse) GetType() TreeEntryResponse_ObjectType {
@@ -633,7 +990,7 @@ type CommitsBetweenRequest struct {
func (x *CommitsBetweenRequest) Reset() {
*x = CommitsBetweenRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[6]
+ mi := &file_commit_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -646,7 +1003,7 @@ func (x *CommitsBetweenRequest) String() string {
func (*CommitsBetweenRequest) ProtoMessage() {}
func (x *CommitsBetweenRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[6]
+ mi := &file_commit_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -659,7 +1016,7 @@ func (x *CommitsBetweenRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use CommitsBetweenRequest.ProtoReflect.Descriptor instead.
func (*CommitsBetweenRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{6}
+ return file_commit_proto_rawDescGZIP(), []int{10}
}
func (x *CommitsBetweenRequest) GetRepository() *Repository {
@@ -701,7 +1058,7 @@ type CommitsBetweenResponse struct {
func (x *CommitsBetweenResponse) Reset() {
*x = CommitsBetweenResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[7]
+ mi := &file_commit_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -714,7 +1071,7 @@ func (x *CommitsBetweenResponse) String() string {
func (*CommitsBetweenResponse) ProtoMessage() {}
func (x *CommitsBetweenResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[7]
+ mi := &file_commit_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -727,7 +1084,7 @@ func (x *CommitsBetweenResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use CommitsBetweenResponse.ProtoReflect.Descriptor instead.
func (*CommitsBetweenResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{7}
+ return file_commit_proto_rawDescGZIP(), []int{11}
}
func (x *CommitsBetweenResponse) GetCommits() []*GitCommit {
@@ -757,7 +1114,7 @@ type CountCommitsRequest struct {
func (x *CountCommitsRequest) Reset() {
*x = CountCommitsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[8]
+ mi := &file_commit_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -770,7 +1127,7 @@ func (x *CountCommitsRequest) String() string {
func (*CountCommitsRequest) ProtoMessage() {}
func (x *CountCommitsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[8]
+ mi := &file_commit_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -783,7 +1140,7 @@ func (x *CountCommitsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use CountCommitsRequest.ProtoReflect.Descriptor instead.
func (*CountCommitsRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{8}
+ return file_commit_proto_rawDescGZIP(), []int{12}
}
func (x *CountCommitsRequest) GetRepository() *Repository {
@@ -860,7 +1217,7 @@ type CountCommitsResponse struct {
func (x *CountCommitsResponse) Reset() {
*x = CountCommitsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[9]
+ mi := &file_commit_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -873,7 +1230,7 @@ func (x *CountCommitsResponse) String() string {
func (*CountCommitsResponse) ProtoMessage() {}
func (x *CountCommitsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[9]
+ mi := &file_commit_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -886,7 +1243,7 @@ func (x *CountCommitsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use CountCommitsResponse.ProtoReflect.Descriptor instead.
func (*CountCommitsResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{9}
+ return file_commit_proto_rawDescGZIP(), []int{13}
}
func (x *CountCommitsResponse) GetCount() int32 {
@@ -910,7 +1267,7 @@ type CountDivergingCommitsRequest struct {
func (x *CountDivergingCommitsRequest) Reset() {
*x = CountDivergingCommitsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[10]
+ mi := &file_commit_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -923,7 +1280,7 @@ func (x *CountDivergingCommitsRequest) String() string {
func (*CountDivergingCommitsRequest) ProtoMessage() {}
func (x *CountDivergingCommitsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[10]
+ mi := &file_commit_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -936,7 +1293,7 @@ func (x *CountDivergingCommitsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use CountDivergingCommitsRequest.ProtoReflect.Descriptor instead.
func (*CountDivergingCommitsRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{10}
+ return file_commit_proto_rawDescGZIP(), []int{14}
}
func (x *CountDivergingCommitsRequest) GetRepository() *Repository {
@@ -979,7 +1336,7 @@ type CountDivergingCommitsResponse struct {
func (x *CountDivergingCommitsResponse) Reset() {
*x = CountDivergingCommitsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[11]
+ mi := &file_commit_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -992,7 +1349,7 @@ func (x *CountDivergingCommitsResponse) String() string {
func (*CountDivergingCommitsResponse) ProtoMessage() {}
func (x *CountDivergingCommitsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[11]
+ mi := &file_commit_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1005,7 +1362,7 @@ func (x *CountDivergingCommitsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use CountDivergingCommitsResponse.ProtoReflect.Descriptor instead.
func (*CountDivergingCommitsResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{11}
+ return file_commit_proto_rawDescGZIP(), []int{15}
}
func (x *CountDivergingCommitsResponse) GetLeftCount() int32 {
@@ -1045,7 +1402,7 @@ type TreeEntry struct {
func (x *TreeEntry) Reset() {
*x = TreeEntry{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[12]
+ mi := &file_commit_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1058,7 +1415,7 @@ func (x *TreeEntry) String() string {
func (*TreeEntry) ProtoMessage() {}
func (x *TreeEntry) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[12]
+ mi := &file_commit_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1071,7 +1428,7 @@ func (x *TreeEntry) ProtoReflect() protoreflect.Message {
// Deprecated: Use TreeEntry.ProtoReflect.Descriptor instead.
func (*TreeEntry) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{12}
+ return file_commit_proto_rawDescGZIP(), []int{16}
}
func (x *TreeEntry) GetOid() string {
@@ -1137,7 +1494,7 @@ type GetTreeEntriesRequest struct {
func (x *GetTreeEntriesRequest) Reset() {
*x = GetTreeEntriesRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[13]
+ mi := &file_commit_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1150,7 +1507,7 @@ func (x *GetTreeEntriesRequest) String() string {
func (*GetTreeEntriesRequest) ProtoMessage() {}
func (x *GetTreeEntriesRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[13]
+ mi := &file_commit_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1163,7 +1520,7 @@ func (x *GetTreeEntriesRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetTreeEntriesRequest.ProtoReflect.Descriptor instead.
func (*GetTreeEntriesRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{13}
+ return file_commit_proto_rawDescGZIP(), []int{17}
}
func (x *GetTreeEntriesRequest) GetRepository() *Repository {
@@ -1205,7 +1562,7 @@ type GetTreeEntriesResponse struct {
func (x *GetTreeEntriesResponse) Reset() {
*x = GetTreeEntriesResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[14]
+ mi := &file_commit_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1218,7 +1575,7 @@ func (x *GetTreeEntriesResponse) String() string {
func (*GetTreeEntriesResponse) ProtoMessage() {}
func (x *GetTreeEntriesResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[14]
+ mi := &file_commit_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1231,7 +1588,7 @@ func (x *GetTreeEntriesResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetTreeEntriesResponse.ProtoReflect.Descriptor instead.
func (*GetTreeEntriesResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{14}
+ return file_commit_proto_rawDescGZIP(), []int{18}
}
func (x *GetTreeEntriesResponse) GetEntries() []*TreeEntry {
@@ -1253,7 +1610,7 @@ type ListFilesRequest struct {
func (x *ListFilesRequest) Reset() {
*x = ListFilesRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[15]
+ mi := &file_commit_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1266,7 +1623,7 @@ func (x *ListFilesRequest) String() string {
func (*ListFilesRequest) ProtoMessage() {}
func (x *ListFilesRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[15]
+ mi := &file_commit_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1279,7 +1636,7 @@ func (x *ListFilesRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListFilesRequest.ProtoReflect.Descriptor instead.
func (*ListFilesRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{15}
+ return file_commit_proto_rawDescGZIP(), []int{19}
}
func (x *ListFilesRequest) GetRepository() *Repository {
@@ -1309,7 +1666,7 @@ type ListFilesResponse struct {
func (x *ListFilesResponse) Reset() {
*x = ListFilesResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[16]
+ mi := &file_commit_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1322,7 +1679,7 @@ func (x *ListFilesResponse) String() string {
func (*ListFilesResponse) ProtoMessage() {}
func (x *ListFilesResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[16]
+ mi := &file_commit_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1335,7 +1692,7 @@ func (x *ListFilesResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListFilesResponse.ProtoReflect.Descriptor instead.
func (*ListFilesResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{16}
+ return file_commit_proto_rawDescGZIP(), []int{20}
}
func (x *ListFilesResponse) GetPaths() [][]byte {
@@ -1358,7 +1715,7 @@ type FindCommitRequest struct {
func (x *FindCommitRequest) Reset() {
*x = FindCommitRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[17]
+ mi := &file_commit_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1371,7 +1728,7 @@ func (x *FindCommitRequest) String() string {
func (*FindCommitRequest) ProtoMessage() {}
func (x *FindCommitRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[17]
+ mi := &file_commit_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1384,7 +1741,7 @@ func (x *FindCommitRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use FindCommitRequest.ProtoReflect.Descriptor instead.
func (*FindCommitRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{17}
+ return file_commit_proto_rawDescGZIP(), []int{21}
}
func (x *FindCommitRequest) GetRepository() *Repository {
@@ -1420,7 +1777,7 @@ type FindCommitResponse struct {
func (x *FindCommitResponse) Reset() {
*x = FindCommitResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[18]
+ mi := &file_commit_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1433,7 +1790,7 @@ func (x *FindCommitResponse) String() string {
func (*FindCommitResponse) ProtoMessage() {}
func (x *FindCommitResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[18]
+ mi := &file_commit_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1446,7 +1803,7 @@ func (x *FindCommitResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use FindCommitResponse.ProtoReflect.Descriptor instead.
func (*FindCommitResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{18}
+ return file_commit_proto_rawDescGZIP(), []int{22}
}
func (x *FindCommitResponse) GetCommit() *GitCommit {
@@ -1468,7 +1825,7 @@ type ListCommitsByOidRequest struct {
func (x *ListCommitsByOidRequest) Reset() {
*x = ListCommitsByOidRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[19]
+ mi := &file_commit_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1481,7 +1838,7 @@ func (x *ListCommitsByOidRequest) String() string {
func (*ListCommitsByOidRequest) ProtoMessage() {}
func (x *ListCommitsByOidRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[19]
+ mi := &file_commit_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1494,7 +1851,7 @@ func (x *ListCommitsByOidRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListCommitsByOidRequest.ProtoReflect.Descriptor instead.
func (*ListCommitsByOidRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{19}
+ return file_commit_proto_rawDescGZIP(), []int{23}
}
func (x *ListCommitsByOidRequest) GetRepository() *Repository {
@@ -1522,7 +1879,7 @@ type ListCommitsByOidResponse struct {
func (x *ListCommitsByOidResponse) Reset() {
*x = ListCommitsByOidResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[20]
+ mi := &file_commit_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1535,7 +1892,7 @@ func (x *ListCommitsByOidResponse) String() string {
func (*ListCommitsByOidResponse) ProtoMessage() {}
func (x *ListCommitsByOidResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[20]
+ mi := &file_commit_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1548,7 +1905,7 @@ func (x *ListCommitsByOidResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListCommitsByOidResponse.ProtoReflect.Descriptor instead.
func (*ListCommitsByOidResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{20}
+ return file_commit_proto_rawDescGZIP(), []int{24}
}
func (x *ListCommitsByOidResponse) GetCommits() []*GitCommit {
@@ -1570,7 +1927,7 @@ type ListCommitsByRefNameRequest struct {
func (x *ListCommitsByRefNameRequest) Reset() {
*x = ListCommitsByRefNameRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[21]
+ mi := &file_commit_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1583,7 +1940,7 @@ func (x *ListCommitsByRefNameRequest) String() string {
func (*ListCommitsByRefNameRequest) ProtoMessage() {}
func (x *ListCommitsByRefNameRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[21]
+ mi := &file_commit_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1596,7 +1953,7 @@ func (x *ListCommitsByRefNameRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListCommitsByRefNameRequest.ProtoReflect.Descriptor instead.
func (*ListCommitsByRefNameRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{21}
+ return file_commit_proto_rawDescGZIP(), []int{25}
}
func (x *ListCommitsByRefNameRequest) GetRepository() *Repository {
@@ -1624,7 +1981,7 @@ type ListCommitsByRefNameResponse struct {
func (x *ListCommitsByRefNameResponse) Reset() {
*x = ListCommitsByRefNameResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[22]
+ mi := &file_commit_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1637,7 +1994,7 @@ func (x *ListCommitsByRefNameResponse) String() string {
func (*ListCommitsByRefNameResponse) ProtoMessage() {}
func (x *ListCommitsByRefNameResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[22]
+ mi := &file_commit_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1650,7 +2007,7 @@ func (x *ListCommitsByRefNameResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListCommitsByRefNameResponse.ProtoReflect.Descriptor instead.
func (*ListCommitsByRefNameResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{22}
+ return file_commit_proto_rawDescGZIP(), []int{26}
}
func (x *ListCommitsByRefNameResponse) GetCommitRefs() []*ListCommitsByRefNameResponse_CommitForRef {
@@ -1676,7 +2033,7 @@ type FindAllCommitsRequest struct {
func (x *FindAllCommitsRequest) Reset() {
*x = FindAllCommitsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[23]
+ mi := &file_commit_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1689,7 +2046,7 @@ func (x *FindAllCommitsRequest) String() string {
func (*FindAllCommitsRequest) ProtoMessage() {}
func (x *FindAllCommitsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[23]
+ mi := &file_commit_proto_msgTypes[27]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1702,7 +2059,7 @@ func (x *FindAllCommitsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use FindAllCommitsRequest.ProtoReflect.Descriptor instead.
func (*FindAllCommitsRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{23}
+ return file_commit_proto_rawDescGZIP(), []int{27}
}
func (x *FindAllCommitsRequest) GetRepository() *Repository {
@@ -1752,7 +2109,7 @@ type FindAllCommitsResponse struct {
func (x *FindAllCommitsResponse) Reset() {
*x = FindAllCommitsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[24]
+ mi := &file_commit_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1765,7 +2122,7 @@ func (x *FindAllCommitsResponse) String() string {
func (*FindAllCommitsResponse) ProtoMessage() {}
func (x *FindAllCommitsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[24]
+ mi := &file_commit_proto_msgTypes[28]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1778,7 +2135,7 @@ func (x *FindAllCommitsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use FindAllCommitsResponse.ProtoReflect.Descriptor instead.
func (*FindAllCommitsResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{24}
+ return file_commit_proto_rawDescGZIP(), []int{28}
}
func (x *FindAllCommitsResponse) GetCommits() []*GitCommit {
@@ -1815,7 +2172,7 @@ type FindCommitsRequest struct {
func (x *FindCommitsRequest) Reset() {
*x = FindCommitsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[25]
+ mi := &file_commit_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1828,7 +2185,7 @@ func (x *FindCommitsRequest) String() string {
func (*FindCommitsRequest) ProtoMessage() {}
func (x *FindCommitsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[25]
+ mi := &file_commit_proto_msgTypes[29]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1841,7 +2198,7 @@ func (x *FindCommitsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use FindCommitsRequest.ProtoReflect.Descriptor instead.
func (*FindCommitsRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{25}
+ return file_commit_proto_rawDescGZIP(), []int{29}
}
func (x *FindCommitsRequest) GetRepository() *Repository {
@@ -1968,7 +2325,7 @@ type FindCommitsResponse struct {
func (x *FindCommitsResponse) Reset() {
*x = FindCommitsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[26]
+ mi := &file_commit_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1981,7 +2338,7 @@ func (x *FindCommitsResponse) String() string {
func (*FindCommitsResponse) ProtoMessage() {}
func (x *FindCommitsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[26]
+ mi := &file_commit_proto_msgTypes[30]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1994,7 +2351,7 @@ func (x *FindCommitsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use FindCommitsResponse.ProtoReflect.Descriptor instead.
func (*FindCommitsResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{26}
+ return file_commit_proto_rawDescGZIP(), []int{30}
}
func (x *FindCommitsResponse) GetCommits() []*GitCommit {
@@ -2016,7 +2373,7 @@ type CommitLanguagesRequest struct {
func (x *CommitLanguagesRequest) Reset() {
*x = CommitLanguagesRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[27]
+ mi := &file_commit_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2029,7 +2386,7 @@ func (x *CommitLanguagesRequest) String() string {
func (*CommitLanguagesRequest) ProtoMessage() {}
func (x *CommitLanguagesRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[27]
+ mi := &file_commit_proto_msgTypes[31]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2042,7 +2399,7 @@ func (x *CommitLanguagesRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use CommitLanguagesRequest.ProtoReflect.Descriptor instead.
func (*CommitLanguagesRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{27}
+ return file_commit_proto_rawDescGZIP(), []int{31}
}
func (x *CommitLanguagesRequest) GetRepository() *Repository {
@@ -2070,7 +2427,7 @@ type CommitLanguagesResponse struct {
func (x *CommitLanguagesResponse) Reset() {
*x = CommitLanguagesResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[28]
+ mi := &file_commit_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2083,7 +2440,7 @@ func (x *CommitLanguagesResponse) String() string {
func (*CommitLanguagesResponse) ProtoMessage() {}
func (x *CommitLanguagesResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[28]
+ mi := &file_commit_proto_msgTypes[32]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2096,7 +2453,7 @@ func (x *CommitLanguagesResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use CommitLanguagesResponse.ProtoReflect.Descriptor instead.
func (*CommitLanguagesResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{28}
+ return file_commit_proto_rawDescGZIP(), []int{32}
}
func (x *CommitLanguagesResponse) GetLanguages() []*CommitLanguagesResponse_Language {
@@ -2119,7 +2476,7 @@ type RawBlameRequest struct {
func (x *RawBlameRequest) Reset() {
*x = RawBlameRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[29]
+ mi := &file_commit_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2132,7 +2489,7 @@ func (x *RawBlameRequest) String() string {
func (*RawBlameRequest) ProtoMessage() {}
func (x *RawBlameRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[29]
+ mi := &file_commit_proto_msgTypes[33]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2145,7 +2502,7 @@ func (x *RawBlameRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RawBlameRequest.ProtoReflect.Descriptor instead.
func (*RawBlameRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{29}
+ return file_commit_proto_rawDescGZIP(), []int{33}
}
func (x *RawBlameRequest) GetRepository() *Repository {
@@ -2180,7 +2537,7 @@ type RawBlameResponse struct {
func (x *RawBlameResponse) Reset() {
*x = RawBlameResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[30]
+ mi := &file_commit_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2193,7 +2550,7 @@ func (x *RawBlameResponse) String() string {
func (*RawBlameResponse) ProtoMessage() {}
func (x *RawBlameResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[30]
+ mi := &file_commit_proto_msgTypes[34]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2206,7 +2563,7 @@ func (x *RawBlameResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RawBlameResponse.ProtoReflect.Descriptor instead.
func (*RawBlameResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{30}
+ return file_commit_proto_rawDescGZIP(), []int{34}
}
func (x *RawBlameResponse) GetData() []byte {
@@ -2231,7 +2588,7 @@ type LastCommitForPathRequest struct {
func (x *LastCommitForPathRequest) Reset() {
*x = LastCommitForPathRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[31]
+ mi := &file_commit_proto_msgTypes[35]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2244,7 +2601,7 @@ func (x *LastCommitForPathRequest) String() string {
func (*LastCommitForPathRequest) ProtoMessage() {}
func (x *LastCommitForPathRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[31]
+ mi := &file_commit_proto_msgTypes[35]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2257,7 +2614,7 @@ func (x *LastCommitForPathRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use LastCommitForPathRequest.ProtoReflect.Descriptor instead.
func (*LastCommitForPathRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{31}
+ return file_commit_proto_rawDescGZIP(), []int{35}
}
func (x *LastCommitForPathRequest) GetRepository() *Repository {
@@ -2307,7 +2664,7 @@ type LastCommitForPathResponse struct {
func (x *LastCommitForPathResponse) Reset() {
*x = LastCommitForPathResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[32]
+ mi := &file_commit_proto_msgTypes[36]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2320,7 +2677,7 @@ func (x *LastCommitForPathResponse) String() string {
func (*LastCommitForPathResponse) ProtoMessage() {}
func (x *LastCommitForPathResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[32]
+ mi := &file_commit_proto_msgTypes[36]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2333,7 +2690,7 @@ func (x *LastCommitForPathResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use LastCommitForPathResponse.ProtoReflect.Descriptor instead.
func (*LastCommitForPathResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{32}
+ return file_commit_proto_rawDescGZIP(), []int{36}
}
func (x *LastCommitForPathResponse) GetCommit() *GitCommit {
@@ -2361,7 +2718,7 @@ type ListLastCommitsForTreeRequest struct {
func (x *ListLastCommitsForTreeRequest) Reset() {
*x = ListLastCommitsForTreeRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[33]
+ mi := &file_commit_proto_msgTypes[37]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2374,7 +2731,7 @@ func (x *ListLastCommitsForTreeRequest) String() string {
func (*ListLastCommitsForTreeRequest) ProtoMessage() {}
func (x *ListLastCommitsForTreeRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[33]
+ mi := &file_commit_proto_msgTypes[37]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2387,7 +2744,7 @@ func (x *ListLastCommitsForTreeRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListLastCommitsForTreeRequest.ProtoReflect.Descriptor instead.
func (*ListLastCommitsForTreeRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{33}
+ return file_commit_proto_rawDescGZIP(), []int{37}
}
func (x *ListLastCommitsForTreeRequest) GetRepository() *Repository {
@@ -2451,7 +2808,7 @@ type ListLastCommitsForTreeResponse struct {
func (x *ListLastCommitsForTreeResponse) Reset() {
*x = ListLastCommitsForTreeResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[34]
+ mi := &file_commit_proto_msgTypes[38]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2464,7 +2821,7 @@ func (x *ListLastCommitsForTreeResponse) String() string {
func (*ListLastCommitsForTreeResponse) ProtoMessage() {}
func (x *ListLastCommitsForTreeResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[34]
+ mi := &file_commit_proto_msgTypes[38]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2477,7 +2834,7 @@ func (x *ListLastCommitsForTreeResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListLastCommitsForTreeResponse.ProtoReflect.Descriptor instead.
func (*ListLastCommitsForTreeResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{34}
+ return file_commit_proto_rawDescGZIP(), []int{38}
}
func (x *ListLastCommitsForTreeResponse) GetCommits() []*ListLastCommitsForTreeResponse_CommitForTree {
@@ -2504,7 +2861,7 @@ type CommitsByMessageRequest struct {
func (x *CommitsByMessageRequest) Reset() {
*x = CommitsByMessageRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[35]
+ mi := &file_commit_proto_msgTypes[39]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2517,7 +2874,7 @@ func (x *CommitsByMessageRequest) String() string {
func (*CommitsByMessageRequest) ProtoMessage() {}
func (x *CommitsByMessageRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[35]
+ mi := &file_commit_proto_msgTypes[39]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2530,7 +2887,7 @@ func (x *CommitsByMessageRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use CommitsByMessageRequest.ProtoReflect.Descriptor instead.
func (*CommitsByMessageRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{35}
+ return file_commit_proto_rawDescGZIP(), []int{39}
}
func (x *CommitsByMessageRequest) GetRepository() *Repository {
@@ -2594,7 +2951,7 @@ type CommitsByMessageResponse struct {
func (x *CommitsByMessageResponse) Reset() {
*x = CommitsByMessageResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[36]
+ mi := &file_commit_proto_msgTypes[40]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2607,7 +2964,7 @@ func (x *CommitsByMessageResponse) String() string {
func (*CommitsByMessageResponse) ProtoMessage() {}
func (x *CommitsByMessageResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[36]
+ mi := &file_commit_proto_msgTypes[40]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2620,7 +2977,7 @@ func (x *CommitsByMessageResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use CommitsByMessageResponse.ProtoReflect.Descriptor instead.
func (*CommitsByMessageResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{36}
+ return file_commit_proto_rawDescGZIP(), []int{40}
}
func (x *CommitsByMessageResponse) GetCommits() []*GitCommit {
@@ -2642,7 +2999,7 @@ type FilterShasWithSignaturesRequest struct {
func (x *FilterShasWithSignaturesRequest) Reset() {
*x = FilterShasWithSignaturesRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[37]
+ mi := &file_commit_proto_msgTypes[41]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2655,7 +3012,7 @@ func (x *FilterShasWithSignaturesRequest) String() string {
func (*FilterShasWithSignaturesRequest) ProtoMessage() {}
func (x *FilterShasWithSignaturesRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[37]
+ mi := &file_commit_proto_msgTypes[41]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2668,7 +3025,7 @@ func (x *FilterShasWithSignaturesRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use FilterShasWithSignaturesRequest.ProtoReflect.Descriptor instead.
func (*FilterShasWithSignaturesRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{37}
+ return file_commit_proto_rawDescGZIP(), []int{41}
}
func (x *FilterShasWithSignaturesRequest) GetRepository() *Repository {
@@ -2696,7 +3053,7 @@ type FilterShasWithSignaturesResponse struct {
func (x *FilterShasWithSignaturesResponse) Reset() {
*x = FilterShasWithSignaturesResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[38]
+ mi := &file_commit_proto_msgTypes[42]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2709,7 +3066,7 @@ func (x *FilterShasWithSignaturesResponse) String() string {
func (*FilterShasWithSignaturesResponse) ProtoMessage() {}
func (x *FilterShasWithSignaturesResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[38]
+ mi := &file_commit_proto_msgTypes[42]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2722,7 +3079,7 @@ func (x *FilterShasWithSignaturesResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use FilterShasWithSignaturesResponse.ProtoReflect.Descriptor instead.
func (*FilterShasWithSignaturesResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{38}
+ return file_commit_proto_rawDescGZIP(), []int{42}
}
func (x *FilterShasWithSignaturesResponse) GetShas() [][]byte {
@@ -2744,7 +3101,7 @@ type ExtractCommitSignatureRequest struct {
func (x *ExtractCommitSignatureRequest) Reset() {
*x = ExtractCommitSignatureRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[39]
+ mi := &file_commit_proto_msgTypes[43]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2757,7 +3114,7 @@ func (x *ExtractCommitSignatureRequest) String() string {
func (*ExtractCommitSignatureRequest) ProtoMessage() {}
func (x *ExtractCommitSignatureRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[39]
+ mi := &file_commit_proto_msgTypes[43]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2770,7 +3127,7 @@ func (x *ExtractCommitSignatureRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ExtractCommitSignatureRequest.ProtoReflect.Descriptor instead.
func (*ExtractCommitSignatureRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{39}
+ return file_commit_proto_rawDescGZIP(), []int{43}
}
func (x *ExtractCommitSignatureRequest) GetRepository() *Repository {
@@ -2801,7 +3158,7 @@ type ExtractCommitSignatureResponse struct {
func (x *ExtractCommitSignatureResponse) Reset() {
*x = ExtractCommitSignatureResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[40]
+ mi := &file_commit_proto_msgTypes[44]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2814,7 +3171,7 @@ func (x *ExtractCommitSignatureResponse) String() string {
func (*ExtractCommitSignatureResponse) ProtoMessage() {}
func (x *ExtractCommitSignatureResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[40]
+ mi := &file_commit_proto_msgTypes[44]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2827,7 +3184,7 @@ func (x *ExtractCommitSignatureResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ExtractCommitSignatureResponse.ProtoReflect.Descriptor instead.
func (*ExtractCommitSignatureResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{40}
+ return file_commit_proto_rawDescGZIP(), []int{44}
}
func (x *ExtractCommitSignatureResponse) GetSignature() []byte {
@@ -2856,7 +3213,7 @@ type GetCommitSignaturesRequest struct {
func (x *GetCommitSignaturesRequest) Reset() {
*x = GetCommitSignaturesRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[41]
+ mi := &file_commit_proto_msgTypes[45]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2869,7 +3226,7 @@ func (x *GetCommitSignaturesRequest) String() string {
func (*GetCommitSignaturesRequest) ProtoMessage() {}
func (x *GetCommitSignaturesRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[41]
+ mi := &file_commit_proto_msgTypes[45]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2882,7 +3239,7 @@ func (x *GetCommitSignaturesRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetCommitSignaturesRequest.ProtoReflect.Descriptor instead.
func (*GetCommitSignaturesRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{41}
+ return file_commit_proto_rawDescGZIP(), []int{45}
}
func (x *GetCommitSignaturesRequest) GetRepository() *Repository {
@@ -2914,7 +3271,7 @@ type GetCommitSignaturesResponse struct {
func (x *GetCommitSignaturesResponse) Reset() {
*x = GetCommitSignaturesResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[42]
+ mi := &file_commit_proto_msgTypes[46]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2927,7 +3284,7 @@ func (x *GetCommitSignaturesResponse) String() string {
func (*GetCommitSignaturesResponse) ProtoMessage() {}
func (x *GetCommitSignaturesResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[42]
+ mi := &file_commit_proto_msgTypes[46]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2940,7 +3297,7 @@ func (x *GetCommitSignaturesResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetCommitSignaturesResponse.ProtoReflect.Descriptor instead.
func (*GetCommitSignaturesResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{42}
+ return file_commit_proto_rawDescGZIP(), []int{46}
}
func (x *GetCommitSignaturesResponse) GetCommitId() string {
@@ -2976,7 +3333,7 @@ type GetCommitMessagesRequest struct {
func (x *GetCommitMessagesRequest) Reset() {
*x = GetCommitMessagesRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[43]
+ mi := &file_commit_proto_msgTypes[47]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2989,7 +3346,7 @@ func (x *GetCommitMessagesRequest) String() string {
func (*GetCommitMessagesRequest) ProtoMessage() {}
func (x *GetCommitMessagesRequest) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[43]
+ mi := &file_commit_proto_msgTypes[47]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3002,7 +3359,7 @@ func (x *GetCommitMessagesRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetCommitMessagesRequest.ProtoReflect.Descriptor instead.
func (*GetCommitMessagesRequest) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{43}
+ return file_commit_proto_rawDescGZIP(), []int{47}
}
func (x *GetCommitMessagesRequest) GetRepository() *Repository {
@@ -3032,7 +3389,7 @@ type GetCommitMessagesResponse struct {
func (x *GetCommitMessagesResponse) Reset() {
*x = GetCommitMessagesResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[44]
+ mi := &file_commit_proto_msgTypes[48]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3045,7 +3402,7 @@ func (x *GetCommitMessagesResponse) String() string {
func (*GetCommitMessagesResponse) ProtoMessage() {}
func (x *GetCommitMessagesResponse) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[44]
+ mi := &file_commit_proto_msgTypes[48]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3058,7 +3415,7 @@ func (x *GetCommitMessagesResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetCommitMessagesResponse.ProtoReflect.Descriptor instead.
func (*GetCommitMessagesResponse) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{44}
+ return file_commit_proto_rawDescGZIP(), []int{48}
}
func (x *GetCommitMessagesResponse) GetCommitId() string {
@@ -3087,7 +3444,7 @@ type ListCommitsByRefNameResponse_CommitForRef struct {
func (x *ListCommitsByRefNameResponse_CommitForRef) Reset() {
*x = ListCommitsByRefNameResponse_CommitForRef{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[45]
+ mi := &file_commit_proto_msgTypes[49]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3100,7 +3457,7 @@ func (x *ListCommitsByRefNameResponse_CommitForRef) String() string {
func (*ListCommitsByRefNameResponse_CommitForRef) ProtoMessage() {}
func (x *ListCommitsByRefNameResponse_CommitForRef) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[45]
+ mi := &file_commit_proto_msgTypes[49]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3113,7 +3470,7 @@ func (x *ListCommitsByRefNameResponse_CommitForRef) ProtoReflect() protoreflect.
// Deprecated: Use ListCommitsByRefNameResponse_CommitForRef.ProtoReflect.Descriptor instead.
func (*ListCommitsByRefNameResponse_CommitForRef) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{22, 0}
+ return file_commit_proto_rawDescGZIP(), []int{26, 0}
}
func (x *ListCommitsByRefNameResponse_CommitForRef) GetCommit() *GitCommit {
@@ -3145,7 +3502,7 @@ type CommitLanguagesResponse_Language struct {
func (x *CommitLanguagesResponse_Language) Reset() {
*x = CommitLanguagesResponse_Language{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[46]
+ mi := &file_commit_proto_msgTypes[50]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3158,7 +3515,7 @@ func (x *CommitLanguagesResponse_Language) String() string {
func (*CommitLanguagesResponse_Language) ProtoMessage() {}
func (x *CommitLanguagesResponse_Language) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[46]
+ mi := &file_commit_proto_msgTypes[50]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3171,7 +3528,7 @@ func (x *CommitLanguagesResponse_Language) ProtoReflect() protoreflect.Message {
// Deprecated: Use CommitLanguagesResponse_Language.ProtoReflect.Descriptor instead.
func (*CommitLanguagesResponse_Language) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{28, 0}
+ return file_commit_proto_rawDescGZIP(), []int{32, 0}
}
func (x *CommitLanguagesResponse_Language) GetName() string {
@@ -3221,7 +3578,7 @@ type ListLastCommitsForTreeResponse_CommitForTree struct {
func (x *ListLastCommitsForTreeResponse_CommitForTree) Reset() {
*x = ListLastCommitsForTreeResponse_CommitForTree{}
if protoimpl.UnsafeEnabled {
- mi := &file_commit_proto_msgTypes[47]
+ mi := &file_commit_proto_msgTypes[51]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -3234,7 +3591,7 @@ func (x *ListLastCommitsForTreeResponse_CommitForTree) String() string {
func (*ListLastCommitsForTreeResponse_CommitForTree) ProtoMessage() {}
func (x *ListLastCommitsForTreeResponse_CommitForTree) ProtoReflect() protoreflect.Message {
- mi := &file_commit_proto_msgTypes[47]
+ mi := &file_commit_proto_msgTypes[51]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -3247,7 +3604,7 @@ func (x *ListLastCommitsForTreeResponse_CommitForTree) ProtoReflect() protorefle
// Deprecated: Use ListLastCommitsForTreeResponse_CommitForTree.ProtoReflect.Descriptor instead.
func (*ListLastCommitsForTreeResponse_CommitForTree) Descriptor() ([]byte, []int) {
- return file_commit_proto_rawDescGZIP(), []int{34, 0}
+ return file_commit_proto_rawDescGZIP(), []int{38, 0}
}
func (x *ListLastCommitsForTreeResponse_CommitForTree) GetCommit() *GitCommit {
@@ -3272,547 +3629,608 @@ var file_commit_proto_rawDesc = []byte{
0x74, 0x6f, 0x1a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x22, 0x6a, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73,
- 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69,
- 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42,
- 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72,
- 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x63, 0x0a,
- 0x13, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69,
- 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x64, 0x64, 0x69, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f,
- 0x6e, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x17, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x73, 0x41,
- 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38,
- 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f,
- 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65,
- 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6e, 0x63, 0x65,
- 0x73, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61,
- 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x63, 0x68, 0x69,
- 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x69,
- 0x6c, 0x64, 0x49, 0x64, 0x22, 0x30, 0x0a, 0x18, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x73,
- 0x41, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xad, 0x01, 0x0a, 0x10, 0x54, 0x72, 0x65, 0x65, 0x45,
- 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72,
- 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
- 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
- 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73,
- 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f,
- 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f,
- 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52,
- 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6d,
- 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d,
- 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x11, 0x54, 0x72, 0x65, 0x65, 0x45,
- 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04,
- 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x69, 0x74,
- 0x61, 0x6c, 0x79, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65,
- 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04,
- 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65,
- 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04,
- 0x64, 0x61, 0x74, 0x61, 0x22, 0x35, 0x0a, 0x0a, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79,
- 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x00, 0x12, 0x08,
- 0x0a, 0x04, 0x42, 0x4c, 0x4f, 0x42, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x52, 0x45, 0x45,
- 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x41, 0x47, 0x10, 0x03, 0x22, 0xbf, 0x01, 0x0a, 0x15,
- 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
- 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61,
- 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98,
- 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12,
- 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66,
- 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52,
- 0x02, 0x74, 0x6f, 0x12, 0x48, 0x0a, 0x11, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
- 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69,
- 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x61, 0x67,
- 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x45, 0x0a,
- 0x16, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69,
- 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
- 0x79, 0x2e, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6d,
- 0x6d, 0x69, 0x74, 0x73, 0x22, 0xf5, 0x02, 0x0a, 0x13, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f,
+ 0x6f, 0x22, 0xfa, 0x03, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f,
+ 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67,
+ 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
+ 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
+ 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18,
+ 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73,
+ 0x12, 0x48, 0x0a, 0x11, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70,
+ 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x69,
+ 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50,
+ 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x10, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x05, 0x6f, 0x72,
+ 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x61,
+ 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64,
+ 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
+ 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x50, 0x61, 0x72, 0x65,
+ 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77,
+ 0x61, 0x6c, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62,
+ 0x6c, 0x65, 0x57, 0x61, 0x6c, 0x6b, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f,
+ 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x66, 0x69,
+ 0x72, 0x73, 0x74, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x05, 0x61, 0x66, 0x74,
+ 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
+ 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x06, 0x62,
+ 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
+ 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12,
+ 0x16, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52,
+ 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x22, 0x25, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72,
+ 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x4f,
+ 0x50, 0x4f, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x41, 0x54, 0x45, 0x10, 0x02, 0x22, 0x42,
+ 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73,
+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
+ 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x73, 0x22, 0x9b, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f,
0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a,
0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69,
0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f,
- 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69,
- 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69,
- 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
- 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
- 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x61,
- 0x66, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x04,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
- 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68,
- 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09,
- 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52,
- 0x08, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c,
- 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x66,
- 0x69, 0x72, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28,
- 0x08, 0x52, 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x3c,
- 0x0a, 0x0e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
- 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x67,
- 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x14,
- 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xab, 0x01, 0x0a, 0x1c, 0x43,
- 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x69, 0x76, 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d,
- 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72,
+ 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x48, 0x0a, 0x11, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x50, 0x61, 0x67, 0x69, 0x6e,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x10,
+ 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73,
+ 0x22, 0x45, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x69,
+ 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x07,
+ 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x22, 0x6a, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a,
+ 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73,
+ 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70,
+ 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73,
+ 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73,
+ 0x69, 0x6f, 0x6e, 0x22, 0x63, 0x0a, 0x13, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61,
+ 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09,
+ 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
+ 0x09, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65,
+ 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x64,
+ 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x17, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x69, 0x74, 0x49, 0x73, 0x41, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
+ 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
+ 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6,
+ 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12,
+ 0x19, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x07, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x22, 0x30, 0x0a, 0x18, 0x43, 0x6f,
+ 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x73, 0x41, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xad, 0x01, 0x0a,
+ 0x10, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52,
+ 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52,
+ 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72,
+ 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72,
+ 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x6c,
+ 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69,
+ 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x22, 0xd2, 0x01, 0x0a,
+ 0x11, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e,
+ 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4f, 0x62, 0x6a, 0x65,
+ 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03,
+ 0x6f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x12,
+ 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69,
+ 0x7a, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05,
+ 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05,
+ 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x35, 0x0a, 0x0a, 0x4f, 0x62,
+ 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4d, 0x4d,
+ 0x49, 0x54, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4c, 0x4f, 0x42, 0x10, 0x01, 0x12, 0x08,
+ 0x0a, 0x04, 0x54, 0x52, 0x45, 0x45, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x41, 0x47, 0x10,
+ 0x03, 0x22, 0xbf, 0x01, 0x0a, 0x15, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x65, 0x74,
+ 0x77, 0x65, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72,
0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73,
0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78,
- 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6d, 0x61,
- 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05,
- 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0x5f, 0x0a, 0x1d, 0x43, 0x6f, 0x75, 0x6e,
- 0x74, 0x44, 0x69, 0x76, 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
- 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x65, 0x66,
- 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c,
- 0x65, 0x66, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x69, 0x67, 0x68,
- 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72,
- 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfa, 0x01, 0x0a, 0x09, 0x54, 0x72,
- 0x65, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6f,
- 0x74, 0x5f, 0x6f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f,
- 0x74, 0x4f, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x0c, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
- 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
- 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54,
- 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64,
- 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a,
- 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4f, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09,
- 0x66, 0x6c, 0x61, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52,
- 0x08, 0x66, 0x6c, 0x61, 0x74, 0x50, 0x61, 0x74, 0x68, 0x22, 0x2b, 0x0a, 0x09, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4c, 0x4f, 0x42, 0x10, 0x00,
- 0x12, 0x08, 0x0a, 0x04, 0x54, 0x52, 0x45, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f,
- 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x03, 0x22, 0x9f, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x72,
- 0x65, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x48, 0x0a, 0x11, 0x70, 0x61, 0x67,
+ 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x50, 0x61,
+ 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
+ 0x72, 0x52, 0x10, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72,
+ 0x61, 0x6d, 0x73, 0x22, 0x45, 0x0a, 0x16, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x65,
+ 0x74, 0x77, 0x65, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a,
+ 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11,
+ 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x22, 0xf5, 0x02, 0x0a, 0x13, 0x43,
+ 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
+ 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01,
+ 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08,
+ 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08,
+ 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65,
+ 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
+ 0x61, 0x6d, 0x70, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x06, 0x62, 0x65,
+ 0x66, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
+ 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
+ 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x12,
+ 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x70, 0x61,
+ 0x74, 0x68, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
+ 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c,
+ 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e,
+ 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x0e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67,
+ 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x22, 0x2c, 0x0a, 0x14, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f,
+ 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74,
+ 0x22, 0xab, 0x01, 0x0a, 0x1c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x69, 0x76, 0x65, 0x72, 0x67,
+ 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52,
+ 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52,
+ 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x66,
+ 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12,
+ 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x74, 0x6f, 0x12,
+ 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01,
+ 0x28, 0x05, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x4a, 0x04, 0x08, 0x04,
+ 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0x5f,
+ 0x0a, 0x1d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x69, 0x76, 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67,
+ 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x1d, 0x0a, 0x0a, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x65, 0x66, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22,
+ 0xfa, 0x01, 0x0a, 0x09, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
+ 0x03, 0x6f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x12,
+ 0x19, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x6f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, 0x74, 0x4f, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61,
+ 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2f,
+ 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67,
+ 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x2e,
+ 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
+ 0x12, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x6d,
+ 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x6f, 0x69,
+ 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4f,
+ 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x6c, 0x61, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18,
+ 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x6c, 0x61, 0x74, 0x50, 0x61, 0x74, 0x68, 0x22,
+ 0x2b, 0x0a, 0x09, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04,
+ 0x42, 0x4c, 0x4f, 0x42, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x52, 0x45, 0x45, 0x10, 0x01,
+ 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x54, 0x10, 0x03, 0x22, 0x9f, 0x01, 0x0a,
+ 0x15, 0x47, 0x65, 0x74, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69,
+ 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74,
+ 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04,
+ 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
+ 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04,
+ 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68,
+ 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x22, 0x45,
+ 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72,
+ 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x69, 0x74, 0x61,
+ 0x6c, 0x79, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e,
+ 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0x68, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c,
+ 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70,
+ 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
+ 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72,
+ 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
+ 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22,
+ 0x29, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
+ 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x01, 0x20,
+ 0x03, 0x28, 0x0c, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x22, 0x85, 0x01, 0x0a, 0x11, 0x46,
+ 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65,
0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a,
0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65,
0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65,
- 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03,
- 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65,
- 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72,
- 0x65, 0x63, 0x75, 0x72, 0x73, 0x69, 0x76, 0x65, 0x22, 0x45, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54,
- 0x72, 0x65, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20,
- 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x54, 0x72, 0x65,
- 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22,
- 0x68, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72,
- 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79,
- 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c,
- 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a,
- 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52,
- 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x29, 0x0a, 0x11, 0x4c, 0x69, 0x73,
- 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14,
- 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, 0x70,
- 0x61, 0x74, 0x68, 0x73, 0x22, 0x85, 0x01, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d,
- 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65,
- 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
- 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
- 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69,
- 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e,
- 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01,
- 0x28, 0x08, 0x52, 0x08, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x73, 0x22, 0x3f, 0x0a, 0x12,
- 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01,
- 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x69, 0x74, 0x43,
- 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0x65, 0x0a,
- 0x17, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x4f, 0x69,
- 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f,
- 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67,
- 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
- 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
- 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52,
- 0x03, 0x6f, 0x69, 0x64, 0x22, 0x47, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d,
- 0x69, 0x74, 0x73, 0x42, 0x79, 0x4f, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x12, 0x2b, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
- 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x69, 0x74, 0x43, 0x6f,
- 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x22, 0x74, 0x0a,
- 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x52, 0x65,
- 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a,
- 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
- 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69,
- 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f,
- 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61,
- 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x66, 0x4e, 0x61,
- 0x6d, 0x65, 0x73, 0x22, 0xce, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d,
- 0x69, 0x74, 0x73, 0x42, 0x79, 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x72,
- 0x65, 0x66, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x69, 0x74, 0x61,
- 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79,
- 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
- 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x66, 0x52, 0x0a, 0x63, 0x6f,
- 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x66, 0x73, 0x1a, 0x54, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d,
- 0x69, 0x74, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x66, 0x12, 0x29, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65,
+ 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65,
+ 0x72, 0x73, 0x22, 0x3f, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
0x79, 0x2e, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x06, 0x63, 0x6f, 0x6d,
- 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x4a, 0x04,
- 0x08, 0x01, 0x10, 0x02, 0x22, 0x80, 0x02, 0x0a, 0x15, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c,
- 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38,
+ 0x6d, 0x69, 0x74, 0x22, 0x65, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x73, 0x42, 0x79, 0x4f, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38,
0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f,
0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65,
- 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69,
- 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69,
- 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
- 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e,
- 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52,
- 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x39, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x05,
- 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69,
- 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72,
- 0x22, 0x25, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e,
- 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x4f, 0x50, 0x4f, 0x10, 0x01, 0x12, 0x08, 0x0a,
- 0x04, 0x44, 0x41, 0x54, 0x45, 0x10, 0x02, 0x22, 0x45, 0x0a, 0x16, 0x46, 0x69, 0x6e, 0x64, 0x41,
- 0x6c, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03,
- 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x69, 0x74, 0x43,
- 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x22, 0xec,
- 0x04, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
- 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61,
- 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98,
- 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12,
- 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x0c, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6c,
- 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69,
- 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
- 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74,
- 0x68, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x12,
- 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52,
- 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6b, 0x69, 0x70, 0x5f,
- 0x6d, 0x65, 0x72, 0x67, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x6b,
- 0x69, 0x70, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x61,
- 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x61, 0x6c, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b,
- 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x61, 0x6c, 0x6b, 0x12, 0x30, 0x0a, 0x05, 0x61,
- 0x66, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
- 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
- 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a,
- 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
- 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
- 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72,
- 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03,
- 0x61, 0x6c, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72,
- 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74,
- 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,
- 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x36,
- 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e,
- 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x69, 0x64, 0x18,
+ 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x69, 0x64, 0x22, 0x47, 0x0a, 0x18, 0x4c, 0x69,
+ 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x4f, 0x69, 0x64, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
+ 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79,
+ 0x2e, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x69, 0x74, 0x73, 0x22, 0x74, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x73, 0x42, 0x79, 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
+ 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01,
+ 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09,
+ 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52,
+ 0x08, 0x72, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xce, 0x01, 0x0a, 0x1c, 0x4c, 0x69,
+ 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x52, 0x65, 0x66, 0x4e, 0x61,
+ 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0b, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x31, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x52,
+ 0x65, 0x66, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x66, 0x73, 0x1a, 0x54,
+ 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x52, 0x65, 0x66, 0x12, 0x29,
+ 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
+ 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x66,
+ 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x72, 0x65, 0x66,
+ 0x4e, 0x61, 0x6d, 0x65, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x80, 0x02, 0x0a, 0x15, 0x46,
+ 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
+ 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
+ 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6,
+ 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a,
+ 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c,
+ 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61,
+ 0x78, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6d,
+ 0x61, 0x78, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6b, 0x69, 0x70, 0x12, 0x39, 0x0a, 0x05, 0x6f,
+ 0x72, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x69, 0x74,
+ 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52,
- 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x0e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c,
- 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15,
- 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x70,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x73,
- 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x73,
- 0x22, 0x1b, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e,
- 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x4f, 0x50, 0x4f, 0x10, 0x01, 0x22, 0x42, 0x0a,
- 0x13, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18,
- 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47,
- 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
- 0x73, 0x22, 0x6e, 0x0a, 0x16, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x75,
- 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72,
+ 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x22, 0x25, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12,
+ 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x4f, 0x50,
+ 0x4f, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x41, 0x54, 0x45, 0x10, 0x02, 0x22, 0x45, 0x0a,
+ 0x16, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
+ 0x79, 0x2e, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6d,
+ 0x6d, 0x69, 0x74, 0x73, 0x22, 0xec, 0x04, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72,
0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73,
0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f,
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f,
- 0x6e, 0x22, 0xe2, 0x01, 0x0a, 0x17, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4c, 0x61, 0x6e, 0x67,
- 0x75, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a,
- 0x09, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x28, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
- 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
- 0x65, 0x2e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x52, 0x09, 0x6c, 0x61, 0x6e, 0x67,
- 0x75, 0x61, 0x67, 0x65, 0x73, 0x1a, 0x7f, 0x0a, 0x08, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67,
- 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63,
- 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f,
- 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18,
- 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
- 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52,
- 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0x7b, 0x0a, 0x0f, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x61,
- 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70,
- 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e,
- 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72,
- 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
- 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18,
- 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12,
- 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x70,
- 0x61, 0x74, 0x68, 0x22, 0x26, 0x0a, 0x10, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x61, 0x6d, 0x65, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xed, 0x01, 0x0a, 0x18,
- 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x61, 0x74,
- 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f,
- 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67,
- 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
- 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
- 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02,
- 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12,
- 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x70, 0x61,
- 0x74, 0x68, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x70, 0x61,
- 0x74, 0x68, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6c, 0x69,
- 0x74, 0x65, 0x72, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x73, 0x70, 0x65, 0x63, 0x12, 0x3c, 0x0a,
- 0x0e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
- 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47,
- 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x67, 0x6c,
- 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x46, 0x0a, 0x19, 0x4c,
- 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x61, 0x74, 0x68,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d,
- 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
- 0x79, 0x2e, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x06, 0x63, 0x6f, 0x6d,
- 0x6d, 0x69, 0x74, 0x22, 0xa4, 0x02, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x73, 0x74,
- 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
- 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61,
- 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98,
- 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12,
- 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70,
- 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12,
- 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05,
- 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18,
- 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x2d, 0x0a,
- 0x10, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x70, 0x65,
- 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x6c, 0x69, 0x74,
- 0x65, 0x72, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x73, 0x70, 0x65, 0x63, 0x12, 0x3c, 0x0a, 0x0e,
- 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07,
+ 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
+ 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65,
+ 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12,
+ 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x05,
+ 0x70, 0x61, 0x74, 0x68, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x12, 0x1f, 0x0a,
+ 0x0b, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x0a, 0x73, 0x6b, 0x69, 0x70, 0x4d, 0x65, 0x72, 0x67, 0x65, 0x73, 0x12, 0x21,
+ 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x61, 0x6c, 0x6b, 0x18, 0x08,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x61, 0x6c,
+ 0x6b, 0x12, 0x30, 0x0a, 0x05, 0x61, 0x66, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
+ 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x61, 0x66,
+ 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x18, 0x0a, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
+ 0x06, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x0b,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69, 0x72,
+ 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74, 0x50, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06,
+ 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x61, 0x75,
+ 0x74, 0x68, 0x6f, 0x72, 0x12, 0x36, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x0e, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e,
+ 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
+ 0x4f, 0x72, 0x64, 0x65, 0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x0e,
+ 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0f,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x6c,
0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x67, 0x6c, 0x6f,
- 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xd7, 0x01, 0x0a, 0x1e, 0x4c,
- 0x69, 0x73, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x46, 0x6f,
- 0x72, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a,
- 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34,
- 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x73, 0x74,
- 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x6f, 0x72,
- 0x54, 0x72, 0x65, 0x65, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x1a, 0x65, 0x0a,
- 0x0d, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x54, 0x72, 0x65, 0x65, 0x12, 0x29,
- 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
- 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
- 0x74, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x74,
- 0x68, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70,
- 0x61, 0x74, 0x68, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04,
- 0x08, 0x03, 0x10, 0x04, 0x22, 0x85, 0x02, 0x0a, 0x17, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73,
- 0x42, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65,
- 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a,
- 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65,
- 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65,
- 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
- 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x14,
- 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c,
- 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01,
- 0x28, 0x0c, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72,
- 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x3c,
- 0x0a, 0x0e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
- 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x67,
- 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x47, 0x0a, 0x18,
- 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d,
- 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x69, 0x74, 0x61,
- 0x6c, 0x79, 0x2e, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x07, 0x63, 0x6f,
- 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x22, 0x6f, 0x0a, 0x1f, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53,
- 0x68, 0x61, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
- 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f,
- 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67,
- 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
- 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f,
- 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x68, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c,
- 0x52, 0x04, 0x73, 0x68, 0x61, 0x73, 0x22, 0x36, 0x0a, 0x20, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
- 0x53, 0x68, 0x61, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72,
- 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x68,
- 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x73, 0x68, 0x61, 0x73, 0x22, 0x76,
- 0x0a, 0x1d, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53,
- 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+ 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x72,
+ 0x61, 0x69, 0x6c, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x74, 0x72,
+ 0x61, 0x69, 0x6c, 0x65, 0x72, 0x73, 0x22, 0x1b, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12,
+ 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x4f, 0x50,
+ 0x4f, 0x10, 0x01, 0x22, 0x42, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x69,
+ 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x07,
+ 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x22, 0x6e, 0x0a, 0x16, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52,
+ 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52,
+ 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72,
+ 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72,
+ 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xe2, 0x01, 0x0a, 0x17, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x69, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73,
+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
+ 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65,
+ 0x52, 0x09, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x1a, 0x7f, 0x0a, 0x08, 0x4c,
+ 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73,
+ 0x68, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72,
+ 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x5f,
+ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x69, 0x6c,
+ 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x22, 0x7b, 0x0a, 0x0f,
+ 0x52, 0x61, 0x77, 0x42, 0x6c, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70,
0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72,
- 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6d,
- 0x6d, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f,
- 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x22, 0x5f, 0x0a, 0x1e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63,
- 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
- 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e,
- 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67,
- 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64,
- 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x69, 0x67,
- 0x6e, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x22, 0x75, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6f,
- 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
- 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61,
- 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98,
- 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12,
- 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20,
- 0x03, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x73, 0x22, 0x79,
- 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61,
- 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a,
- 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69,
- 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73,
- 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x69, 0x67, 0x6e,
- 0x65, 0x64, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73,
- 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x22, 0x73, 0x0a, 0x18, 0x47, 0x65, 0x74,
- 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65,
+ 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76,
+ 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x76,
+ 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x0c, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x26, 0x0a, 0x10, 0x52, 0x61, 0x77,
+ 0x42, 0x6c, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a,
+ 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74,
+ 0x61, 0x22, 0xed, 0x01, 0x0a, 0x18, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
+ 0x46, 0x6f, 0x72, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38,
+ 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f,
+ 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65,
+ 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69,
+ 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69,
+ 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x0c, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x69, 0x74, 0x65,
+ 0x72, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x0f, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x73,
+ 0x70, 0x65, 0x63, 0x12, 0x3c, 0x0a, 0x0e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x69,
+ 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x22, 0x46, 0x0a, 0x19, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46,
+ 0x6f, 0x72, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29,
+ 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
+ 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0xa4, 0x02, 0x0a, 0x1d, 0x4c, 0x69,
+ 0x73, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x46, 0x6f, 0x72,
+ 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72,
+ 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
+ 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73,
+ 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f,
+ 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f,
+ 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52,
+ 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f,
+ 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66,
+ 0x73, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x70,
+ 0x61, 0x74, 0x68, 0x73, 0x70, 0x65, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18,
+ 0x01, 0x52, 0x0f, 0x6c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x73, 0x70,
+ 0x65, 0x63, 0x12, 0x3c, 0x0a, 0x0e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f, 0x70, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x69, 0x74,
+ 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x22, 0xd7, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x69, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69,
+ 0x73, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x46, 0x6f, 0x72,
+ 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x54, 0x72, 0x65, 0x65, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x69, 0x74, 0x73, 0x1a, 0x65, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x6f, 0x72,
+ 0x54, 0x72, 0x65, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x69,
+ 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12,
+ 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x61, 0x74, 0x68, 0x42, 0x79, 0x74, 0x65, 0x73, 0x4a, 0x04,
+ 0x08, 0x01, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0x85, 0x02, 0x0a, 0x17, 0x43,
+ 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69,
+ 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74,
+ 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04,
+ 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79,
+ 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0c, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06,
+ 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6f, 0x66,
+ 0x66, 0x73, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61,
+ 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14,
+ 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71,
+ 0x75, 0x65, 0x72, 0x79, 0x12, 0x3c, 0x0a, 0x0e, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x6f,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67,
+ 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x52, 0x0d, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x22, 0x47, 0x0a, 0x18, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b,
+ 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x11, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x69, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x22, 0x6f, 0x0a, 0x1f, 0x46,
+ 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x68, 0x61, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x69, 0x67,
+ 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38,
+ 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f,
+ 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65,
+ 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x68, 0x61, 0x73,
+ 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x73, 0x68, 0x61, 0x73, 0x22, 0x36, 0x0a, 0x20,
+ 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x68, 0x61, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x69,
+ 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x12, 0x12, 0x0a, 0x04, 0x73, 0x68, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04,
+ 0x73, 0x68, 0x61, 0x73, 0x22, 0x76, 0x0a, 0x1d, 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x43,
+ 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65,
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61,
0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98,
0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12,
- 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20,
- 0x03, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x73, 0x22, 0x52,
- 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61,
- 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63,
- 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
- 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73,
- 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61,
- 0x67, 0x65, 0x32, 0xb9, 0x0f, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x65, 0x72,
- 0x76, 0x69, 0x63, 0x65, 0x12, 0x5d, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x73,
- 0x41, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
- 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x73, 0x41, 0x6e, 0x63, 0x65, 0x73, 0x74,
- 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x61,
- 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x73, 0x41, 0x6e, 0x63, 0x65, 0x73,
- 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28,
- 0x02, 0x08, 0x02, 0x12, 0x4a, 0x0a, 0x09, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79,
- 0x12, 0x18, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e,
- 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x69, 0x74,
- 0x61, 0x6c, 0x79, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12,
- 0x59, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x65, 0x74, 0x77, 0x65, 0x65,
- 0x6e, 0x12, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
- 0x74, 0x73, 0x42, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
- 0x73, 0x42, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x51, 0x0a, 0x0c, 0x43, 0x6f,
- 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1b, 0x2e, 0x67, 0x69, 0x74,
+ 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x22, 0x5f, 0x0a, 0x1e,
+ 0x45, 0x78, 0x74, 0x72, 0x61, 0x63, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x69, 0x67,
+ 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c,
+ 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1f, 0x0a, 0x0b,
+ 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0c, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x22, 0x75, 0x0a,
+ 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74,
+ 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72,
+ 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
+ 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73,
+ 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f,
+ 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x49, 0x64, 0x73, 0x22, 0x79, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x69, 0x64,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x64,
+ 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1f,
+ 0x0a, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x22,
+ 0x73, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x72,
+ 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74,
+ 0x6f, 0x72, 0x79, 0x42, 0x04, 0x98, 0xc6, 0x2c, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73,
+ 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f,
+ 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x49, 0x64, 0x73, 0x22, 0x52, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x64, 0x12, 0x18,
+ 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52,
+ 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0xe6, 0x10, 0x0a, 0x0d, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x69, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x4c, 0x69,
+ 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x61,
+ 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c,
+ 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x59, 0x0a, 0x0e,
+ 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1d,
+ 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x43,
+ 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e,
+ 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f,
+ 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa,
+ 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x5d, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x49, 0x73, 0x41, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x2e, 0x67, 0x69,
+ 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x73, 0x41, 0x6e, 0x63,
+ 0x65, 0x73, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67,
+ 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x49, 0x73, 0x41, 0x6e,
+ 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06,
+ 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x12, 0x4a, 0x0a, 0x09, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e,
+ 0x74, 0x72, 0x79, 0x12, 0x18, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x54, 0x72, 0x65,
+ 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e,
+ 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02,
+ 0x30, 0x01, 0x12, 0x59, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x65, 0x74,
+ 0x77, 0x65, 0x65, 0x6e, 0x12, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f,
+ 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x69, 0x74, 0x73, 0x42, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x51, 0x0a,
+ 0x0c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1b, 0x2e,
+ 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x67, 0x69, 0x74,
0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79,
- 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x12, 0x6c, 0x0a,
- 0x15, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x69, 0x76, 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x43,
- 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
- 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x69, 0x76, 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f,
- 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67,
- 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x69, 0x76, 0x65, 0x72,
- 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x12, 0x59, 0x0a, 0x0e, 0x47,
- 0x65, 0x74, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1d, 0x2e,
- 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e,
- 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67,
- 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e, 0x74,
- 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97,
- 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69,
- 0x6c, 0x65, 0x73, 0x12, 0x18, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73,
- 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e,
- 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02,
- 0x30, 0x01, 0x12, 0x4b, 0x0a, 0x0a, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
- 0x12, 0x19, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f,
- 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x69,
- 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x12,
- 0x4e, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1a,
- 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x74,
- 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x69, 0x74,
- 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x12,
- 0x59, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
- 0x73, 0x12, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41,
- 0x6c, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x1a, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c,
- 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x50, 0x0a, 0x0b, 0x46, 0x69,
- 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x61,
- 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46,
- 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x5a, 0x0a, 0x0f,
- 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x12,
- 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4c,
- 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4c,
- 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x12, 0x47, 0x0a, 0x08, 0x52, 0x61, 0x77, 0x42,
- 0x6c, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x61,
- 0x77, 0x42, 0x6c, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e,
- 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x61, 0x6d, 0x65, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30,
- 0x01, 0x12, 0x60, 0x0a, 0x11, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46,
- 0x6f, 0x72, 0x50, 0x61, 0x74, 0x68, 0x12, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
- 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x61, 0x74,
- 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
- 0x79, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50,
- 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28,
- 0x02, 0x08, 0x02, 0x12, 0x71, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x43,
- 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x54, 0x72, 0x65, 0x65, 0x12, 0x25, 0x2e,
- 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x43,
- 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69,
- 0x73, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x46, 0x6f, 0x72,
- 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97,
- 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x5f, 0x0a, 0x10, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
- 0x73, 0x42, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x69, 0x74,
- 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x4d, 0x65, 0x73,
- 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x69,
- 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x4d, 0x65,
- 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa,
- 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x5f, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x43,
- 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x4f, 0x69, 0x64, 0x12, 0x1f, 0x2e, 0x67, 0x69,
- 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73,
- 0x42, 0x79, 0x4f, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67,
- 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
- 0x73, 0x42, 0x79, 0x4f, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06,
- 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x6b, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74,
- 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65,
- 0x12, 0x23, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f,
- 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c,
+ 0x12, 0x6c, 0x0a, 0x15, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x69, 0x76, 0x65, 0x72, 0x67, 0x69,
+ 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x61,
+ 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x69, 0x76, 0x65, 0x72, 0x67, 0x69, 0x6e,
+ 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x25, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x44, 0x69,
+ 0x76, 0x65, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x12, 0x59,
+ 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x65, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73,
+ 0x12, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x65,
+ 0x65, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x65, 0x65,
+ 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x4c, 0x69, 0x73,
+ 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x18, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e,
+ 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x19, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x69,
+ 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28,
+ 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x4b, 0x0a, 0x0a, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x69, 0x74, 0x12, 0x19, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e,
+ 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a,
+ 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02,
+ 0x08, 0x02, 0x12, 0x4e, 0x0a, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74,
+ 0x73, 0x12, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e,
+ 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61,
+ 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02,
+ 0x08, 0x02, 0x12, 0x59, 0x0a, 0x0e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69,
+ 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e,
+ 0x64, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x50, 0x0a,
+ 0x0b, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x67,
+ 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
+ 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12,
+ 0x5a, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67,
+ 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x69, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x69, 0x74, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x12, 0x47, 0x0a, 0x08, 0x52,
+ 0x61, 0x77, 0x42, 0x6c, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79,
+ 0x2e, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x18, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x61, 0x77, 0x42, 0x6c, 0x61,
+ 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02,
+ 0x08, 0x02, 0x30, 0x01, 0x12, 0x60, 0x0a, 0x11, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x69, 0x74, 0x46, 0x6f, 0x72, 0x50, 0x61, 0x74, 0x68, 0x12, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x61,
+ 0x6c, 0x79, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46, 0x6f, 0x72,
+ 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x69,
+ 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x46,
+ 0x6f, 0x72, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06,
+ 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x12, 0x71, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61,
+ 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x54, 0x72, 0x65, 0x65,
+ 0x12, 0x25, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61,
+ 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x46, 0x6f, 0x72, 0x54, 0x72, 0x65, 0x65,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79,
+ 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4c, 0x61, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73,
+ 0x46, 0x6f, 0x72, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x5f, 0x0a, 0x10, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e,
+ 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20,
+ 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42,
+ 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x5f, 0x0a, 0x10, 0x4c, 0x69,
+ 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x4f, 0x69, 0x64, 0x12, 0x1f,
+ 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x69, 0x74, 0x73, 0x42, 0x79, 0x4f, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
+ 0x20, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x4f, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x6b, 0x0a, 0x14, 0x4c,
0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x52, 0x65, 0x66, 0x4e,
- 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28,
- 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x79, 0x0a, 0x18, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53,
- 0x68, 0x61, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
- 0x73, 0x12, 0x27, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65,
- 0x72, 0x53, 0x68, 0x61, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
- 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x69, 0x74,
- 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x68, 0x61, 0x73, 0x57, 0x69,
- 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x28, 0x01, 0x30, 0x01,
- 0x12, 0x68, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x69, 0x67,
- 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x22, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79,
- 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74,
- 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x69,
- 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x69,
- 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x62, 0x0a, 0x11, 0x47, 0x65,
- 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12,
- 0x20, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d,
- 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f,
- 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x42, 0x34,
- 0x5a, 0x32, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x69, 0x74,
- 0x6c, 0x61, 0x62, 0x2d, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2f, 0x76,
- 0x31, 0x34, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x69, 0x74, 0x61,
- 0x6c, 0x79, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x61, 0x6d, 0x65, 0x12, 0x23, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73,
+ 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d,
+ 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c,
+ 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x42, 0x79, 0x52,
+ 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06,
+ 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x79, 0x0a, 0x18, 0x46, 0x69, 0x6c, 0x74,
+ 0x65, 0x72, 0x53, 0x68, 0x61, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74,
+ 0x75, 0x72, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69,
+ 0x6c, 0x74, 0x65, 0x72, 0x53, 0x68, 0x61, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e,
+ 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e,
+ 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x68, 0x61,
+ 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x28,
+ 0x01, 0x30, 0x01, 0x12, 0x68, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
+ 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x22, 0x2e, 0x67, 0x69, 0x74,
+ 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x69, 0x67,
+ 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23,
+ 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x62, 0x0a,
+ 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x73, 0x12, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x43,
+ 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65,
+ 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30,
+ 0x01, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
+ 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2d, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x69, 0x74, 0x61, 0x6c,
+ 0x79, 0x2f, 0x76, 0x31, 0x34, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67,
+ 0x69, 0x74, 0x61, 0x6c, 0x79, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -3827,164 +4245,182 @@ func file_commit_proto_rawDescGZIP() []byte {
return file_commit_proto_rawDescData
}
-var file_commit_proto_enumTypes = make([]protoimpl.EnumInfo, 4)
-var file_commit_proto_msgTypes = make([]protoimpl.MessageInfo, 48)
+var file_commit_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
+var file_commit_proto_msgTypes = make([]protoimpl.MessageInfo, 52)
var file_commit_proto_goTypes = []interface{}{
- (TreeEntryResponse_ObjectType)(0), // 0: gitaly.TreeEntryResponse.ObjectType
- (TreeEntry_EntryType)(0), // 1: gitaly.TreeEntry.EntryType
- (FindAllCommitsRequest_Order)(0), // 2: gitaly.FindAllCommitsRequest.Order
- (FindCommitsRequest_Order)(0), // 3: gitaly.FindCommitsRequest.Order
- (*CommitStatsRequest)(nil), // 4: gitaly.CommitStatsRequest
- (*CommitStatsResponse)(nil), // 5: gitaly.CommitStatsResponse
- (*CommitIsAncestorRequest)(nil), // 6: gitaly.CommitIsAncestorRequest
- (*CommitIsAncestorResponse)(nil), // 7: gitaly.CommitIsAncestorResponse
- (*TreeEntryRequest)(nil), // 8: gitaly.TreeEntryRequest
- (*TreeEntryResponse)(nil), // 9: gitaly.TreeEntryResponse
- (*CommitsBetweenRequest)(nil), // 10: gitaly.CommitsBetweenRequest
- (*CommitsBetweenResponse)(nil), // 11: gitaly.CommitsBetweenResponse
- (*CountCommitsRequest)(nil), // 12: gitaly.CountCommitsRequest
- (*CountCommitsResponse)(nil), // 13: gitaly.CountCommitsResponse
- (*CountDivergingCommitsRequest)(nil), // 14: gitaly.CountDivergingCommitsRequest
- (*CountDivergingCommitsResponse)(nil), // 15: gitaly.CountDivergingCommitsResponse
- (*TreeEntry)(nil), // 16: gitaly.TreeEntry
- (*GetTreeEntriesRequest)(nil), // 17: gitaly.GetTreeEntriesRequest
- (*GetTreeEntriesResponse)(nil), // 18: gitaly.GetTreeEntriesResponse
- (*ListFilesRequest)(nil), // 19: gitaly.ListFilesRequest
- (*ListFilesResponse)(nil), // 20: gitaly.ListFilesResponse
- (*FindCommitRequest)(nil), // 21: gitaly.FindCommitRequest
- (*FindCommitResponse)(nil), // 22: gitaly.FindCommitResponse
- (*ListCommitsByOidRequest)(nil), // 23: gitaly.ListCommitsByOidRequest
- (*ListCommitsByOidResponse)(nil), // 24: gitaly.ListCommitsByOidResponse
- (*ListCommitsByRefNameRequest)(nil), // 25: gitaly.ListCommitsByRefNameRequest
- (*ListCommitsByRefNameResponse)(nil), // 26: gitaly.ListCommitsByRefNameResponse
- (*FindAllCommitsRequest)(nil), // 27: gitaly.FindAllCommitsRequest
- (*FindAllCommitsResponse)(nil), // 28: gitaly.FindAllCommitsResponse
- (*FindCommitsRequest)(nil), // 29: gitaly.FindCommitsRequest
- (*FindCommitsResponse)(nil), // 30: gitaly.FindCommitsResponse
- (*CommitLanguagesRequest)(nil), // 31: gitaly.CommitLanguagesRequest
- (*CommitLanguagesResponse)(nil), // 32: gitaly.CommitLanguagesResponse
- (*RawBlameRequest)(nil), // 33: gitaly.RawBlameRequest
- (*RawBlameResponse)(nil), // 34: gitaly.RawBlameResponse
- (*LastCommitForPathRequest)(nil), // 35: gitaly.LastCommitForPathRequest
- (*LastCommitForPathResponse)(nil), // 36: gitaly.LastCommitForPathResponse
- (*ListLastCommitsForTreeRequest)(nil), // 37: gitaly.ListLastCommitsForTreeRequest
- (*ListLastCommitsForTreeResponse)(nil), // 38: gitaly.ListLastCommitsForTreeResponse
- (*CommitsByMessageRequest)(nil), // 39: gitaly.CommitsByMessageRequest
- (*CommitsByMessageResponse)(nil), // 40: gitaly.CommitsByMessageResponse
- (*FilterShasWithSignaturesRequest)(nil), // 41: gitaly.FilterShasWithSignaturesRequest
- (*FilterShasWithSignaturesResponse)(nil), // 42: gitaly.FilterShasWithSignaturesResponse
- (*ExtractCommitSignatureRequest)(nil), // 43: gitaly.ExtractCommitSignatureRequest
- (*ExtractCommitSignatureResponse)(nil), // 44: gitaly.ExtractCommitSignatureResponse
- (*GetCommitSignaturesRequest)(nil), // 45: gitaly.GetCommitSignaturesRequest
- (*GetCommitSignaturesResponse)(nil), // 46: gitaly.GetCommitSignaturesResponse
- (*GetCommitMessagesRequest)(nil), // 47: gitaly.GetCommitMessagesRequest
- (*GetCommitMessagesResponse)(nil), // 48: gitaly.GetCommitMessagesResponse
- (*ListCommitsByRefNameResponse_CommitForRef)(nil), // 49: gitaly.ListCommitsByRefNameResponse.CommitForRef
- (*CommitLanguagesResponse_Language)(nil), // 50: gitaly.CommitLanguagesResponse.Language
- (*ListLastCommitsForTreeResponse_CommitForTree)(nil), // 51: gitaly.ListLastCommitsForTreeResponse.CommitForTree
- (*Repository)(nil), // 52: gitaly.Repository
- (*PaginationParameter)(nil), // 53: gitaly.PaginationParameter
- (*GitCommit)(nil), // 54: gitaly.GitCommit
- (*timestamppb.Timestamp)(nil), // 55: google.protobuf.Timestamp
- (*GlobalOptions)(nil), // 56: gitaly.GlobalOptions
+ (ListCommitsRequest_Order)(0), // 0: gitaly.ListCommitsRequest.Order
+ (TreeEntryResponse_ObjectType)(0), // 1: gitaly.TreeEntryResponse.ObjectType
+ (TreeEntry_EntryType)(0), // 2: gitaly.TreeEntry.EntryType
+ (FindAllCommitsRequest_Order)(0), // 3: gitaly.FindAllCommitsRequest.Order
+ (FindCommitsRequest_Order)(0), // 4: gitaly.FindCommitsRequest.Order
+ (*ListCommitsRequest)(nil), // 5: gitaly.ListCommitsRequest
+ (*ListCommitsResponse)(nil), // 6: gitaly.ListCommitsResponse
+ (*ListAllCommitsRequest)(nil), // 7: gitaly.ListAllCommitsRequest
+ (*ListAllCommitsResponse)(nil), // 8: gitaly.ListAllCommitsResponse
+ (*CommitStatsRequest)(nil), // 9: gitaly.CommitStatsRequest
+ (*CommitStatsResponse)(nil), // 10: gitaly.CommitStatsResponse
+ (*CommitIsAncestorRequest)(nil), // 11: gitaly.CommitIsAncestorRequest
+ (*CommitIsAncestorResponse)(nil), // 12: gitaly.CommitIsAncestorResponse
+ (*TreeEntryRequest)(nil), // 13: gitaly.TreeEntryRequest
+ (*TreeEntryResponse)(nil), // 14: gitaly.TreeEntryResponse
+ (*CommitsBetweenRequest)(nil), // 15: gitaly.CommitsBetweenRequest
+ (*CommitsBetweenResponse)(nil), // 16: gitaly.CommitsBetweenResponse
+ (*CountCommitsRequest)(nil), // 17: gitaly.CountCommitsRequest
+ (*CountCommitsResponse)(nil), // 18: gitaly.CountCommitsResponse
+ (*CountDivergingCommitsRequest)(nil), // 19: gitaly.CountDivergingCommitsRequest
+ (*CountDivergingCommitsResponse)(nil), // 20: gitaly.CountDivergingCommitsResponse
+ (*TreeEntry)(nil), // 21: gitaly.TreeEntry
+ (*GetTreeEntriesRequest)(nil), // 22: gitaly.GetTreeEntriesRequest
+ (*GetTreeEntriesResponse)(nil), // 23: gitaly.GetTreeEntriesResponse
+ (*ListFilesRequest)(nil), // 24: gitaly.ListFilesRequest
+ (*ListFilesResponse)(nil), // 25: gitaly.ListFilesResponse
+ (*FindCommitRequest)(nil), // 26: gitaly.FindCommitRequest
+ (*FindCommitResponse)(nil), // 27: gitaly.FindCommitResponse
+ (*ListCommitsByOidRequest)(nil), // 28: gitaly.ListCommitsByOidRequest
+ (*ListCommitsByOidResponse)(nil), // 29: gitaly.ListCommitsByOidResponse
+ (*ListCommitsByRefNameRequest)(nil), // 30: gitaly.ListCommitsByRefNameRequest
+ (*ListCommitsByRefNameResponse)(nil), // 31: gitaly.ListCommitsByRefNameResponse
+ (*FindAllCommitsRequest)(nil), // 32: gitaly.FindAllCommitsRequest
+ (*FindAllCommitsResponse)(nil), // 33: gitaly.FindAllCommitsResponse
+ (*FindCommitsRequest)(nil), // 34: gitaly.FindCommitsRequest
+ (*FindCommitsResponse)(nil), // 35: gitaly.FindCommitsResponse
+ (*CommitLanguagesRequest)(nil), // 36: gitaly.CommitLanguagesRequest
+ (*CommitLanguagesResponse)(nil), // 37: gitaly.CommitLanguagesResponse
+ (*RawBlameRequest)(nil), // 38: gitaly.RawBlameRequest
+ (*RawBlameResponse)(nil), // 39: gitaly.RawBlameResponse
+ (*LastCommitForPathRequest)(nil), // 40: gitaly.LastCommitForPathRequest
+ (*LastCommitForPathResponse)(nil), // 41: gitaly.LastCommitForPathResponse
+ (*ListLastCommitsForTreeRequest)(nil), // 42: gitaly.ListLastCommitsForTreeRequest
+ (*ListLastCommitsForTreeResponse)(nil), // 43: gitaly.ListLastCommitsForTreeResponse
+ (*CommitsByMessageRequest)(nil), // 44: gitaly.CommitsByMessageRequest
+ (*CommitsByMessageResponse)(nil), // 45: gitaly.CommitsByMessageResponse
+ (*FilterShasWithSignaturesRequest)(nil), // 46: gitaly.FilterShasWithSignaturesRequest
+ (*FilterShasWithSignaturesResponse)(nil), // 47: gitaly.FilterShasWithSignaturesResponse
+ (*ExtractCommitSignatureRequest)(nil), // 48: gitaly.ExtractCommitSignatureRequest
+ (*ExtractCommitSignatureResponse)(nil), // 49: gitaly.ExtractCommitSignatureResponse
+ (*GetCommitSignaturesRequest)(nil), // 50: gitaly.GetCommitSignaturesRequest
+ (*GetCommitSignaturesResponse)(nil), // 51: gitaly.GetCommitSignaturesResponse
+ (*GetCommitMessagesRequest)(nil), // 52: gitaly.GetCommitMessagesRequest
+ (*GetCommitMessagesResponse)(nil), // 53: gitaly.GetCommitMessagesResponse
+ (*ListCommitsByRefNameResponse_CommitForRef)(nil), // 54: gitaly.ListCommitsByRefNameResponse.CommitForRef
+ (*CommitLanguagesResponse_Language)(nil), // 55: gitaly.CommitLanguagesResponse.Language
+ (*ListLastCommitsForTreeResponse_CommitForTree)(nil), // 56: gitaly.ListLastCommitsForTreeResponse.CommitForTree
+ (*Repository)(nil), // 57: gitaly.Repository
+ (*PaginationParameter)(nil), // 58: gitaly.PaginationParameter
+ (*timestamppb.Timestamp)(nil), // 59: google.protobuf.Timestamp
+ (*GitCommit)(nil), // 60: gitaly.GitCommit
+ (*GlobalOptions)(nil), // 61: gitaly.GlobalOptions
}
var file_commit_proto_depIdxs = []int32{
- 52, // 0: gitaly.CommitStatsRequest.repository:type_name -> gitaly.Repository
- 52, // 1: gitaly.CommitIsAncestorRequest.repository:type_name -> gitaly.Repository
- 52, // 2: gitaly.TreeEntryRequest.repository:type_name -> gitaly.Repository
- 0, // 3: gitaly.TreeEntryResponse.type:type_name -> gitaly.TreeEntryResponse.ObjectType
- 52, // 4: gitaly.CommitsBetweenRequest.repository:type_name -> gitaly.Repository
- 53, // 5: gitaly.CommitsBetweenRequest.pagination_params:type_name -> gitaly.PaginationParameter
- 54, // 6: gitaly.CommitsBetweenResponse.commits:type_name -> gitaly.GitCommit
- 52, // 7: gitaly.CountCommitsRequest.repository:type_name -> gitaly.Repository
- 55, // 8: gitaly.CountCommitsRequest.after:type_name -> google.protobuf.Timestamp
- 55, // 9: gitaly.CountCommitsRequest.before:type_name -> google.protobuf.Timestamp
- 56, // 10: gitaly.CountCommitsRequest.global_options:type_name -> gitaly.GlobalOptions
- 52, // 11: gitaly.CountDivergingCommitsRequest.repository:type_name -> gitaly.Repository
- 1, // 12: gitaly.TreeEntry.type:type_name -> gitaly.TreeEntry.EntryType
- 52, // 13: gitaly.GetTreeEntriesRequest.repository:type_name -> gitaly.Repository
- 16, // 14: gitaly.GetTreeEntriesResponse.entries:type_name -> gitaly.TreeEntry
- 52, // 15: gitaly.ListFilesRequest.repository:type_name -> gitaly.Repository
- 52, // 16: gitaly.FindCommitRequest.repository:type_name -> gitaly.Repository
- 54, // 17: gitaly.FindCommitResponse.commit:type_name -> gitaly.GitCommit
- 52, // 18: gitaly.ListCommitsByOidRequest.repository:type_name -> gitaly.Repository
- 54, // 19: gitaly.ListCommitsByOidResponse.commits:type_name -> gitaly.GitCommit
- 52, // 20: gitaly.ListCommitsByRefNameRequest.repository:type_name -> gitaly.Repository
- 49, // 21: gitaly.ListCommitsByRefNameResponse.commit_refs:type_name -> gitaly.ListCommitsByRefNameResponse.CommitForRef
- 52, // 22: gitaly.FindAllCommitsRequest.repository:type_name -> gitaly.Repository
- 2, // 23: gitaly.FindAllCommitsRequest.order:type_name -> gitaly.FindAllCommitsRequest.Order
- 54, // 24: gitaly.FindAllCommitsResponse.commits:type_name -> gitaly.GitCommit
- 52, // 25: gitaly.FindCommitsRequest.repository:type_name -> gitaly.Repository
- 55, // 26: gitaly.FindCommitsRequest.after:type_name -> google.protobuf.Timestamp
- 55, // 27: gitaly.FindCommitsRequest.before:type_name -> google.protobuf.Timestamp
- 3, // 28: gitaly.FindCommitsRequest.order:type_name -> gitaly.FindCommitsRequest.Order
- 56, // 29: gitaly.FindCommitsRequest.global_options:type_name -> gitaly.GlobalOptions
- 54, // 30: gitaly.FindCommitsResponse.commits:type_name -> gitaly.GitCommit
- 52, // 31: gitaly.CommitLanguagesRequest.repository:type_name -> gitaly.Repository
- 50, // 32: gitaly.CommitLanguagesResponse.languages:type_name -> gitaly.CommitLanguagesResponse.Language
- 52, // 33: gitaly.RawBlameRequest.repository:type_name -> gitaly.Repository
- 52, // 34: gitaly.LastCommitForPathRequest.repository:type_name -> gitaly.Repository
- 56, // 35: gitaly.LastCommitForPathRequest.global_options:type_name -> gitaly.GlobalOptions
- 54, // 36: gitaly.LastCommitForPathResponse.commit:type_name -> gitaly.GitCommit
- 52, // 37: gitaly.ListLastCommitsForTreeRequest.repository:type_name -> gitaly.Repository
- 56, // 38: gitaly.ListLastCommitsForTreeRequest.global_options:type_name -> gitaly.GlobalOptions
- 51, // 39: gitaly.ListLastCommitsForTreeResponse.commits:type_name -> gitaly.ListLastCommitsForTreeResponse.CommitForTree
- 52, // 40: gitaly.CommitsByMessageRequest.repository:type_name -> gitaly.Repository
- 56, // 41: gitaly.CommitsByMessageRequest.global_options:type_name -> gitaly.GlobalOptions
- 54, // 42: gitaly.CommitsByMessageResponse.commits:type_name -> gitaly.GitCommit
- 52, // 43: gitaly.FilterShasWithSignaturesRequest.repository:type_name -> gitaly.Repository
- 52, // 44: gitaly.ExtractCommitSignatureRequest.repository:type_name -> gitaly.Repository
- 52, // 45: gitaly.GetCommitSignaturesRequest.repository:type_name -> gitaly.Repository
- 52, // 46: gitaly.GetCommitMessagesRequest.repository:type_name -> gitaly.Repository
- 54, // 47: gitaly.ListCommitsByRefNameResponse.CommitForRef.commit:type_name -> gitaly.GitCommit
- 54, // 48: gitaly.ListLastCommitsForTreeResponse.CommitForTree.commit:type_name -> gitaly.GitCommit
- 6, // 49: gitaly.CommitService.CommitIsAncestor:input_type -> gitaly.CommitIsAncestorRequest
- 8, // 50: gitaly.CommitService.TreeEntry:input_type -> gitaly.TreeEntryRequest
- 10, // 51: gitaly.CommitService.CommitsBetween:input_type -> gitaly.CommitsBetweenRequest
- 12, // 52: gitaly.CommitService.CountCommits:input_type -> gitaly.CountCommitsRequest
- 14, // 53: gitaly.CommitService.CountDivergingCommits:input_type -> gitaly.CountDivergingCommitsRequest
- 17, // 54: gitaly.CommitService.GetTreeEntries:input_type -> gitaly.GetTreeEntriesRequest
- 19, // 55: gitaly.CommitService.ListFiles:input_type -> gitaly.ListFilesRequest
- 21, // 56: gitaly.CommitService.FindCommit:input_type -> gitaly.FindCommitRequest
- 4, // 57: gitaly.CommitService.CommitStats:input_type -> gitaly.CommitStatsRequest
- 27, // 58: gitaly.CommitService.FindAllCommits:input_type -> gitaly.FindAllCommitsRequest
- 29, // 59: gitaly.CommitService.FindCommits:input_type -> gitaly.FindCommitsRequest
- 31, // 60: gitaly.CommitService.CommitLanguages:input_type -> gitaly.CommitLanguagesRequest
- 33, // 61: gitaly.CommitService.RawBlame:input_type -> gitaly.RawBlameRequest
- 35, // 62: gitaly.CommitService.LastCommitForPath:input_type -> gitaly.LastCommitForPathRequest
- 37, // 63: gitaly.CommitService.ListLastCommitsForTree:input_type -> gitaly.ListLastCommitsForTreeRequest
- 39, // 64: gitaly.CommitService.CommitsByMessage:input_type -> gitaly.CommitsByMessageRequest
- 23, // 65: gitaly.CommitService.ListCommitsByOid:input_type -> gitaly.ListCommitsByOidRequest
- 25, // 66: gitaly.CommitService.ListCommitsByRefName:input_type -> gitaly.ListCommitsByRefNameRequest
- 41, // 67: gitaly.CommitService.FilterShasWithSignatures:input_type -> gitaly.FilterShasWithSignaturesRequest
- 45, // 68: gitaly.CommitService.GetCommitSignatures:input_type -> gitaly.GetCommitSignaturesRequest
- 47, // 69: gitaly.CommitService.GetCommitMessages:input_type -> gitaly.GetCommitMessagesRequest
- 7, // 70: gitaly.CommitService.CommitIsAncestor:output_type -> gitaly.CommitIsAncestorResponse
- 9, // 71: gitaly.CommitService.TreeEntry:output_type -> gitaly.TreeEntryResponse
- 11, // 72: gitaly.CommitService.CommitsBetween:output_type -> gitaly.CommitsBetweenResponse
- 13, // 73: gitaly.CommitService.CountCommits:output_type -> gitaly.CountCommitsResponse
- 15, // 74: gitaly.CommitService.CountDivergingCommits:output_type -> gitaly.CountDivergingCommitsResponse
- 18, // 75: gitaly.CommitService.GetTreeEntries:output_type -> gitaly.GetTreeEntriesResponse
- 20, // 76: gitaly.CommitService.ListFiles:output_type -> gitaly.ListFilesResponse
- 22, // 77: gitaly.CommitService.FindCommit:output_type -> gitaly.FindCommitResponse
- 5, // 78: gitaly.CommitService.CommitStats:output_type -> gitaly.CommitStatsResponse
- 28, // 79: gitaly.CommitService.FindAllCommits:output_type -> gitaly.FindAllCommitsResponse
- 30, // 80: gitaly.CommitService.FindCommits:output_type -> gitaly.FindCommitsResponse
- 32, // 81: gitaly.CommitService.CommitLanguages:output_type -> gitaly.CommitLanguagesResponse
- 34, // 82: gitaly.CommitService.RawBlame:output_type -> gitaly.RawBlameResponse
- 36, // 83: gitaly.CommitService.LastCommitForPath:output_type -> gitaly.LastCommitForPathResponse
- 38, // 84: gitaly.CommitService.ListLastCommitsForTree:output_type -> gitaly.ListLastCommitsForTreeResponse
- 40, // 85: gitaly.CommitService.CommitsByMessage:output_type -> gitaly.CommitsByMessageResponse
- 24, // 86: gitaly.CommitService.ListCommitsByOid:output_type -> gitaly.ListCommitsByOidResponse
- 26, // 87: gitaly.CommitService.ListCommitsByRefName:output_type -> gitaly.ListCommitsByRefNameResponse
- 42, // 88: gitaly.CommitService.FilterShasWithSignatures:output_type -> gitaly.FilterShasWithSignaturesResponse
- 46, // 89: gitaly.CommitService.GetCommitSignatures:output_type -> gitaly.GetCommitSignaturesResponse
- 48, // 90: gitaly.CommitService.GetCommitMessages:output_type -> gitaly.GetCommitMessagesResponse
- 70, // [70:91] is the sub-list for method output_type
- 49, // [49:70] is the sub-list for method input_type
- 49, // [49:49] is the sub-list for extension type_name
- 49, // [49:49] is the sub-list for extension extendee
- 0, // [0:49] is the sub-list for field type_name
+ 57, // 0: gitaly.ListCommitsRequest.repository:type_name -> gitaly.Repository
+ 58, // 1: gitaly.ListCommitsRequest.pagination_params:type_name -> gitaly.PaginationParameter
+ 0, // 2: gitaly.ListCommitsRequest.order:type_name -> gitaly.ListCommitsRequest.Order
+ 59, // 3: gitaly.ListCommitsRequest.after:type_name -> google.protobuf.Timestamp
+ 59, // 4: gitaly.ListCommitsRequest.before:type_name -> google.protobuf.Timestamp
+ 60, // 5: gitaly.ListCommitsResponse.commits:type_name -> gitaly.GitCommit
+ 57, // 6: gitaly.ListAllCommitsRequest.repository:type_name -> gitaly.Repository
+ 58, // 7: gitaly.ListAllCommitsRequest.pagination_params:type_name -> gitaly.PaginationParameter
+ 60, // 8: gitaly.ListAllCommitsResponse.commits:type_name -> gitaly.GitCommit
+ 57, // 9: gitaly.CommitStatsRequest.repository:type_name -> gitaly.Repository
+ 57, // 10: gitaly.CommitIsAncestorRequest.repository:type_name -> gitaly.Repository
+ 57, // 11: gitaly.TreeEntryRequest.repository:type_name -> gitaly.Repository
+ 1, // 12: gitaly.TreeEntryResponse.type:type_name -> gitaly.TreeEntryResponse.ObjectType
+ 57, // 13: gitaly.CommitsBetweenRequest.repository:type_name -> gitaly.Repository
+ 58, // 14: gitaly.CommitsBetweenRequest.pagination_params:type_name -> gitaly.PaginationParameter
+ 60, // 15: gitaly.CommitsBetweenResponse.commits:type_name -> gitaly.GitCommit
+ 57, // 16: gitaly.CountCommitsRequest.repository:type_name -> gitaly.Repository
+ 59, // 17: gitaly.CountCommitsRequest.after:type_name -> google.protobuf.Timestamp
+ 59, // 18: gitaly.CountCommitsRequest.before:type_name -> google.protobuf.Timestamp
+ 61, // 19: gitaly.CountCommitsRequest.global_options:type_name -> gitaly.GlobalOptions
+ 57, // 20: gitaly.CountDivergingCommitsRequest.repository:type_name -> gitaly.Repository
+ 2, // 21: gitaly.TreeEntry.type:type_name -> gitaly.TreeEntry.EntryType
+ 57, // 22: gitaly.GetTreeEntriesRequest.repository:type_name -> gitaly.Repository
+ 21, // 23: gitaly.GetTreeEntriesResponse.entries:type_name -> gitaly.TreeEntry
+ 57, // 24: gitaly.ListFilesRequest.repository:type_name -> gitaly.Repository
+ 57, // 25: gitaly.FindCommitRequest.repository:type_name -> gitaly.Repository
+ 60, // 26: gitaly.FindCommitResponse.commit:type_name -> gitaly.GitCommit
+ 57, // 27: gitaly.ListCommitsByOidRequest.repository:type_name -> gitaly.Repository
+ 60, // 28: gitaly.ListCommitsByOidResponse.commits:type_name -> gitaly.GitCommit
+ 57, // 29: gitaly.ListCommitsByRefNameRequest.repository:type_name -> gitaly.Repository
+ 54, // 30: gitaly.ListCommitsByRefNameResponse.commit_refs:type_name -> gitaly.ListCommitsByRefNameResponse.CommitForRef
+ 57, // 31: gitaly.FindAllCommitsRequest.repository:type_name -> gitaly.Repository
+ 3, // 32: gitaly.FindAllCommitsRequest.order:type_name -> gitaly.FindAllCommitsRequest.Order
+ 60, // 33: gitaly.FindAllCommitsResponse.commits:type_name -> gitaly.GitCommit
+ 57, // 34: gitaly.FindCommitsRequest.repository:type_name -> gitaly.Repository
+ 59, // 35: gitaly.FindCommitsRequest.after:type_name -> google.protobuf.Timestamp
+ 59, // 36: gitaly.FindCommitsRequest.before:type_name -> google.protobuf.Timestamp
+ 4, // 37: gitaly.FindCommitsRequest.order:type_name -> gitaly.FindCommitsRequest.Order
+ 61, // 38: gitaly.FindCommitsRequest.global_options:type_name -> gitaly.GlobalOptions
+ 60, // 39: gitaly.FindCommitsResponse.commits:type_name -> gitaly.GitCommit
+ 57, // 40: gitaly.CommitLanguagesRequest.repository:type_name -> gitaly.Repository
+ 55, // 41: gitaly.CommitLanguagesResponse.languages:type_name -> gitaly.CommitLanguagesResponse.Language
+ 57, // 42: gitaly.RawBlameRequest.repository:type_name -> gitaly.Repository
+ 57, // 43: gitaly.LastCommitForPathRequest.repository:type_name -> gitaly.Repository
+ 61, // 44: gitaly.LastCommitForPathRequest.global_options:type_name -> gitaly.GlobalOptions
+ 60, // 45: gitaly.LastCommitForPathResponse.commit:type_name -> gitaly.GitCommit
+ 57, // 46: gitaly.ListLastCommitsForTreeRequest.repository:type_name -> gitaly.Repository
+ 61, // 47: gitaly.ListLastCommitsForTreeRequest.global_options:type_name -> gitaly.GlobalOptions
+ 56, // 48: gitaly.ListLastCommitsForTreeResponse.commits:type_name -> gitaly.ListLastCommitsForTreeResponse.CommitForTree
+ 57, // 49: gitaly.CommitsByMessageRequest.repository:type_name -> gitaly.Repository
+ 61, // 50: gitaly.CommitsByMessageRequest.global_options:type_name -> gitaly.GlobalOptions
+ 60, // 51: gitaly.CommitsByMessageResponse.commits:type_name -> gitaly.GitCommit
+ 57, // 52: gitaly.FilterShasWithSignaturesRequest.repository:type_name -> gitaly.Repository
+ 57, // 53: gitaly.ExtractCommitSignatureRequest.repository:type_name -> gitaly.Repository
+ 57, // 54: gitaly.GetCommitSignaturesRequest.repository:type_name -> gitaly.Repository
+ 57, // 55: gitaly.GetCommitMessagesRequest.repository:type_name -> gitaly.Repository
+ 60, // 56: gitaly.ListCommitsByRefNameResponse.CommitForRef.commit:type_name -> gitaly.GitCommit
+ 60, // 57: gitaly.ListLastCommitsForTreeResponse.CommitForTree.commit:type_name -> gitaly.GitCommit
+ 5, // 58: gitaly.CommitService.ListCommits:input_type -> gitaly.ListCommitsRequest
+ 7, // 59: gitaly.CommitService.ListAllCommits:input_type -> gitaly.ListAllCommitsRequest
+ 11, // 60: gitaly.CommitService.CommitIsAncestor:input_type -> gitaly.CommitIsAncestorRequest
+ 13, // 61: gitaly.CommitService.TreeEntry:input_type -> gitaly.TreeEntryRequest
+ 15, // 62: gitaly.CommitService.CommitsBetween:input_type -> gitaly.CommitsBetweenRequest
+ 17, // 63: gitaly.CommitService.CountCommits:input_type -> gitaly.CountCommitsRequest
+ 19, // 64: gitaly.CommitService.CountDivergingCommits:input_type -> gitaly.CountDivergingCommitsRequest
+ 22, // 65: gitaly.CommitService.GetTreeEntries:input_type -> gitaly.GetTreeEntriesRequest
+ 24, // 66: gitaly.CommitService.ListFiles:input_type -> gitaly.ListFilesRequest
+ 26, // 67: gitaly.CommitService.FindCommit:input_type -> gitaly.FindCommitRequest
+ 9, // 68: gitaly.CommitService.CommitStats:input_type -> gitaly.CommitStatsRequest
+ 32, // 69: gitaly.CommitService.FindAllCommits:input_type -> gitaly.FindAllCommitsRequest
+ 34, // 70: gitaly.CommitService.FindCommits:input_type -> gitaly.FindCommitsRequest
+ 36, // 71: gitaly.CommitService.CommitLanguages:input_type -> gitaly.CommitLanguagesRequest
+ 38, // 72: gitaly.CommitService.RawBlame:input_type -> gitaly.RawBlameRequest
+ 40, // 73: gitaly.CommitService.LastCommitForPath:input_type -> gitaly.LastCommitForPathRequest
+ 42, // 74: gitaly.CommitService.ListLastCommitsForTree:input_type -> gitaly.ListLastCommitsForTreeRequest
+ 44, // 75: gitaly.CommitService.CommitsByMessage:input_type -> gitaly.CommitsByMessageRequest
+ 28, // 76: gitaly.CommitService.ListCommitsByOid:input_type -> gitaly.ListCommitsByOidRequest
+ 30, // 77: gitaly.CommitService.ListCommitsByRefName:input_type -> gitaly.ListCommitsByRefNameRequest
+ 46, // 78: gitaly.CommitService.FilterShasWithSignatures:input_type -> gitaly.FilterShasWithSignaturesRequest
+ 50, // 79: gitaly.CommitService.GetCommitSignatures:input_type -> gitaly.GetCommitSignaturesRequest
+ 52, // 80: gitaly.CommitService.GetCommitMessages:input_type -> gitaly.GetCommitMessagesRequest
+ 6, // 81: gitaly.CommitService.ListCommits:output_type -> gitaly.ListCommitsResponse
+ 8, // 82: gitaly.CommitService.ListAllCommits:output_type -> gitaly.ListAllCommitsResponse
+ 12, // 83: gitaly.CommitService.CommitIsAncestor:output_type -> gitaly.CommitIsAncestorResponse
+ 14, // 84: gitaly.CommitService.TreeEntry:output_type -> gitaly.TreeEntryResponse
+ 16, // 85: gitaly.CommitService.CommitsBetween:output_type -> gitaly.CommitsBetweenResponse
+ 18, // 86: gitaly.CommitService.CountCommits:output_type -> gitaly.CountCommitsResponse
+ 20, // 87: gitaly.CommitService.CountDivergingCommits:output_type -> gitaly.CountDivergingCommitsResponse
+ 23, // 88: gitaly.CommitService.GetTreeEntries:output_type -> gitaly.GetTreeEntriesResponse
+ 25, // 89: gitaly.CommitService.ListFiles:output_type -> gitaly.ListFilesResponse
+ 27, // 90: gitaly.CommitService.FindCommit:output_type -> gitaly.FindCommitResponse
+ 10, // 91: gitaly.CommitService.CommitStats:output_type -> gitaly.CommitStatsResponse
+ 33, // 92: gitaly.CommitService.FindAllCommits:output_type -> gitaly.FindAllCommitsResponse
+ 35, // 93: gitaly.CommitService.FindCommits:output_type -> gitaly.FindCommitsResponse
+ 37, // 94: gitaly.CommitService.CommitLanguages:output_type -> gitaly.CommitLanguagesResponse
+ 39, // 95: gitaly.CommitService.RawBlame:output_type -> gitaly.RawBlameResponse
+ 41, // 96: gitaly.CommitService.LastCommitForPath:output_type -> gitaly.LastCommitForPathResponse
+ 43, // 97: gitaly.CommitService.ListLastCommitsForTree:output_type -> gitaly.ListLastCommitsForTreeResponse
+ 45, // 98: gitaly.CommitService.CommitsByMessage:output_type -> gitaly.CommitsByMessageResponse
+ 29, // 99: gitaly.CommitService.ListCommitsByOid:output_type -> gitaly.ListCommitsByOidResponse
+ 31, // 100: gitaly.CommitService.ListCommitsByRefName:output_type -> gitaly.ListCommitsByRefNameResponse
+ 47, // 101: gitaly.CommitService.FilterShasWithSignatures:output_type -> gitaly.FilterShasWithSignaturesResponse
+ 51, // 102: gitaly.CommitService.GetCommitSignatures:output_type -> gitaly.GetCommitSignaturesResponse
+ 53, // 103: gitaly.CommitService.GetCommitMessages:output_type -> gitaly.GetCommitMessagesResponse
+ 81, // [81:104] is the sub-list for method output_type
+ 58, // [58:81] is the sub-list for method input_type
+ 58, // [58:58] is the sub-list for extension type_name
+ 58, // [58:58] is the sub-list for extension extendee
+ 0, // [0:58] is the sub-list for field type_name
}
func init() { file_commit_proto_init() }
@@ -3996,7 +4432,7 @@ func file_commit_proto_init() {
file_shared_proto_init()
if !protoimpl.UnsafeEnabled {
file_commit_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommitStatsRequest); i {
+ switch v := v.(*ListCommitsRequest); i {
case 0:
return &v.state
case 1:
@@ -4008,7 +4444,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommitStatsResponse); i {
+ switch v := v.(*ListCommitsResponse); i {
case 0:
return &v.state
case 1:
@@ -4020,7 +4456,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommitIsAncestorRequest); i {
+ switch v := v.(*ListAllCommitsRequest); i {
case 0:
return &v.state
case 1:
@@ -4032,7 +4468,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommitIsAncestorResponse); i {
+ switch v := v.(*ListAllCommitsResponse); i {
case 0:
return &v.state
case 1:
@@ -4044,7 +4480,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*TreeEntryRequest); i {
+ switch v := v.(*CommitStatsRequest); i {
case 0:
return &v.state
case 1:
@@ -4056,7 +4492,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*TreeEntryResponse); i {
+ switch v := v.(*CommitStatsResponse); i {
case 0:
return &v.state
case 1:
@@ -4068,7 +4504,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommitsBetweenRequest); i {
+ switch v := v.(*CommitIsAncestorRequest); i {
case 0:
return &v.state
case 1:
@@ -4080,7 +4516,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommitsBetweenResponse); i {
+ switch v := v.(*CommitIsAncestorResponse); i {
case 0:
return &v.state
case 1:
@@ -4092,7 +4528,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CountCommitsRequest); i {
+ switch v := v.(*TreeEntryRequest); i {
case 0:
return &v.state
case 1:
@@ -4104,7 +4540,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CountCommitsResponse); i {
+ switch v := v.(*TreeEntryResponse); i {
case 0:
return &v.state
case 1:
@@ -4116,7 +4552,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CountDivergingCommitsRequest); i {
+ switch v := v.(*CommitsBetweenRequest); i {
case 0:
return &v.state
case 1:
@@ -4128,7 +4564,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CountDivergingCommitsResponse); i {
+ switch v := v.(*CommitsBetweenResponse); i {
case 0:
return &v.state
case 1:
@@ -4140,7 +4576,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*TreeEntry); i {
+ switch v := v.(*CountCommitsRequest); i {
case 0:
return &v.state
case 1:
@@ -4152,7 +4588,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetTreeEntriesRequest); i {
+ switch v := v.(*CountCommitsResponse); i {
case 0:
return &v.state
case 1:
@@ -4164,7 +4600,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetTreeEntriesResponse); i {
+ switch v := v.(*CountDivergingCommitsRequest); i {
case 0:
return &v.state
case 1:
@@ -4176,7 +4612,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListFilesRequest); i {
+ switch v := v.(*CountDivergingCommitsResponse); i {
case 0:
return &v.state
case 1:
@@ -4188,7 +4624,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListFilesResponse); i {
+ switch v := v.(*TreeEntry); i {
case 0:
return &v.state
case 1:
@@ -4200,7 +4636,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FindCommitRequest); i {
+ switch v := v.(*GetTreeEntriesRequest); i {
case 0:
return &v.state
case 1:
@@ -4212,7 +4648,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FindCommitResponse); i {
+ switch v := v.(*GetTreeEntriesResponse); i {
case 0:
return &v.state
case 1:
@@ -4224,7 +4660,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListCommitsByOidRequest); i {
+ switch v := v.(*ListFilesRequest); i {
case 0:
return &v.state
case 1:
@@ -4236,7 +4672,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListCommitsByOidResponse); i {
+ switch v := v.(*ListFilesResponse); i {
case 0:
return &v.state
case 1:
@@ -4248,7 +4684,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListCommitsByRefNameRequest); i {
+ switch v := v.(*FindCommitRequest); i {
case 0:
return &v.state
case 1:
@@ -4260,7 +4696,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListCommitsByRefNameResponse); i {
+ switch v := v.(*FindCommitResponse); i {
case 0:
return &v.state
case 1:
@@ -4272,7 +4708,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FindAllCommitsRequest); i {
+ switch v := v.(*ListCommitsByOidRequest); i {
case 0:
return &v.state
case 1:
@@ -4284,7 +4720,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FindAllCommitsResponse); i {
+ switch v := v.(*ListCommitsByOidResponse); i {
case 0:
return &v.state
case 1:
@@ -4296,7 +4732,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FindCommitsRequest); i {
+ switch v := v.(*ListCommitsByRefNameRequest); i {
case 0:
return &v.state
case 1:
@@ -4308,7 +4744,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FindCommitsResponse); i {
+ switch v := v.(*ListCommitsByRefNameResponse); i {
case 0:
return &v.state
case 1:
@@ -4320,7 +4756,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommitLanguagesRequest); i {
+ switch v := v.(*FindAllCommitsRequest); i {
case 0:
return &v.state
case 1:
@@ -4332,7 +4768,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommitLanguagesResponse); i {
+ switch v := v.(*FindAllCommitsResponse); i {
case 0:
return &v.state
case 1:
@@ -4344,7 +4780,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RawBlameRequest); i {
+ switch v := v.(*FindCommitsRequest); i {
case 0:
return &v.state
case 1:
@@ -4356,7 +4792,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RawBlameResponse); i {
+ switch v := v.(*FindCommitsResponse); i {
case 0:
return &v.state
case 1:
@@ -4368,7 +4804,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*LastCommitForPathRequest); i {
+ switch v := v.(*CommitLanguagesRequest); i {
case 0:
return &v.state
case 1:
@@ -4380,7 +4816,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*LastCommitForPathResponse); i {
+ switch v := v.(*CommitLanguagesResponse); i {
case 0:
return &v.state
case 1:
@@ -4392,7 +4828,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListLastCommitsForTreeRequest); i {
+ switch v := v.(*RawBlameRequest); i {
case 0:
return &v.state
case 1:
@@ -4404,7 +4840,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListLastCommitsForTreeResponse); i {
+ switch v := v.(*RawBlameResponse); i {
case 0:
return &v.state
case 1:
@@ -4416,7 +4852,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommitsByMessageRequest); i {
+ switch v := v.(*LastCommitForPathRequest); i {
case 0:
return &v.state
case 1:
@@ -4428,7 +4864,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommitsByMessageResponse); i {
+ switch v := v.(*LastCommitForPathResponse); i {
case 0:
return &v.state
case 1:
@@ -4440,7 +4876,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FilterShasWithSignaturesRequest); i {
+ switch v := v.(*ListLastCommitsForTreeRequest); i {
case 0:
return &v.state
case 1:
@@ -4452,7 +4888,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FilterShasWithSignaturesResponse); i {
+ switch v := v.(*ListLastCommitsForTreeResponse); i {
case 0:
return &v.state
case 1:
@@ -4464,7 +4900,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ExtractCommitSignatureRequest); i {
+ switch v := v.(*CommitsByMessageRequest); i {
case 0:
return &v.state
case 1:
@@ -4476,7 +4912,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ExtractCommitSignatureResponse); i {
+ switch v := v.(*CommitsByMessageResponse); i {
case 0:
return &v.state
case 1:
@@ -4488,7 +4924,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetCommitSignaturesRequest); i {
+ switch v := v.(*FilterShasWithSignaturesRequest); i {
case 0:
return &v.state
case 1:
@@ -4500,7 +4936,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetCommitSignaturesResponse); i {
+ switch v := v.(*FilterShasWithSignaturesResponse); i {
case 0:
return &v.state
case 1:
@@ -4512,7 +4948,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetCommitMessagesRequest); i {
+ switch v := v.(*ExtractCommitSignatureRequest); i {
case 0:
return &v.state
case 1:
@@ -4524,7 +4960,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*GetCommitMessagesResponse); i {
+ switch v := v.(*ExtractCommitSignatureResponse); i {
case 0:
return &v.state
case 1:
@@ -4536,7 +4972,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*ListCommitsByRefNameResponse_CommitForRef); i {
+ switch v := v.(*GetCommitSignaturesRequest); i {
case 0:
return &v.state
case 1:
@@ -4548,7 +4984,7 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*CommitLanguagesResponse_Language); i {
+ switch v := v.(*GetCommitSignaturesResponse); i {
case 0:
return &v.state
case 1:
@@ -4560,6 +4996,54 @@ func file_commit_proto_init() {
}
}
file_commit_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetCommitMessagesRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_commit_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetCommitMessagesResponse); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_commit_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListCommitsByRefNameResponse_CommitForRef); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_commit_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CommitLanguagesResponse_Language); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_commit_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ListLastCommitsForTreeResponse_CommitForTree); i {
case 0:
return &v.state
@@ -4577,8 +5061,8 @@ func file_commit_proto_init() {
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_commit_proto_rawDesc,
- NumEnums: 4,
- NumMessages: 48,
+ NumEnums: 5,
+ NumMessages: 52,
NumExtensions: 0,
NumServices: 1,
},
diff --git a/proto/go/gitalypb/commit_grpc.pb.go b/proto/go/gitalypb/commit_grpc.pb.go
index fa9a0bf67..e9027a158 100644
--- a/proto/go/gitalypb/commit_grpc.pb.go
+++ b/proto/go/gitalypb/commit_grpc.pb.go
@@ -18,6 +18,14 @@ const _ = grpc.SupportPackageIsVersion7
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type CommitServiceClient interface {
+ // ListCommits lists all commits reachable via a set of references by doing a
+ // graph walk. This deprecates ListNewCommits, FindAllCommits, FindCommits
+ // (except Follow is not yet supported) and CommitsBetweenRequest. Any
+ // unknown revisions will cause the RPC to fail.
+ ListCommits(ctx context.Context, in *ListCommitsRequest, opts ...grpc.CallOption) (CommitService_ListCommitsClient, error)
+ // ListAllCommits lists all commits present in the repository, including
+ // those not reachable by any reference.
+ ListAllCommits(ctx context.Context, in *ListAllCommitsRequest, opts ...grpc.CallOption) (CommitService_ListAllCommitsClient, error)
CommitIsAncestor(ctx context.Context, in *CommitIsAncestorRequest, opts ...grpc.CallOption) (*CommitIsAncestorResponse, error)
TreeEntry(ctx context.Context, in *TreeEntryRequest, opts ...grpc.CallOption) (CommitService_TreeEntryClient, error)
CommitsBetween(ctx context.Context, in *CommitsBetweenRequest, opts ...grpc.CallOption) (CommitService_CommitsBetweenClient, error)
@@ -50,6 +58,70 @@ func NewCommitServiceClient(cc grpc.ClientConnInterface) CommitServiceClient {
return &commitServiceClient{cc}
}
+func (c *commitServiceClient) ListCommits(ctx context.Context, in *ListCommitsRequest, opts ...grpc.CallOption) (CommitService_ListCommitsClient, error) {
+ stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[0], "/gitaly.CommitService/ListCommits", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &commitServiceListCommitsClient{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_ListCommitsClient interface {
+ Recv() (*ListCommitsResponse, error)
+ grpc.ClientStream
+}
+
+type commitServiceListCommitsClient struct {
+ grpc.ClientStream
+}
+
+func (x *commitServiceListCommitsClient) Recv() (*ListCommitsResponse, error) {
+ m := new(ListCommitsResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *commitServiceClient) ListAllCommits(ctx context.Context, in *ListAllCommitsRequest, opts ...grpc.CallOption) (CommitService_ListAllCommitsClient, error) {
+ stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[1], "/gitaly.CommitService/ListAllCommits", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &commitServiceListAllCommitsClient{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_ListAllCommitsClient interface {
+ Recv() (*ListAllCommitsResponse, error)
+ grpc.ClientStream
+}
+
+type commitServiceListAllCommitsClient struct {
+ grpc.ClientStream
+}
+
+func (x *commitServiceListAllCommitsClient) Recv() (*ListAllCommitsResponse, error) {
+ m := new(ListAllCommitsResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
func (c *commitServiceClient) CommitIsAncestor(ctx context.Context, in *CommitIsAncestorRequest, opts ...grpc.CallOption) (*CommitIsAncestorResponse, error) {
out := new(CommitIsAncestorResponse)
err := c.cc.Invoke(ctx, "/gitaly.CommitService/CommitIsAncestor", in, out, opts...)
@@ -60,7 +132,7 @@ func (c *commitServiceClient) CommitIsAncestor(ctx context.Context, in *CommitIs
}
func (c *commitServiceClient) TreeEntry(ctx context.Context, in *TreeEntryRequest, opts ...grpc.CallOption) (CommitService_TreeEntryClient, error) {
- stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[0], "/gitaly.CommitService/TreeEntry", opts...)
+ stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[2], "/gitaly.CommitService/TreeEntry", opts...)
if err != nil {
return nil, err
}
@@ -92,7 +164,7 @@ func (x *commitServiceTreeEntryClient) Recv() (*TreeEntryResponse, error) {
}
func (c *commitServiceClient) CommitsBetween(ctx context.Context, in *CommitsBetweenRequest, opts ...grpc.CallOption) (CommitService_CommitsBetweenClient, error) {
- stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[1], "/gitaly.CommitService/CommitsBetween", opts...)
+ stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[3], "/gitaly.CommitService/CommitsBetween", opts...)
if err != nil {
return nil, err
}
@@ -142,7 +214,7 @@ func (c *commitServiceClient) CountDivergingCommits(ctx context.Context, in *Cou
}
func (c *commitServiceClient) GetTreeEntries(ctx context.Context, in *GetTreeEntriesRequest, opts ...grpc.CallOption) (CommitService_GetTreeEntriesClient, error) {
- stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[2], "/gitaly.CommitService/GetTreeEntries", opts...)
+ stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[4], "/gitaly.CommitService/GetTreeEntries", opts...)
if err != nil {
return nil, err
}
@@ -174,7 +246,7 @@ func (x *commitServiceGetTreeEntriesClient) Recv() (*GetTreeEntriesResponse, err
}
func (c *commitServiceClient) ListFiles(ctx context.Context, in *ListFilesRequest, opts ...grpc.CallOption) (CommitService_ListFilesClient, error) {
- stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[3], "/gitaly.CommitService/ListFiles", opts...)
+ stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[5], "/gitaly.CommitService/ListFiles", opts...)
if err != nil {
return nil, err
}
@@ -224,7 +296,7 @@ func (c *commitServiceClient) CommitStats(ctx context.Context, in *CommitStatsRe
}
func (c *commitServiceClient) FindAllCommits(ctx context.Context, in *FindAllCommitsRequest, opts ...grpc.CallOption) (CommitService_FindAllCommitsClient, error) {
- stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[4], "/gitaly.CommitService/FindAllCommits", opts...)
+ stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[6], "/gitaly.CommitService/FindAllCommits", opts...)
if err != nil {
return nil, err
}
@@ -256,7 +328,7 @@ func (x *commitServiceFindAllCommitsClient) Recv() (*FindAllCommitsResponse, err
}
func (c *commitServiceClient) FindCommits(ctx context.Context, in *FindCommitsRequest, opts ...grpc.CallOption) (CommitService_FindCommitsClient, error) {
- stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[5], "/gitaly.CommitService/FindCommits", opts...)
+ stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[7], "/gitaly.CommitService/FindCommits", opts...)
if err != nil {
return nil, err
}
@@ -297,7 +369,7 @@ func (c *commitServiceClient) CommitLanguages(ctx context.Context, in *CommitLan
}
func (c *commitServiceClient) RawBlame(ctx context.Context, in *RawBlameRequest, opts ...grpc.CallOption) (CommitService_RawBlameClient, error) {
- stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[6], "/gitaly.CommitService/RawBlame", opts...)
+ stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[8], "/gitaly.CommitService/RawBlame", opts...)
if err != nil {
return nil, err
}
@@ -338,7 +410,7 @@ func (c *commitServiceClient) LastCommitForPath(ctx context.Context, in *LastCom
}
func (c *commitServiceClient) ListLastCommitsForTree(ctx context.Context, in *ListLastCommitsForTreeRequest, opts ...grpc.CallOption) (CommitService_ListLastCommitsForTreeClient, error) {
- stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[7], "/gitaly.CommitService/ListLastCommitsForTree", opts...)
+ stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[9], "/gitaly.CommitService/ListLastCommitsForTree", opts...)
if err != nil {
return nil, err
}
@@ -370,7 +442,7 @@ func (x *commitServiceListLastCommitsForTreeClient) Recv() (*ListLastCommitsForT
}
func (c *commitServiceClient) CommitsByMessage(ctx context.Context, in *CommitsByMessageRequest, opts ...grpc.CallOption) (CommitService_CommitsByMessageClient, error) {
- stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[8], "/gitaly.CommitService/CommitsByMessage", opts...)
+ stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[10], "/gitaly.CommitService/CommitsByMessage", opts...)
if err != nil {
return nil, err
}
@@ -402,7 +474,7 @@ func (x *commitServiceCommitsByMessageClient) Recv() (*CommitsByMessageResponse,
}
func (c *commitServiceClient) ListCommitsByOid(ctx context.Context, in *ListCommitsByOidRequest, opts ...grpc.CallOption) (CommitService_ListCommitsByOidClient, error) {
- stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[9], "/gitaly.CommitService/ListCommitsByOid", opts...)
+ stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[11], "/gitaly.CommitService/ListCommitsByOid", opts...)
if err != nil {
return nil, err
}
@@ -434,7 +506,7 @@ func (x *commitServiceListCommitsByOidClient) Recv() (*ListCommitsByOidResponse,
}
func (c *commitServiceClient) ListCommitsByRefName(ctx context.Context, in *ListCommitsByRefNameRequest, opts ...grpc.CallOption) (CommitService_ListCommitsByRefNameClient, error) {
- stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[10], "/gitaly.CommitService/ListCommitsByRefName", opts...)
+ stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[12], "/gitaly.CommitService/ListCommitsByRefName", opts...)
if err != nil {
return nil, err
}
@@ -466,7 +538,7 @@ func (x *commitServiceListCommitsByRefNameClient) Recv() (*ListCommitsByRefNameR
}
func (c *commitServiceClient) FilterShasWithSignatures(ctx context.Context, opts ...grpc.CallOption) (CommitService_FilterShasWithSignaturesClient, error) {
- stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[11], "/gitaly.CommitService/FilterShasWithSignatures", opts...)
+ stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[13], "/gitaly.CommitService/FilterShasWithSignatures", opts...)
if err != nil {
return nil, err
}
@@ -497,7 +569,7 @@ func (x *commitServiceFilterShasWithSignaturesClient) Recv() (*FilterShasWithSig
}
func (c *commitServiceClient) GetCommitSignatures(ctx context.Context, in *GetCommitSignaturesRequest, opts ...grpc.CallOption) (CommitService_GetCommitSignaturesClient, error) {
- stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[12], "/gitaly.CommitService/GetCommitSignatures", opts...)
+ stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[14], "/gitaly.CommitService/GetCommitSignatures", opts...)
if err != nil {
return nil, err
}
@@ -529,7 +601,7 @@ func (x *commitServiceGetCommitSignaturesClient) Recv() (*GetCommitSignaturesRes
}
func (c *commitServiceClient) GetCommitMessages(ctx context.Context, in *GetCommitMessagesRequest, opts ...grpc.CallOption) (CommitService_GetCommitMessagesClient, error) {
- stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[13], "/gitaly.CommitService/GetCommitMessages", opts...)
+ stream, err := c.cc.NewStream(ctx, &CommitService_ServiceDesc.Streams[15], "/gitaly.CommitService/GetCommitMessages", opts...)
if err != nil {
return nil, err
}
@@ -564,6 +636,14 @@ func (x *commitServiceGetCommitMessagesClient) Recv() (*GetCommitMessagesRespons
// All implementations must embed UnimplementedCommitServiceServer
// for forward compatibility
type CommitServiceServer interface {
+ // ListCommits lists all commits reachable via a set of references by doing a
+ // graph walk. This deprecates ListNewCommits, FindAllCommits, FindCommits
+ // (except Follow is not yet supported) and CommitsBetweenRequest. Any
+ // unknown revisions will cause the RPC to fail.
+ ListCommits(*ListCommitsRequest, CommitService_ListCommitsServer) error
+ // ListAllCommits lists all commits present in the repository, including
+ // those not reachable by any reference.
+ ListAllCommits(*ListAllCommitsRequest, CommitService_ListAllCommitsServer) error
CommitIsAncestor(context.Context, *CommitIsAncestorRequest) (*CommitIsAncestorResponse, error)
TreeEntry(*TreeEntryRequest, CommitService_TreeEntryServer) error
CommitsBetween(*CommitsBetweenRequest, CommitService_CommitsBetweenServer) error
@@ -593,6 +673,12 @@ type CommitServiceServer interface {
type UnimplementedCommitServiceServer struct {
}
+func (UnimplementedCommitServiceServer) ListCommits(*ListCommitsRequest, CommitService_ListCommitsServer) error {
+ return status.Errorf(codes.Unimplemented, "method ListCommits not implemented")
+}
+func (UnimplementedCommitServiceServer) ListAllCommits(*ListAllCommitsRequest, CommitService_ListAllCommitsServer) error {
+ return status.Errorf(codes.Unimplemented, "method ListAllCommits not implemented")
+}
func (UnimplementedCommitServiceServer) CommitIsAncestor(context.Context, *CommitIsAncestorRequest) (*CommitIsAncestorResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CommitIsAncestor not implemented")
}
@@ -669,6 +755,48 @@ func RegisterCommitServiceServer(s grpc.ServiceRegistrar, srv CommitServiceServe
s.RegisterService(&CommitService_ServiceDesc, srv)
}
+func _CommitService_ListCommits_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(ListCommitsRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(CommitServiceServer).ListCommits(m, &commitServiceListCommitsServer{stream})
+}
+
+type CommitService_ListCommitsServer interface {
+ Send(*ListCommitsResponse) error
+ grpc.ServerStream
+}
+
+type commitServiceListCommitsServer struct {
+ grpc.ServerStream
+}
+
+func (x *commitServiceListCommitsServer) Send(m *ListCommitsResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func _CommitService_ListAllCommits_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(ListAllCommitsRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(CommitServiceServer).ListAllCommits(m, &commitServiceListAllCommitsServer{stream})
+}
+
+type CommitService_ListAllCommitsServer interface {
+ Send(*ListAllCommitsResponse) error
+ grpc.ServerStream
+}
+
+type commitServiceListAllCommitsServer struct {
+ grpc.ServerStream
+}
+
+func (x *commitServiceListAllCommitsServer) Send(m *ListAllCommitsResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
func _CommitService_CommitIsAncestor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CommitIsAncestorRequest)
if err := dec(in); err != nil {
@@ -1132,6 +1260,16 @@ var CommitService_ServiceDesc = grpc.ServiceDesc{
},
Streams: []grpc.StreamDesc{
{
+ StreamName: "ListCommits",
+ Handler: _CommitService_ListCommits_Handler,
+ ServerStreams: true,
+ },
+ {
+ StreamName: "ListAllCommits",
+ Handler: _CommitService_ListAllCommits_Handler,
+ ServerStreams: true,
+ },
+ {
StreamName: "TreeEntry",
Handler: _CommitService_TreeEntry_Handler,
ServerStreams: true,
diff --git a/ruby/proto/gitaly/commit_pb.rb b/ruby/proto/gitaly/commit_pb.rb
index 63251e66e..e27ba697c 100644
--- a/ruby/proto/gitaly/commit_pb.rb
+++ b/ruby/proto/gitaly/commit_pb.rb
@@ -8,6 +8,33 @@ require 'shared_pb'
require 'google/protobuf/timestamp_pb'
Google::Protobuf::DescriptorPool.generated_pool.build do
add_file("commit.proto", :syntax => :proto3) do
+ add_message "gitaly.ListCommitsRequest" do
+ optional :repository, :message, 1, "gitaly.Repository"
+ repeated :revisions, :string, 2
+ optional :pagination_params, :message, 3, "gitaly.PaginationParameter"
+ optional :order, :enum, 4, "gitaly.ListCommitsRequest.Order"
+ optional :max_parents, :uint32, 5
+ optional :disable_walk, :bool, 6
+ optional :first_parent, :bool, 7
+ optional :after, :message, 8, "google.protobuf.Timestamp"
+ optional :before, :message, 9, "google.protobuf.Timestamp"
+ optional :author, :bytes, 10
+ end
+ add_enum "gitaly.ListCommitsRequest.Order" do
+ value :NONE, 0
+ value :TOPO, 1
+ value :DATE, 2
+ end
+ add_message "gitaly.ListCommitsResponse" do
+ repeated :commits, :message, 1, "gitaly.GitCommit"
+ end
+ add_message "gitaly.ListAllCommitsRequest" do
+ optional :repository, :message, 1, "gitaly.Repository"
+ optional :pagination_params, :message, 2, "gitaly.PaginationParameter"
+ end
+ add_message "gitaly.ListAllCommitsResponse" do
+ repeated :commits, :message, 1, "gitaly.GitCommit"
+ end
add_message "gitaly.CommitStatsRequest" do
optional :repository, :message, 1, "gitaly.Repository"
optional :revision, :bytes, 2
@@ -270,6 +297,11 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
end
module Gitaly
+ ListCommitsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.ListCommitsRequest").msgclass
+ ListCommitsRequest::Order = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.ListCommitsRequest.Order").enummodule
+ ListCommitsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.ListCommitsResponse").msgclass
+ ListAllCommitsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.ListAllCommitsRequest").msgclass
+ ListAllCommitsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.ListAllCommitsResponse").msgclass
CommitStatsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.CommitStatsRequest").msgclass
CommitStatsResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.CommitStatsResponse").msgclass
CommitIsAncestorRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.CommitIsAncestorRequest").msgclass
diff --git a/ruby/proto/gitaly/commit_services_pb.rb b/ruby/proto/gitaly/commit_services_pb.rb
index 4f761c423..74f2fca05 100644
--- a/ruby/proto/gitaly/commit_services_pb.rb
+++ b/ruby/proto/gitaly/commit_services_pb.rb
@@ -14,6 +14,14 @@ module Gitaly
self.unmarshal_class_method = :decode
self.service_name = 'gitaly.CommitService'
+ # ListCommits lists all commits reachable via a set of references by doing a
+ # graph walk. This deprecates ListNewCommits, FindAllCommits, FindCommits
+ # (except Follow is not yet supported) and CommitsBetweenRequest. Any
+ # unknown revisions will cause the RPC to fail.
+ rpc :ListCommits, Gitaly::ListCommitsRequest, stream(Gitaly::ListCommitsResponse)
+ # ListAllCommits lists all commits present in the repository, including
+ # those not reachable by any reference.
+ rpc :ListAllCommits, Gitaly::ListAllCommitsRequest, stream(Gitaly::ListAllCommitsResponse)
rpc :CommitIsAncestor, Gitaly::CommitIsAncestorRequest, Gitaly::CommitIsAncestorResponse
rpc :TreeEntry, Gitaly::TreeEntryRequest, stream(Gitaly::TreeEntryResponse)
rpc :CommitsBetween, Gitaly::CommitsBetweenRequest, stream(Gitaly::CommitsBetweenResponse)