diff options
author | Igor Drozdov <idrozdov@gitlab.com> | 2023-06-22 14:39:48 +0300 |
---|---|---|
committer | Igor Drozdov <idrozdov@gitlab.com> | 2023-06-29 08:21:31 +0300 |
commit | 06ec73c64bed32ce40bc839910a0a73d9b72dd01 (patch) | |
tree | f811bc02fc16df23b6ccb009e703934e903d793f | |
parent | 2fdab44eee76119fcfbb61186a63ce0e673ceb40 (diff) |
Extend GetCommitSignatures to return Signer
This field indicates whether the commit signature has
been signed by a user or by the system
7 files changed, 547 insertions, 354 deletions
diff --git a/internal/gitaly/service/commit/commit_signatures.go b/internal/gitaly/service/commit/commit_signatures.go index f054497e3..ff1675f77 100644 --- a/internal/gitaly/service/commit/commit_signatures.go +++ b/internal/gitaly/service/commit/commit_signatures.go @@ -10,6 +10,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v16/internal/git" "gitlab.com/gitlab-org/gitaly/v16/internal/git/catfile" "gitlab.com/gitlab-org/gitaly/v16/internal/gitaly/storage" + "gitlab.com/gitlab-org/gitaly/v16/internal/signature" "gitlab.com/gitlab-org/gitaly/v16/internal/structerr" "gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/v16/streamio" @@ -35,6 +36,14 @@ func (s *server) getCommitSignatures(request *gitalypb.GetCommitSignaturesReques } defer cancel() + var signingKey signature.SigningKey + if s.cfg.Git.SigningKey != "" { + signingKey, err = signature.ParseSigningKey(s.cfg.Git.SigningKey) + if err != nil { + return fmt.Errorf("failed to parse signing key: %w", err) + } + } + for _, commitID := range request.CommitIds { commitObj, err := objectReader.Object(ctx, git.Revision(commitID)+"^{commit}") if err != nil { @@ -49,7 +58,14 @@ func (s *server) getCommitSignatures(request *gitalypb.GetCommitSignaturesReques return structerr.NewInternal("%w", err) } - if err = sendResponse(commitID, signatureKey, commitText, stream); err != nil { + signer := gitalypb.GetCommitSignaturesResponse_SIGNER_USER + if signingKey != nil { + if err := signingKey.Verify(signatureKey, commitText); err == nil { + signer = gitalypb.GetCommitSignaturesResponse_SIGNER_SYSTEM + } + } + + if err = sendResponse(commitID, signatureKey, commitText, signer, stream); err != nil { return structerr.NewInternal("%w", err) } } @@ -99,7 +115,13 @@ func extractSignature(reader io.Reader) ([]byte, []byte, error) { return signatureKey, commitText, nil } -func sendResponse(commitID string, signatureKey []byte, commitText []byte, stream gitalypb.CommitService_GetCommitSignaturesServer) error { +func sendResponse( + commitID string, + signatureKey []byte, + commitText []byte, + signer gitalypb.GetCommitSignaturesResponse_Signer, + stream gitalypb.CommitService_GetCommitSignaturesServer, +) error { if len(signatureKey) <= 0 { return nil } @@ -107,6 +129,7 @@ func sendResponse(commitID string, signatureKey []byte, commitText []byte, strea err := stream.Send(&gitalypb.GetCommitSignaturesResponse{ CommitId: commitID, Signature: signatureKey, + Signer: signer, }) if err != nil { return err diff --git a/internal/gitaly/service/commit/commit_signatures_test.go b/internal/gitaly/service/commit/commit_signatures_test.go index 1d858b502..2632085df 100644 --- a/internal/gitaly/service/commit/commit_signatures_test.go +++ b/internal/gitaly/service/commit/commit_signatures_test.go @@ -4,17 +4,22 @@ package commit import ( "bytes" + "context" "fmt" "io" "testing" "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/gitaly/v16/internal/featureflag" "gitlab.com/gitlab-org/gitaly/v16/internal/git" "gitlab.com/gitlab-org/gitaly/v16/internal/git/gittest" + "gitlab.com/gitlab-org/gitaly/v16/internal/git/localrepo" + "gitlab.com/gitlab-org/gitaly/v16/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/v16/internal/gitaly/storage" "gitlab.com/gitlab-org/gitaly/v16/internal/helper/text" "gitlab.com/gitlab-org/gitaly/v16/internal/structerr" "gitlab.com/gitlab-org/gitaly/v16/internal/testhelper" + "gitlab.com/gitlab-org/gitaly/v16/internal/testhelper/testcfg" "gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" @@ -22,9 +27,19 @@ import ( func TestSuccessfulGetCommitSignaturesRequest(t *testing.T) { t.Parallel() + testhelper.NewFeatureSets(featureflag.GPGSigning).Run(t, testSuccessfulGetCommitSignaturesRequest) +} - ctx := testhelper.Context(t) - cfg, repo, repoPath, client := setupCommitServiceWithRepo(t, ctx) +func testSuccessfulGetCommitSignaturesRequest(t *testing.T, ctx context.Context) { + cfg := testcfg.Build(t) + + cfg.Git.SigningKey = "testdata/signing_ssh_key_ed25519" + cfg.SocketPath = startTestServices(t, cfg) + client := newCommitServiceClient(t, cfg.SocketPath) + + repo, repoPath := gittest.CreateRepository(t, ctx, cfg, gittest.CreateRepositoryConfig{ + Seed: gittest.SeedGitLabTest, + }) commitData := testhelper.MustReadFile(t, "testdata/dc00eb001f41dfac08192ead79c2377c588b82ee.commit") commit := text.ChompBytes(gittest.ExecOpts(t, cfg, gittest.ExecConfig{Stdin: bytes.NewReader(commitData)}, @@ -32,6 +47,7 @@ func TestSuccessfulGetCommitSignaturesRequest(t *testing.T) { )) require.Equal(t, "dc00eb001f41dfac08192ead79c2377c588b82ee", commit) + signedByGitalyOid := commitSignedByGitaly(t, ctx, repo, cfg) request := &gitalypb.GetCommitSignaturesRequest{ Repository: repo, CommitIds: []string{ @@ -42,6 +58,7 @@ func TestSuccessfulGetCommitSignaturesRequest(t *testing.T) { "8cf8e80a5a0546e391823c250f2b26b9cf15ce88", // has signature and commit message > 4MB "dc00eb001f41dfac08192ead79c2377c588b82ee", // has signature and commit message without newline at the end "7b5160f9bb23a3d58a0accdbe89da13b96b1ece9", // SSH signature + signedByGitalyOid, // has signature created by Gitaly }, } @@ -50,29 +67,43 @@ func TestSuccessfulGetCommitSignaturesRequest(t *testing.T) { CommitId: "5937ac0a7beb003549fc5fd26fc247adbce4a52e", Signature: testhelper.MustReadFile(t, "testdata/commit-5937ac0a7beb003549fc5fd26fc247adbce4a52e-signature"), SignedText: testhelper.MustReadFile(t, "testdata/commit-5937ac0a7beb003549fc5fd26fc247adbce4a52e-signed-text"), + Signer: gitalypb.GetCommitSignaturesResponse_SIGNER_USER, }, { CommitId: "a17a9f66543673edf0a3d1c6b93bdda3fe600f32", Signature: testhelper.MustReadFile(t, "testdata/gitlab-test-commit-a17a9f66543673edf0a3d1c6b93bdda3fe600f32-signature"), SignedText: testhelper.MustReadFile(t, "testdata/gitlab-test-commit-a17a9f66543673edf0a3d1c6b93bdda3fe600f32-signed-text"), + Signer: gitalypb.GetCommitSignaturesResponse_SIGNER_USER, }, { CommitId: "8cf8e80a5a0546e391823c250f2b26b9cf15ce88", Signature: testhelper.MustReadFile(t, "testdata/gitaly-test-commit-8cf8e80a5a0546e391823c250f2b26b9cf15ce88-signature"), SignedText: testhelper.MustReadFile(t, "testdata/gitaly-test-commit-8cf8e80a5a0546e391823c250f2b26b9cf15ce88-signed-text"), + Signer: gitalypb.GetCommitSignaturesResponse_SIGNER_USER, }, { CommitId: "dc00eb001f41dfac08192ead79c2377c588b82ee", Signature: testhelper.MustReadFile(t, "testdata/dc00eb001f41dfac08192ead79c2377c588b82ee-signed-no-newline-signature.txt"), SignedText: testhelper.MustReadFile(t, "testdata/dc00eb001f41dfac08192ead79c2377c588b82ee-signed-no-newline-signed-text.txt"), + Signer: gitalypb.GetCommitSignaturesResponse_SIGNER_USER, }, { CommitId: "7b5160f9bb23a3d58a0accdbe89da13b96b1ece9", Signature: testhelper.MustReadFile(t, "testdata/7b5160f9bb23a3d58a0accdbe89da13b96b1ece9-ssh-signature"), SignedText: testhelper.MustReadFile(t, "testdata/7b5160f9bb23a3d58a0accdbe89da13b96b1ece9-ssh-signed-text"), + Signer: gitalypb.GetCommitSignaturesResponse_SIGNER_USER, }, } + if featureflag.GPGSigning.IsEnabled(ctx) { + expectedSignatures = append(expectedSignatures, &gitalypb.GetCommitSignaturesResponse{ + CommitId: signedByGitalyOid, + Signature: testhelper.MustReadFile(t, "testdata/38176a00dc2c373ee45dfb5d0e3c459ea46ac5b5-ssh-gitaly-signature"), + SignedText: testhelper.MustReadFile(t, "testdata/38176a00dc2c373ee45dfb5d0e3c459ea46ac5b5-ssh-gitaly-signed-text"), + Signer: gitalypb.GetCommitSignaturesResponse_SIGNER_SYSTEM, + }) + } + c, err := client.GetCommitSignatures(ctx, request) require.NoError(t, err) @@ -86,6 +117,7 @@ func TestSuccessfulGetCommitSignaturesRequest(t *testing.T) { require.Equal(t, expected.CommitId, fetchedSignatures[i].CommitId) require.Equal(t, expected.Signature, fetchedSignatures[i].Signature) require.Equal(t, expected.SignedText, fetchedSignatures[i].SignedText) + require.Equal(t, expected.Signer, fetchedSignatures[i].Signer) } } @@ -173,3 +205,38 @@ func readAllSignaturesFromClient(t *testing.T, c gitalypb.CommitService_GetCommi return } + +func commitSignedByGitaly(t *testing.T, ctx context.Context, repoProto *gitalypb.Repository, cfg config.Cfg) string { + testcfg.BuildGitalyGPG(t, cfg) + + repo := localrepo.NewTestRepo(t, cfg, repoProto) + + blobID, err := repo.WriteBlob(ctx, "file", bytes.NewBufferString("updated")) + require.NoError(t, err) + + tree := &localrepo.TreeEntry{ + Type: localrepo.Tree, + Mode: "040000", + Entries: []*localrepo.TreeEntry{ + {Path: "file", Mode: "100644", OID: blobID}, + }, + } + require.NoError(t, tree.Write(ctx, repo)) + + commitCfg := localrepo.WriteCommitConfig{ + TreeID: tree.OID, + AuthorName: gittest.DefaultCommitterName, + AuthorEmail: gittest.DefaultCommitterMail, + CommitterName: gittest.DefaultCommitterName, + CommitterEmail: gittest.DefaultCommitterMail, + AuthorDate: gittest.DefaultCommitTime, + CommitterDate: gittest.DefaultCommitTime, + Message: "message", + SigningKey: cfg.Git.SigningKey, + } + + oid, err := repo.WriteCommit(ctx, commitCfg) + require.Nil(t, err) + + return oid.String() +} diff --git a/internal/gitaly/service/commit/testdata/38176a00dc2c373ee45dfb5d0e3c459ea46ac5b5-ssh-gitaly-signature b/internal/gitaly/service/commit/testdata/38176a00dc2c373ee45dfb5d0e3c459ea46ac5b5-ssh-gitaly-signature new file mode 100644 index 000000000..31242342d --- /dev/null +++ b/internal/gitaly/service/commit/testdata/38176a00dc2c373ee45dfb5d0e3c459ea46ac5b5-ssh-gitaly-signature @@ -0,0 +1,6 @@ +-----BEGIN SSH SIGNATURE----- +U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgVzKQNpRPvHihfJQJ+Com +F8BdFuG2wuXh+LjXjbOs8IgAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3Nz +aC1lZDI1NTE5AAAAQB6uCeUpvnFGR/cowe1pQyTZiTzKsi1tnez0EO8o2LtrJr+g +k8fZo+m7jSM0TpefrL0iyHxevrbKslyXw1lJVAM= +-----END SSH SIGNATURE----- diff --git a/internal/gitaly/service/commit/testdata/38176a00dc2c373ee45dfb5d0e3c459ea46ac5b5-ssh-gitaly-signed-text b/internal/gitaly/service/commit/testdata/38176a00dc2c373ee45dfb5d0e3c459ea46ac5b5-ssh-gitaly-signed-text new file mode 100644 index 000000000..b5f0b3239 --- /dev/null +++ b/internal/gitaly/service/commit/testdata/38176a00dc2c373ee45dfb5d0e3c459ea46ac5b5-ssh-gitaly-signed-text @@ -0,0 +1,5 @@ +tree 3d908f212095d9458b2fab86a6b4fa185935b8fc +author Scrooge McDuck <scrooge@mcduck.com> 1572776879 +0100 +committer Scrooge McDuck <scrooge@mcduck.com> 1572776879 +0100 + +message
\ No newline at end of file diff --git a/internal/gitaly/service/commit/testdata/signing_ssh_key_ed25519 b/internal/gitaly/service/commit/testdata/signing_ssh_key_ed25519 new file mode 100644 index 000000000..81476de35 --- /dev/null +++ b/internal/gitaly/service/commit/testdata/signing_ssh_key_ed25519 @@ -0,0 +1,8 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW +QyNTUxOQAAACBXMpA2lE+8eKF8lAn4KiYXwF0W4bbC5eH4uNeNs6zwiAAAAKiS/Kcbkvyn +GwAAAAtzc2gtZWQyNTUxOQAAACBXMpA2lE+8eKF8lAn4KiYXwF0W4bbC5eH4uNeNs6zwiA +AAAEDhp93OSvbbx0XSDEbfGhI4xna38KQ5DxXDsTK4vjUUAlcykDaUT7x4oXyUCfgqJhfA +XRbhtsLl4fi4142zrPCIAAAAJWlnb3Jkcm96ZG92QElnb3JzLU1hY0Jvb2stUHJvLTIubG +9jYWw= +-----END OPENSSH PRIVATE KEY----- diff --git a/proto/commit.proto b/proto/commit.proto index 780b7cc2d..f2c26c30a 100644 --- a/proto/commit.proto +++ b/proto/commit.proto @@ -813,12 +813,24 @@ message GetCommitSignaturesRequest { // This comment is left unintentionally blank. message GetCommitSignaturesResponse { - // Only present for a new commit signature data. + // Signer of the commit. A commit can be signed either by a user or by Gitaly itself. + enum Signer { + // SIGNER_UNSPECIFIED indicates that the signer has not been specified. + SIGNER_UNSPECIFIED = 0; + // SIGNER_USER indicates that the commit has been signed by a user. + SIGNER_USER = 1; + // SIGNER_SYSTEM indicates that the commit has been signed by Gitaly itself. + SIGNER_SYSTEM = 2; + } + + // Commit id of the signature. string commit_id = 1; - // See ExtractCommitSignatureResponse above for how these fields should be handled. + // Signature of the commit (GPG or SSH). bytes signature = 2; - // This comment is left unintentionally blank. + // Signed text that is used to verify the signature. bytes signed_text = 3; + // Signer of the commit + Signer signer = 4; } // This comment is left unintentionally blank. diff --git a/proto/go/gitalypb/commit.pb.go b/proto/go/gitalypb/commit.pb.go index f95b9c4ae..06b89d04b 100644 --- a/proto/go/gitalypb/commit.pb.go +++ b/proto/go/gitalypb/commit.pb.go @@ -339,6 +339,59 @@ func (FindCommitsRequest_Order) EnumDescriptor() ([]byte, []int) { return file_commit_proto_rawDescGZIP(), []int{28, 0} } +// Signer of the commit. A commit can be signed either by a user or by Gitaly itself. +type GetCommitSignaturesResponse_Signer int32 + +const ( + // SIGNER_UNSPECIFIED indicates that the signer has not been specified. + GetCommitSignaturesResponse_SIGNER_UNSPECIFIED GetCommitSignaturesResponse_Signer = 0 + // SIGNER_USER indicates that the commit has been signed by a user. + GetCommitSignaturesResponse_SIGNER_USER GetCommitSignaturesResponse_Signer = 1 + // SIGNER_SYSTEM indicates that the commit has been signed by Gitaly itself. + GetCommitSignaturesResponse_SIGNER_SYSTEM GetCommitSignaturesResponse_Signer = 2 +) + +// Enum value maps for GetCommitSignaturesResponse_Signer. +var ( + GetCommitSignaturesResponse_Signer_name = map[int32]string{ + 0: "SIGNER_UNSPECIFIED", + 1: "SIGNER_USER", + 2: "SIGNER_SYSTEM", + } + GetCommitSignaturesResponse_Signer_value = map[string]int32{ + "SIGNER_UNSPECIFIED": 0, + "SIGNER_USER": 1, + "SIGNER_SYSTEM": 2, + } +) + +func (x GetCommitSignaturesResponse_Signer) Enum() *GetCommitSignaturesResponse_Signer { + p := new(GetCommitSignaturesResponse_Signer) + *p = x + return p +} + +func (x GetCommitSignaturesResponse_Signer) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetCommitSignaturesResponse_Signer) Descriptor() protoreflect.EnumDescriptor { + return file_commit_proto_enumTypes[6].Descriptor() +} + +func (GetCommitSignaturesResponse_Signer) Type() protoreflect.EnumType { + return &file_commit_proto_enumTypes[6] +} + +func (x GetCommitSignaturesResponse_Signer) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetCommitSignaturesResponse_Signer.Descriptor instead. +func (GetCommitSignaturesResponse_Signer) EnumDescriptor() ([]byte, []int) { + return file_commit_proto_rawDescGZIP(), []int{45, 0} +} + // ListCommitsRequest is a request for the ListCommits RPC. type ListCommitsRequest struct { state protoimpl.MessageState @@ -3518,12 +3571,14 @@ type GetCommitSignaturesResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Only present for a new commit signature data. + // Commit id of the signature. CommitId string `protobuf:"bytes,1,opt,name=commit_id,json=commitId,proto3" json:"commit_id,omitempty"` - // See ExtractCommitSignatureResponse above for how these fields should be handled. + // Signature of the commit (GPG or SSH). Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` - // This comment is left unintentionally blank. + // Signed text that is used to verify the signature. SignedText []byte `protobuf:"bytes,3,opt,name=signed_text,json=signedText,proto3" json:"signed_text,omitempty"` + // Signer of the commit + Signer GetCommitSignaturesResponse_Signer `protobuf:"varint,4,opt,name=signer,proto3,enum=gitaly.GetCommitSignaturesResponse_Signer" json:"signer,omitempty"` } func (x *GetCommitSignaturesResponse) Reset() { @@ -3579,6 +3634,13 @@ func (x *GetCommitSignaturesResponse) GetSignedText() []byte { return nil } +func (x *GetCommitSignaturesResponse) GetSigner() GetCommitSignaturesResponse_Signer { + if x != nil { + return x.Signer + } + return GetCommitSignaturesResponse_SIGNER_UNSPECIFIED +} + // This comment is left unintentionally blank. type GetCommitMessagesRequest struct { state protoimpl.MessageState @@ -4534,185 +4596,193 @@ var file_commit_proto_rawDesc = []byte{ 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, 0x22, 0x72, 0x0a, 0x18, 0x43, 0x68, 0x65, + 0x69, 0x74, 0x49, 0x64, 0x73, 0x22, 0x83, 0x02, 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, 0x12, 0x42, 0x0a, 0x06, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2a, 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, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x52, 0x06, 0x73, + 0x69, 0x67, 0x6e, 0x65, 0x72, 0x22, 0x44, 0x0a, 0x06, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x72, 0x12, + 0x16, 0x0a, 0x12, 0x53, 0x49, 0x47, 0x4e, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x49, 0x47, 0x4e, 0x45, + 0x52, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x49, 0x47, 0x4e, + 0x45, 0x52, 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x02, 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, 0x22, 0x72, 0x0a, 0x18, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x45, 0x78, 0x69, 0x73, 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, 0x1c, 0x0a, 0x09, 0x72, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x72, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xaf, 0x01, 0x0a, 0x19, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x45, 0x78, 0x69, 0x73, 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, - 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0c, 0x52, 0x09, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xaf, 0x01, - 0x0a, 0x19, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x45, 0x78, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x09, 0x72, - 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, - 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x63, 0x65, 0x52, 0x09, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3f, - 0x0a, 0x11, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x69, 0x73, 0x74, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x32, - 0xf1, 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, 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, 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, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x69, 0x74, 0x61, + 0x6c, 0x79, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x45, + 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x09, + 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3f, 0x0a, 0x11, 0x52, 0x65, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x06, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x32, 0xf1, 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, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, + 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, 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, + 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, 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, 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, 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, + 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, - 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, + 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, 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, 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, 0x12, 0x64, 0x0a, - 0x11, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x45, 0x78, 0x69, - 0x73, 0x74, 0x12, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x28, - 0x01, 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, 0x36, 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, + 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, 0x12, 0x64, 0x0a, 0x11, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x20, 0x2e, + 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x21, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x45, 0x78, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x28, 0x01, 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, 0x36, 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 ( @@ -4727,7 +4797,7 @@ func file_commit_proto_rawDescGZIP() []byte { return file_commit_proto_rawDescData } -var file_commit_proto_enumTypes = make([]protoimpl.EnumInfo, 6) +var file_commit_proto_enumTypes = make([]protoimpl.EnumInfo, 7) var file_commit_proto_msgTypes = make([]protoimpl.MessageInfo, 54) var file_commit_proto_goTypes = []interface{}{ (ListCommitsRequest_Order)(0), // 0: gitaly.ListCommitsRequest.Order @@ -4736,183 +4806,185 @@ var file_commit_proto_goTypes = []interface{}{ (GetTreeEntriesRequest_SortBy)(0), // 3: gitaly.GetTreeEntriesRequest.SortBy (FindAllCommitsRequest_Order)(0), // 4: gitaly.FindAllCommitsRequest.Order (FindCommitsRequest_Order)(0), // 5: gitaly.FindCommitsRequest.Order - (*ListCommitsRequest)(nil), // 6: gitaly.ListCommitsRequest - (*ListCommitsResponse)(nil), // 7: gitaly.ListCommitsResponse - (*ListAllCommitsRequest)(nil), // 8: gitaly.ListAllCommitsRequest - (*ListAllCommitsResponse)(nil), // 9: gitaly.ListAllCommitsResponse - (*CommitStatsRequest)(nil), // 10: gitaly.CommitStatsRequest - (*CommitStatsResponse)(nil), // 11: gitaly.CommitStatsResponse - (*CommitIsAncestorRequest)(nil), // 12: gitaly.CommitIsAncestorRequest - (*CommitIsAncestorResponse)(nil), // 13: gitaly.CommitIsAncestorResponse - (*TreeEntryRequest)(nil), // 14: gitaly.TreeEntryRequest - (*TreeEntryResponse)(nil), // 15: gitaly.TreeEntryResponse - (*CountCommitsRequest)(nil), // 16: gitaly.CountCommitsRequest - (*CountCommitsResponse)(nil), // 17: gitaly.CountCommitsResponse - (*CountDivergingCommitsRequest)(nil), // 18: gitaly.CountDivergingCommitsRequest - (*CountDivergingCommitsResponse)(nil), // 19: gitaly.CountDivergingCommitsResponse - (*TreeEntry)(nil), // 20: gitaly.TreeEntry - (*GetTreeEntriesRequest)(nil), // 21: gitaly.GetTreeEntriesRequest - (*GetTreeEntriesResponse)(nil), // 22: gitaly.GetTreeEntriesResponse - (*GetTreeEntriesError)(nil), // 23: gitaly.GetTreeEntriesError - (*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 - (*CheckObjectsExistRequest)(nil), // 54: gitaly.CheckObjectsExistRequest - (*CheckObjectsExistResponse)(nil), // 55: gitaly.CheckObjectsExistResponse - (*ListCommitsByRefNameResponse_CommitForRef)(nil), // 56: gitaly.ListCommitsByRefNameResponse.CommitForRef - (*CommitLanguagesResponse_Language)(nil), // 57: gitaly.CommitLanguagesResponse.Language - (*ListLastCommitsForTreeResponse_CommitForTree)(nil), // 58: gitaly.ListLastCommitsForTreeResponse.CommitForTree - (*CheckObjectsExistResponse_RevisionExistence)(nil), // 59: gitaly.CheckObjectsExistResponse.RevisionExistence - (*Repository)(nil), // 60: gitaly.Repository - (*PaginationParameter)(nil), // 61: gitaly.PaginationParameter - (*timestamppb.Timestamp)(nil), // 62: google.protobuf.Timestamp - (*GitCommit)(nil), // 63: gitaly.GitCommit - (*GlobalOptions)(nil), // 64: gitaly.GlobalOptions - (*PaginationCursor)(nil), // 65: gitaly.PaginationCursor - (*ResolveRevisionError)(nil), // 66: gitaly.ResolveRevisionError - (*PathError)(nil), // 67: gitaly.PathError + (GetCommitSignaturesResponse_Signer)(0), // 6: gitaly.GetCommitSignaturesResponse.Signer + (*ListCommitsRequest)(nil), // 7: gitaly.ListCommitsRequest + (*ListCommitsResponse)(nil), // 8: gitaly.ListCommitsResponse + (*ListAllCommitsRequest)(nil), // 9: gitaly.ListAllCommitsRequest + (*ListAllCommitsResponse)(nil), // 10: gitaly.ListAllCommitsResponse + (*CommitStatsRequest)(nil), // 11: gitaly.CommitStatsRequest + (*CommitStatsResponse)(nil), // 12: gitaly.CommitStatsResponse + (*CommitIsAncestorRequest)(nil), // 13: gitaly.CommitIsAncestorRequest + (*CommitIsAncestorResponse)(nil), // 14: gitaly.CommitIsAncestorResponse + (*TreeEntryRequest)(nil), // 15: gitaly.TreeEntryRequest + (*TreeEntryResponse)(nil), // 16: gitaly.TreeEntryResponse + (*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 + (*GetTreeEntriesError)(nil), // 24: gitaly.GetTreeEntriesError + (*ListFilesRequest)(nil), // 25: gitaly.ListFilesRequest + (*ListFilesResponse)(nil), // 26: gitaly.ListFilesResponse + (*FindCommitRequest)(nil), // 27: gitaly.FindCommitRequest + (*FindCommitResponse)(nil), // 28: gitaly.FindCommitResponse + (*ListCommitsByOidRequest)(nil), // 29: gitaly.ListCommitsByOidRequest + (*ListCommitsByOidResponse)(nil), // 30: gitaly.ListCommitsByOidResponse + (*ListCommitsByRefNameRequest)(nil), // 31: gitaly.ListCommitsByRefNameRequest + (*ListCommitsByRefNameResponse)(nil), // 32: gitaly.ListCommitsByRefNameResponse + (*FindAllCommitsRequest)(nil), // 33: gitaly.FindAllCommitsRequest + (*FindAllCommitsResponse)(nil), // 34: gitaly.FindAllCommitsResponse + (*FindCommitsRequest)(nil), // 35: gitaly.FindCommitsRequest + (*FindCommitsResponse)(nil), // 36: gitaly.FindCommitsResponse + (*CommitLanguagesRequest)(nil), // 37: gitaly.CommitLanguagesRequest + (*CommitLanguagesResponse)(nil), // 38: gitaly.CommitLanguagesResponse + (*RawBlameRequest)(nil), // 39: gitaly.RawBlameRequest + (*RawBlameResponse)(nil), // 40: gitaly.RawBlameResponse + (*LastCommitForPathRequest)(nil), // 41: gitaly.LastCommitForPathRequest + (*LastCommitForPathResponse)(nil), // 42: gitaly.LastCommitForPathResponse + (*ListLastCommitsForTreeRequest)(nil), // 43: gitaly.ListLastCommitsForTreeRequest + (*ListLastCommitsForTreeResponse)(nil), // 44: gitaly.ListLastCommitsForTreeResponse + (*CommitsByMessageRequest)(nil), // 45: gitaly.CommitsByMessageRequest + (*CommitsByMessageResponse)(nil), // 46: gitaly.CommitsByMessageResponse + (*FilterShasWithSignaturesRequest)(nil), // 47: gitaly.FilterShasWithSignaturesRequest + (*FilterShasWithSignaturesResponse)(nil), // 48: gitaly.FilterShasWithSignaturesResponse + (*ExtractCommitSignatureRequest)(nil), // 49: gitaly.ExtractCommitSignatureRequest + (*ExtractCommitSignatureResponse)(nil), // 50: gitaly.ExtractCommitSignatureResponse + (*GetCommitSignaturesRequest)(nil), // 51: gitaly.GetCommitSignaturesRequest + (*GetCommitSignaturesResponse)(nil), // 52: gitaly.GetCommitSignaturesResponse + (*GetCommitMessagesRequest)(nil), // 53: gitaly.GetCommitMessagesRequest + (*GetCommitMessagesResponse)(nil), // 54: gitaly.GetCommitMessagesResponse + (*CheckObjectsExistRequest)(nil), // 55: gitaly.CheckObjectsExistRequest + (*CheckObjectsExistResponse)(nil), // 56: gitaly.CheckObjectsExistResponse + (*ListCommitsByRefNameResponse_CommitForRef)(nil), // 57: gitaly.ListCommitsByRefNameResponse.CommitForRef + (*CommitLanguagesResponse_Language)(nil), // 58: gitaly.CommitLanguagesResponse.Language + (*ListLastCommitsForTreeResponse_CommitForTree)(nil), // 59: gitaly.ListLastCommitsForTreeResponse.CommitForTree + (*CheckObjectsExistResponse_RevisionExistence)(nil), // 60: gitaly.CheckObjectsExistResponse.RevisionExistence + (*Repository)(nil), // 61: gitaly.Repository + (*PaginationParameter)(nil), // 62: gitaly.PaginationParameter + (*timestamppb.Timestamp)(nil), // 63: google.protobuf.Timestamp + (*GitCommit)(nil), // 64: gitaly.GitCommit + (*GlobalOptions)(nil), // 65: gitaly.GlobalOptions + (*PaginationCursor)(nil), // 66: gitaly.PaginationCursor + (*ResolveRevisionError)(nil), // 67: gitaly.ResolveRevisionError + (*PathError)(nil), // 68: gitaly.PathError } var file_commit_proto_depIdxs = []int32{ - 60, // 0: gitaly.ListCommitsRequest.repository:type_name -> gitaly.Repository - 61, // 1: gitaly.ListCommitsRequest.pagination_params:type_name -> gitaly.PaginationParameter + 61, // 0: gitaly.ListCommitsRequest.repository:type_name -> gitaly.Repository + 62, // 1: gitaly.ListCommitsRequest.pagination_params:type_name -> gitaly.PaginationParameter 0, // 2: gitaly.ListCommitsRequest.order:type_name -> gitaly.ListCommitsRequest.Order - 62, // 3: gitaly.ListCommitsRequest.after:type_name -> google.protobuf.Timestamp - 62, // 4: gitaly.ListCommitsRequest.before:type_name -> google.protobuf.Timestamp - 63, // 5: gitaly.ListCommitsResponse.commits:type_name -> gitaly.GitCommit - 60, // 6: gitaly.ListAllCommitsRequest.repository:type_name -> gitaly.Repository - 61, // 7: gitaly.ListAllCommitsRequest.pagination_params:type_name -> gitaly.PaginationParameter - 63, // 8: gitaly.ListAllCommitsResponse.commits:type_name -> gitaly.GitCommit - 60, // 9: gitaly.CommitStatsRequest.repository:type_name -> gitaly.Repository - 60, // 10: gitaly.CommitIsAncestorRequest.repository:type_name -> gitaly.Repository - 60, // 11: gitaly.TreeEntryRequest.repository:type_name -> gitaly.Repository + 63, // 3: gitaly.ListCommitsRequest.after:type_name -> google.protobuf.Timestamp + 63, // 4: gitaly.ListCommitsRequest.before:type_name -> google.protobuf.Timestamp + 64, // 5: gitaly.ListCommitsResponse.commits:type_name -> gitaly.GitCommit + 61, // 6: gitaly.ListAllCommitsRequest.repository:type_name -> gitaly.Repository + 62, // 7: gitaly.ListAllCommitsRequest.pagination_params:type_name -> gitaly.PaginationParameter + 64, // 8: gitaly.ListAllCommitsResponse.commits:type_name -> gitaly.GitCommit + 61, // 9: gitaly.CommitStatsRequest.repository:type_name -> gitaly.Repository + 61, // 10: gitaly.CommitIsAncestorRequest.repository:type_name -> gitaly.Repository + 61, // 11: gitaly.TreeEntryRequest.repository:type_name -> gitaly.Repository 1, // 12: gitaly.TreeEntryResponse.type:type_name -> gitaly.TreeEntryResponse.ObjectType - 60, // 13: gitaly.CountCommitsRequest.repository:type_name -> gitaly.Repository - 62, // 14: gitaly.CountCommitsRequest.after:type_name -> google.protobuf.Timestamp - 62, // 15: gitaly.CountCommitsRequest.before:type_name -> google.protobuf.Timestamp - 64, // 16: gitaly.CountCommitsRequest.global_options:type_name -> gitaly.GlobalOptions - 60, // 17: gitaly.CountDivergingCommitsRequest.repository:type_name -> gitaly.Repository + 61, // 13: gitaly.CountCommitsRequest.repository:type_name -> gitaly.Repository + 63, // 14: gitaly.CountCommitsRequest.after:type_name -> google.protobuf.Timestamp + 63, // 15: gitaly.CountCommitsRequest.before:type_name -> google.protobuf.Timestamp + 65, // 16: gitaly.CountCommitsRequest.global_options:type_name -> gitaly.GlobalOptions + 61, // 17: gitaly.CountDivergingCommitsRequest.repository:type_name -> gitaly.Repository 2, // 18: gitaly.TreeEntry.type:type_name -> gitaly.TreeEntry.EntryType - 60, // 19: gitaly.GetTreeEntriesRequest.repository:type_name -> gitaly.Repository + 61, // 19: gitaly.GetTreeEntriesRequest.repository:type_name -> gitaly.Repository 3, // 20: gitaly.GetTreeEntriesRequest.sort:type_name -> gitaly.GetTreeEntriesRequest.SortBy - 61, // 21: gitaly.GetTreeEntriesRequest.pagination_params:type_name -> gitaly.PaginationParameter - 20, // 22: gitaly.GetTreeEntriesResponse.entries:type_name -> gitaly.TreeEntry - 65, // 23: gitaly.GetTreeEntriesResponse.pagination_cursor:type_name -> gitaly.PaginationCursor - 66, // 24: gitaly.GetTreeEntriesError.resolve_tree:type_name -> gitaly.ResolveRevisionError - 67, // 25: gitaly.GetTreeEntriesError.path:type_name -> gitaly.PathError - 60, // 26: gitaly.ListFilesRequest.repository:type_name -> gitaly.Repository - 60, // 27: gitaly.FindCommitRequest.repository:type_name -> gitaly.Repository - 63, // 28: gitaly.FindCommitResponse.commit:type_name -> gitaly.GitCommit - 60, // 29: gitaly.ListCommitsByOidRequest.repository:type_name -> gitaly.Repository - 63, // 30: gitaly.ListCommitsByOidResponse.commits:type_name -> gitaly.GitCommit - 60, // 31: gitaly.ListCommitsByRefNameRequest.repository:type_name -> gitaly.Repository - 56, // 32: gitaly.ListCommitsByRefNameResponse.commit_refs:type_name -> gitaly.ListCommitsByRefNameResponse.CommitForRef - 60, // 33: gitaly.FindAllCommitsRequest.repository:type_name -> gitaly.Repository + 62, // 21: gitaly.GetTreeEntriesRequest.pagination_params:type_name -> gitaly.PaginationParameter + 21, // 22: gitaly.GetTreeEntriesResponse.entries:type_name -> gitaly.TreeEntry + 66, // 23: gitaly.GetTreeEntriesResponse.pagination_cursor:type_name -> gitaly.PaginationCursor + 67, // 24: gitaly.GetTreeEntriesError.resolve_tree:type_name -> gitaly.ResolveRevisionError + 68, // 25: gitaly.GetTreeEntriesError.path:type_name -> gitaly.PathError + 61, // 26: gitaly.ListFilesRequest.repository:type_name -> gitaly.Repository + 61, // 27: gitaly.FindCommitRequest.repository:type_name -> gitaly.Repository + 64, // 28: gitaly.FindCommitResponse.commit:type_name -> gitaly.GitCommit + 61, // 29: gitaly.ListCommitsByOidRequest.repository:type_name -> gitaly.Repository + 64, // 30: gitaly.ListCommitsByOidResponse.commits:type_name -> gitaly.GitCommit + 61, // 31: gitaly.ListCommitsByRefNameRequest.repository:type_name -> gitaly.Repository + 57, // 32: gitaly.ListCommitsByRefNameResponse.commit_refs:type_name -> gitaly.ListCommitsByRefNameResponse.CommitForRef + 61, // 33: gitaly.FindAllCommitsRequest.repository:type_name -> gitaly.Repository 4, // 34: gitaly.FindAllCommitsRequest.order:type_name -> gitaly.FindAllCommitsRequest.Order - 63, // 35: gitaly.FindAllCommitsResponse.commits:type_name -> gitaly.GitCommit - 60, // 36: gitaly.FindCommitsRequest.repository:type_name -> gitaly.Repository - 62, // 37: gitaly.FindCommitsRequest.after:type_name -> google.protobuf.Timestamp - 62, // 38: gitaly.FindCommitsRequest.before:type_name -> google.protobuf.Timestamp + 64, // 35: gitaly.FindAllCommitsResponse.commits:type_name -> gitaly.GitCommit + 61, // 36: gitaly.FindCommitsRequest.repository:type_name -> gitaly.Repository + 63, // 37: gitaly.FindCommitsRequest.after:type_name -> google.protobuf.Timestamp + 63, // 38: gitaly.FindCommitsRequest.before:type_name -> google.protobuf.Timestamp 5, // 39: gitaly.FindCommitsRequest.order:type_name -> gitaly.FindCommitsRequest.Order - 64, // 40: gitaly.FindCommitsRequest.global_options:type_name -> gitaly.GlobalOptions - 63, // 41: gitaly.FindCommitsResponse.commits:type_name -> gitaly.GitCommit - 60, // 42: gitaly.CommitLanguagesRequest.repository:type_name -> gitaly.Repository - 57, // 43: gitaly.CommitLanguagesResponse.languages:type_name -> gitaly.CommitLanguagesResponse.Language - 60, // 44: gitaly.RawBlameRequest.repository:type_name -> gitaly.Repository - 60, // 45: gitaly.LastCommitForPathRequest.repository:type_name -> gitaly.Repository - 64, // 46: gitaly.LastCommitForPathRequest.global_options:type_name -> gitaly.GlobalOptions - 63, // 47: gitaly.LastCommitForPathResponse.commit:type_name -> gitaly.GitCommit - 60, // 48: gitaly.ListLastCommitsForTreeRequest.repository:type_name -> gitaly.Repository - 64, // 49: gitaly.ListLastCommitsForTreeRequest.global_options:type_name -> gitaly.GlobalOptions - 58, // 50: gitaly.ListLastCommitsForTreeResponse.commits:type_name -> gitaly.ListLastCommitsForTreeResponse.CommitForTree - 60, // 51: gitaly.CommitsByMessageRequest.repository:type_name -> gitaly.Repository - 64, // 52: gitaly.CommitsByMessageRequest.global_options:type_name -> gitaly.GlobalOptions - 63, // 53: gitaly.CommitsByMessageResponse.commits:type_name -> gitaly.GitCommit - 60, // 54: gitaly.FilterShasWithSignaturesRequest.repository:type_name -> gitaly.Repository - 60, // 55: gitaly.ExtractCommitSignatureRequest.repository:type_name -> gitaly.Repository - 60, // 56: gitaly.GetCommitSignaturesRequest.repository:type_name -> gitaly.Repository - 60, // 57: gitaly.GetCommitMessagesRequest.repository:type_name -> gitaly.Repository - 60, // 58: gitaly.CheckObjectsExistRequest.repository:type_name -> gitaly.Repository - 59, // 59: gitaly.CheckObjectsExistResponse.revisions:type_name -> gitaly.CheckObjectsExistResponse.RevisionExistence - 63, // 60: gitaly.ListCommitsByRefNameResponse.CommitForRef.commit:type_name -> gitaly.GitCommit - 63, // 61: gitaly.ListLastCommitsForTreeResponse.CommitForTree.commit:type_name -> gitaly.GitCommit - 6, // 62: gitaly.CommitService.ListCommits:input_type -> gitaly.ListCommitsRequest - 8, // 63: gitaly.CommitService.ListAllCommits:input_type -> gitaly.ListAllCommitsRequest - 12, // 64: gitaly.CommitService.CommitIsAncestor:input_type -> gitaly.CommitIsAncestorRequest - 14, // 65: gitaly.CommitService.TreeEntry:input_type -> gitaly.TreeEntryRequest - 16, // 66: gitaly.CommitService.CountCommits:input_type -> gitaly.CountCommitsRequest - 18, // 67: gitaly.CommitService.CountDivergingCommits:input_type -> gitaly.CountDivergingCommitsRequest - 21, // 68: gitaly.CommitService.GetTreeEntries:input_type -> gitaly.GetTreeEntriesRequest - 24, // 69: gitaly.CommitService.ListFiles:input_type -> gitaly.ListFilesRequest - 26, // 70: gitaly.CommitService.FindCommit:input_type -> gitaly.FindCommitRequest - 10, // 71: gitaly.CommitService.CommitStats:input_type -> gitaly.CommitStatsRequest - 32, // 72: gitaly.CommitService.FindAllCommits:input_type -> gitaly.FindAllCommitsRequest - 34, // 73: gitaly.CommitService.FindCommits:input_type -> gitaly.FindCommitsRequest - 36, // 74: gitaly.CommitService.CommitLanguages:input_type -> gitaly.CommitLanguagesRequest - 38, // 75: gitaly.CommitService.RawBlame:input_type -> gitaly.RawBlameRequest - 40, // 76: gitaly.CommitService.LastCommitForPath:input_type -> gitaly.LastCommitForPathRequest - 42, // 77: gitaly.CommitService.ListLastCommitsForTree:input_type -> gitaly.ListLastCommitsForTreeRequest - 44, // 78: gitaly.CommitService.CommitsByMessage:input_type -> gitaly.CommitsByMessageRequest - 28, // 79: gitaly.CommitService.ListCommitsByOid:input_type -> gitaly.ListCommitsByOidRequest - 30, // 80: gitaly.CommitService.ListCommitsByRefName:input_type -> gitaly.ListCommitsByRefNameRequest - 46, // 81: gitaly.CommitService.FilterShasWithSignatures:input_type -> gitaly.FilterShasWithSignaturesRequest - 50, // 82: gitaly.CommitService.GetCommitSignatures:input_type -> gitaly.GetCommitSignaturesRequest - 52, // 83: gitaly.CommitService.GetCommitMessages:input_type -> gitaly.GetCommitMessagesRequest - 54, // 84: gitaly.CommitService.CheckObjectsExist:input_type -> gitaly.CheckObjectsExistRequest - 7, // 85: gitaly.CommitService.ListCommits:output_type -> gitaly.ListCommitsResponse - 9, // 86: gitaly.CommitService.ListAllCommits:output_type -> gitaly.ListAllCommitsResponse - 13, // 87: gitaly.CommitService.CommitIsAncestor:output_type -> gitaly.CommitIsAncestorResponse - 15, // 88: gitaly.CommitService.TreeEntry:output_type -> gitaly.TreeEntryResponse - 17, // 89: gitaly.CommitService.CountCommits:output_type -> gitaly.CountCommitsResponse - 19, // 90: gitaly.CommitService.CountDivergingCommits:output_type -> gitaly.CountDivergingCommitsResponse - 22, // 91: gitaly.CommitService.GetTreeEntries:output_type -> gitaly.GetTreeEntriesResponse - 25, // 92: gitaly.CommitService.ListFiles:output_type -> gitaly.ListFilesResponse - 27, // 93: gitaly.CommitService.FindCommit:output_type -> gitaly.FindCommitResponse - 11, // 94: gitaly.CommitService.CommitStats:output_type -> gitaly.CommitStatsResponse - 33, // 95: gitaly.CommitService.FindAllCommits:output_type -> gitaly.FindAllCommitsResponse - 35, // 96: gitaly.CommitService.FindCommits:output_type -> gitaly.FindCommitsResponse - 37, // 97: gitaly.CommitService.CommitLanguages:output_type -> gitaly.CommitLanguagesResponse - 39, // 98: gitaly.CommitService.RawBlame:output_type -> gitaly.RawBlameResponse - 41, // 99: gitaly.CommitService.LastCommitForPath:output_type -> gitaly.LastCommitForPathResponse - 43, // 100: gitaly.CommitService.ListLastCommitsForTree:output_type -> gitaly.ListLastCommitsForTreeResponse - 45, // 101: gitaly.CommitService.CommitsByMessage:output_type -> gitaly.CommitsByMessageResponse - 29, // 102: gitaly.CommitService.ListCommitsByOid:output_type -> gitaly.ListCommitsByOidResponse - 31, // 103: gitaly.CommitService.ListCommitsByRefName:output_type -> gitaly.ListCommitsByRefNameResponse - 47, // 104: gitaly.CommitService.FilterShasWithSignatures:output_type -> gitaly.FilterShasWithSignaturesResponse - 51, // 105: gitaly.CommitService.GetCommitSignatures:output_type -> gitaly.GetCommitSignaturesResponse - 53, // 106: gitaly.CommitService.GetCommitMessages:output_type -> gitaly.GetCommitMessagesResponse - 55, // 107: gitaly.CommitService.CheckObjectsExist:output_type -> gitaly.CheckObjectsExistResponse - 85, // [85:108] is the sub-list for method output_type - 62, // [62:85] is the sub-list for method input_type - 62, // [62:62] is the sub-list for extension type_name - 62, // [62:62] is the sub-list for extension extendee - 0, // [0:62] is the sub-list for field type_name + 65, // 40: gitaly.FindCommitsRequest.global_options:type_name -> gitaly.GlobalOptions + 64, // 41: gitaly.FindCommitsResponse.commits:type_name -> gitaly.GitCommit + 61, // 42: gitaly.CommitLanguagesRequest.repository:type_name -> gitaly.Repository + 58, // 43: gitaly.CommitLanguagesResponse.languages:type_name -> gitaly.CommitLanguagesResponse.Language + 61, // 44: gitaly.RawBlameRequest.repository:type_name -> gitaly.Repository + 61, // 45: gitaly.LastCommitForPathRequest.repository:type_name -> gitaly.Repository + 65, // 46: gitaly.LastCommitForPathRequest.global_options:type_name -> gitaly.GlobalOptions + 64, // 47: gitaly.LastCommitForPathResponse.commit:type_name -> gitaly.GitCommit + 61, // 48: gitaly.ListLastCommitsForTreeRequest.repository:type_name -> gitaly.Repository + 65, // 49: gitaly.ListLastCommitsForTreeRequest.global_options:type_name -> gitaly.GlobalOptions + 59, // 50: gitaly.ListLastCommitsForTreeResponse.commits:type_name -> gitaly.ListLastCommitsForTreeResponse.CommitForTree + 61, // 51: gitaly.CommitsByMessageRequest.repository:type_name -> gitaly.Repository + 65, // 52: gitaly.CommitsByMessageRequest.global_options:type_name -> gitaly.GlobalOptions + 64, // 53: gitaly.CommitsByMessageResponse.commits:type_name -> gitaly.GitCommit + 61, // 54: gitaly.FilterShasWithSignaturesRequest.repository:type_name -> gitaly.Repository + 61, // 55: gitaly.ExtractCommitSignatureRequest.repository:type_name -> gitaly.Repository + 61, // 56: gitaly.GetCommitSignaturesRequest.repository:type_name -> gitaly.Repository + 6, // 57: gitaly.GetCommitSignaturesResponse.signer:type_name -> gitaly.GetCommitSignaturesResponse.Signer + 61, // 58: gitaly.GetCommitMessagesRequest.repository:type_name -> gitaly.Repository + 61, // 59: gitaly.CheckObjectsExistRequest.repository:type_name -> gitaly.Repository + 60, // 60: gitaly.CheckObjectsExistResponse.revisions:type_name -> gitaly.CheckObjectsExistResponse.RevisionExistence + 64, // 61: gitaly.ListCommitsByRefNameResponse.CommitForRef.commit:type_name -> gitaly.GitCommit + 64, // 62: gitaly.ListLastCommitsForTreeResponse.CommitForTree.commit:type_name -> gitaly.GitCommit + 7, // 63: gitaly.CommitService.ListCommits:input_type -> gitaly.ListCommitsRequest + 9, // 64: gitaly.CommitService.ListAllCommits:input_type -> gitaly.ListAllCommitsRequest + 13, // 65: gitaly.CommitService.CommitIsAncestor:input_type -> gitaly.CommitIsAncestorRequest + 15, // 66: gitaly.CommitService.TreeEntry:input_type -> gitaly.TreeEntryRequest + 17, // 67: gitaly.CommitService.CountCommits:input_type -> gitaly.CountCommitsRequest + 19, // 68: gitaly.CommitService.CountDivergingCommits:input_type -> gitaly.CountDivergingCommitsRequest + 22, // 69: gitaly.CommitService.GetTreeEntries:input_type -> gitaly.GetTreeEntriesRequest + 25, // 70: gitaly.CommitService.ListFiles:input_type -> gitaly.ListFilesRequest + 27, // 71: gitaly.CommitService.FindCommit:input_type -> gitaly.FindCommitRequest + 11, // 72: gitaly.CommitService.CommitStats:input_type -> gitaly.CommitStatsRequest + 33, // 73: gitaly.CommitService.FindAllCommits:input_type -> gitaly.FindAllCommitsRequest + 35, // 74: gitaly.CommitService.FindCommits:input_type -> gitaly.FindCommitsRequest + 37, // 75: gitaly.CommitService.CommitLanguages:input_type -> gitaly.CommitLanguagesRequest + 39, // 76: gitaly.CommitService.RawBlame:input_type -> gitaly.RawBlameRequest + 41, // 77: gitaly.CommitService.LastCommitForPath:input_type -> gitaly.LastCommitForPathRequest + 43, // 78: gitaly.CommitService.ListLastCommitsForTree:input_type -> gitaly.ListLastCommitsForTreeRequest + 45, // 79: gitaly.CommitService.CommitsByMessage:input_type -> gitaly.CommitsByMessageRequest + 29, // 80: gitaly.CommitService.ListCommitsByOid:input_type -> gitaly.ListCommitsByOidRequest + 31, // 81: gitaly.CommitService.ListCommitsByRefName:input_type -> gitaly.ListCommitsByRefNameRequest + 47, // 82: gitaly.CommitService.FilterShasWithSignatures:input_type -> gitaly.FilterShasWithSignaturesRequest + 51, // 83: gitaly.CommitService.GetCommitSignatures:input_type -> gitaly.GetCommitSignaturesRequest + 53, // 84: gitaly.CommitService.GetCommitMessages:input_type -> gitaly.GetCommitMessagesRequest + 55, // 85: gitaly.CommitService.CheckObjectsExist:input_type -> gitaly.CheckObjectsExistRequest + 8, // 86: gitaly.CommitService.ListCommits:output_type -> gitaly.ListCommitsResponse + 10, // 87: gitaly.CommitService.ListAllCommits:output_type -> gitaly.ListAllCommitsResponse + 14, // 88: gitaly.CommitService.CommitIsAncestor:output_type -> gitaly.CommitIsAncestorResponse + 16, // 89: gitaly.CommitService.TreeEntry:output_type -> gitaly.TreeEntryResponse + 18, // 90: gitaly.CommitService.CountCommits:output_type -> gitaly.CountCommitsResponse + 20, // 91: gitaly.CommitService.CountDivergingCommits:output_type -> gitaly.CountDivergingCommitsResponse + 23, // 92: gitaly.CommitService.GetTreeEntries:output_type -> gitaly.GetTreeEntriesResponse + 26, // 93: gitaly.CommitService.ListFiles:output_type -> gitaly.ListFilesResponse + 28, // 94: gitaly.CommitService.FindCommit:output_type -> gitaly.FindCommitResponse + 12, // 95: gitaly.CommitService.CommitStats:output_type -> gitaly.CommitStatsResponse + 34, // 96: gitaly.CommitService.FindAllCommits:output_type -> gitaly.FindAllCommitsResponse + 36, // 97: gitaly.CommitService.FindCommits:output_type -> gitaly.FindCommitsResponse + 38, // 98: gitaly.CommitService.CommitLanguages:output_type -> gitaly.CommitLanguagesResponse + 40, // 99: gitaly.CommitService.RawBlame:output_type -> gitaly.RawBlameResponse + 42, // 100: gitaly.CommitService.LastCommitForPath:output_type -> gitaly.LastCommitForPathResponse + 44, // 101: gitaly.CommitService.ListLastCommitsForTree:output_type -> gitaly.ListLastCommitsForTreeResponse + 46, // 102: gitaly.CommitService.CommitsByMessage:output_type -> gitaly.CommitsByMessageResponse + 30, // 103: gitaly.CommitService.ListCommitsByOid:output_type -> gitaly.ListCommitsByOidResponse + 32, // 104: gitaly.CommitService.ListCommitsByRefName:output_type -> gitaly.ListCommitsByRefNameResponse + 48, // 105: gitaly.CommitService.FilterShasWithSignatures:output_type -> gitaly.FilterShasWithSignaturesResponse + 52, // 106: gitaly.CommitService.GetCommitSignatures:output_type -> gitaly.GetCommitSignaturesResponse + 54, // 107: gitaly.CommitService.GetCommitMessages:output_type -> gitaly.GetCommitMessagesResponse + 56, // 108: gitaly.CommitService.CheckObjectsExist:output_type -> gitaly.CheckObjectsExistResponse + 86, // [86:109] is the sub-list for method output_type + 63, // [63:86] is the sub-list for method input_type + 63, // [63:63] is the sub-list for extension type_name + 63, // [63:63] is the sub-list for extension extendee + 0, // [0:63] is the sub-list for field type_name } func init() { file_commit_proto_init() } @@ -5582,7 +5654,7 @@ func file_commit_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_commit_proto_rawDesc, - NumEnums: 6, + NumEnums: 7, NumMessages: 54, NumExtensions: 0, NumServices: 1, |