diff options
author | Jonas Wälter <jonas.waelter@noser.com> | 2021-07-19 12:39:25 +0300 |
---|---|---|
committer | Zeger-Jan van de Weg <git@zjvandeweg.nl> | 2021-07-19 12:39:25 +0300 |
commit | de87a43f03d13fabb9db6e4123562cf8dbfc6f36 (patch) | |
tree | cb9fa035fcfa53b9a25c5baabef9c5cb92dc1fd1 | |
parent | acd3f8e4903958d92ebece465453f2d14c22d177 (diff) |
Add GetTagSignatures RPC
-rw-r--r-- | internal/git/catfile/tag.go | 24 | ||||
-rw-r--r-- | internal/gitaly/service/ref/tag_signatures.go | 122 | ||||
-rw-r--r-- | internal/gitaly/service/ref/tag_signatures_test.go | 181 | ||||
-rw-r--r-- | internal/gitaly/service/ref/testdata/tag-1e292f8fedd741b75372e19097c76d327140c312-signature | 6 | ||||
-rw-r--r-- | internal/gitaly/service/ref/testdata/tag-7975be0116940bf2ad4321f79d02a55c5f7779aa-signature | 101 | ||||
-rw-r--r-- | proto/go/gitalypb/ref.pb.go | 802 | ||||
-rw-r--r-- | proto/go/gitalypb/ref_grpc.pb.go | 77 | ||||
-rw-r--r-- | proto/ref.proto | 41 | ||||
-rw-r--r-- | ruby/proto/gitaly/ref_pb.rb | 15 | ||||
-rw-r--r-- | ruby/proto/gitaly/ref_services_pb.rb | 5 |
10 files changed, 1088 insertions, 286 deletions
diff --git a/internal/git/catfile/tag.go b/internal/git/catfile/tag.go index 1a773510e..b0ac68d51 100644 --- a/internal/git/catfile/tag.go +++ b/internal/git/catfile/tag.go @@ -38,6 +38,19 @@ func GetTag(ctx context.Context, c Batch, tagID git.Revision, tagName string, tr return tag, nil } +// ExtractTagSignature extracts the signature from a content and returns both the signature +// and the remaining content. If no signature is found, nil as the signature and the entire +// content are returned. note: tags contain the signature block at the end of the message +// https://github.com/git/git/blob/master/Documentation/technical/signature-format.txt#L12 +func ExtractTagSignature(content []byte) ([]byte, []byte) { + index := bytes.Index(content, []byte("-----BEGIN")) + + if index > 0 { + return bytes.TrimSuffix(content[index:], []byte("\n")), content[:index] + } + return nil, content +} + type tagHeader struct { oid string tagType string @@ -116,15 +129,12 @@ func parseTag(r io.Reader, oid git.ObjectID, name []byte, trimLen, trimRightNewL tag.Message = tag.Message[:max] } - // tags contain the signature block in the message: - // https://github.com/git/git/blob/master/Documentation/technical/signature-format.txt#L12 - index := bytes.Index(body, []byte("-----BEGIN")) - - if index > 0 { - length := bytes.Index(body[index:], []byte("\n")) + signature, _ := ExtractTagSignature(body) + if signature != nil { + length := bytes.Index(signature, []byte("\n")) if length > 0 { - signature := string(body[index : length+index]) + signature := string(signature[:length]) tag.SignatureType = detectSignatureType(signature) } } diff --git a/internal/gitaly/service/ref/tag_signatures.go b/internal/gitaly/service/ref/tag_signatures.go new file mode 100644 index 000000000..8a3e80c54 --- /dev/null +++ b/internal/gitaly/service/ref/tag_signatures.go @@ -0,0 +1,122 @@ +package ref + +import ( + "errors" + "fmt" + "io/ioutil" + "strings" + + "github.com/golang/protobuf/proto" + "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 verifyGetTagSignaturesRequest(req *gitalypb.GetTagSignaturesRequest) error { + if req.GetRepository() == nil { + return errors.New("empty repository") + } + + if len(req.GetTagRevisions()) == 0 { + return errors.New("missing revisions") + } + + for _, revision := range req.GetTagRevisions() { + if strings.HasPrefix(revision, "-") && revision != "--all" && revision != "--not" { + return fmt.Errorf("invalid revision: %q", revision) + } + } + return nil +} + +func (s *server) GetTagSignatures(req *gitalypb.GetTagSignaturesRequest, stream gitalypb.RefService_GetTagSignaturesServer) error { + if err := verifyGetTagSignaturesRequest(req); err != nil { + return helper.ErrInvalidArgument(err) + } + + ctx := stream.Context() + repo := s.localrepo(req.GetRepository()) + + catfileProcess, err := s.catfileCache.BatchProcess(ctx, repo) + if err != nil { + return helper.ErrInternal(fmt.Errorf("creating catfile process: %w", err)) + } + + chunker := chunk.New(&tagSignatureSender{ + send: func(signatures []*gitalypb.GetTagSignaturesResponse_TagSignature) error { + return stream.Send(&gitalypb.GetTagSignaturesResponse{ + Signatures: signatures, + }) + }, + }) + + gitVersion, err := git.CurrentVersion(ctx, s.gitCmdFactory) + if err != nil { + return helper.ErrInternalf("cannot determine Git version: %v", err) + } + + revlistOptions := []gitpipe.RevlistOption{ + gitpipe.WithObjects(), + } + + if gitVersion.SupportsObjectTypeFilter() { + revlistOptions = append(revlistOptions, gitpipe.WithObjectTypeFilter(gitpipe.ObjectTypeTag)) + } + + revlistIter := gitpipe.Revlist(ctx, repo, req.GetTagRevisions(), revlistOptions...) + catfileInfoIter := gitpipe.CatfileInfo(ctx, catfileProcess, revlistIter) + catfileInfoIter = gitpipe.CatfileInfoFilter(ctx, catfileInfoIter, func(r gitpipe.CatfileInfoResult) bool { + return r.ObjectInfo.Type == "tag" + }) + + catfileObjectIter := gitpipe.CatfileObject(ctx, catfileProcess, catfileInfoIter) + + for catfileObjectIter.Next() { + tag := catfileObjectIter.Result() + + raw, err := ioutil.ReadAll(tag.ObjectReader) + if err != nil { + return helper.ErrInternal(err) + } + + signatureKey, tagText := catfile.ExtractTagSignature(raw) + + if err := chunker.Send(&gitalypb.GetTagSignaturesResponse_TagSignature{ + TagId: tag.ObjectInfo.Oid.String(), + Signature: signatureKey, + Content: tagText, + }); err != nil { + return helper.ErrInternal(fmt.Errorf("sending tag signature chunk: %w", err)) + } + } + + if err := catfileObjectIter.Err(); err != nil { + return helper.ErrInternal(err) + } + + if err := chunker.Flush(); err != nil { + return helper.ErrInternal(err) + } + + return nil +} + +type tagSignatureSender struct { + signatures []*gitalypb.GetTagSignaturesResponse_TagSignature + send func([]*gitalypb.GetTagSignaturesResponse_TagSignature) error +} + +func (t *tagSignatureSender) Reset() { + t.signatures = t.signatures[:0] +} + +func (t *tagSignatureSender) Append(m proto.Message) { + t.signatures = append(t.signatures, m.(*gitalypb.GetTagSignaturesResponse_TagSignature)) +} + +func (t *tagSignatureSender) Send() error { + return t.send(t.signatures) +} diff --git a/internal/gitaly/service/ref/tag_signatures_test.go b/internal/gitaly/service/ref/tag_signatures_test.go new file mode 100644 index 000000000..6eee14723 --- /dev/null +++ b/internal/gitaly/service/ref/tag_signatures_test.go @@ -0,0 +1,181 @@ +package ref + +import ( + "errors" + "io" + "strings" + "testing" + + "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/gitaly/v14/internal/git/gittest" + "gitlab.com/gitlab-org/gitaly/v14/internal/helper" + "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" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +func TestGetTagSignatures(t *testing.T) { + ctx, cancel := testhelper.Context() + defer cancel() + + cfg, repoProto, repoPath, client := setupRefService(t) + + message1 := strings.Repeat("a", helper.MaxCommitOrTagMessageSize) + "\n" + signature1 := string(testhelper.MustReadFile(t, "testdata/tag-1e292f8fedd741b75372e19097c76d327140c312-signature")) + tag1ID := gittest.CreateTag(t, cfg, repoPath, "big-tag-1", "master", &gittest.CreateTagOpts{Message: message1 + signature1}) + content1 := "object 1e292f8fedd741b75372e19097c76d327140c312\ntype commit\ntag big-tag-1\ntagger Scrooge McDuck <scrooge@mcduck.com> 1572776879 +0100\n\n" + message1 + + message2 := strings.Repeat("b", helper.MaxCommitOrTagMessageSize) + "\n" + signature2 := string(testhelper.MustReadFile(t, "testdata/tag-7975be0116940bf2ad4321f79d02a55c5f7779aa-signature")) + tag2ID := gittest.CreateTag(t, cfg, repoPath, "big-tag-2", "master~", &gittest.CreateTagOpts{Message: message2 + signature2}) + content2 := "object 7975be0116940bf2ad4321f79d02a55c5f7779aa\ntype commit\ntag big-tag-2\ntagger Scrooge McDuck <scrooge@mcduck.com> 1572776879 +0100\n\n" + message2 + + message3 := "tag message\n" + tag3ID := gittest.CreateTag(t, cfg, repoPath, "tag-3", "master~~", &gittest.CreateTagOpts{Message: message3}) + content3 := "object 60ecb67744cb56576c30214ff52294f8ce2def98\ntype commit\ntag tag-3\ntagger Scrooge McDuck <scrooge@mcduck.com> 1572776879 +0100\n\n" + message3 + + for _, tc := range []struct { + desc string + revisions []string + expectedErr error + expectedSignatures []*gitalypb.GetTagSignaturesResponse_TagSignature + }{ + { + desc: "missing revisions", + revisions: []string{}, + expectedErr: status.Error(codes.InvalidArgument, "missing revisions"), + }, + { + desc: "invalid revision", + revisions: []string{ + "--foobar", + }, + expectedErr: status.Error(codes.InvalidArgument, "invalid revision: \"--foobar\""), + }, + { + desc: "unknown id", + revisions: []string{ + "b10ff336f3fbfb131431c4959915cdfd1b49c635", + }, + expectedErr: status.Error(codes.Internal, "rev-list pipeline command: exit status 128"), + }, + { + desc: "commit id", + revisions: []string{ + "1e292f8fedd741b75372e19097c76d327140c312", + }, + expectedSignatures: nil, + }, + { + desc: "commit ref", + revisions: []string{ + "refs/heads/master", + }, + expectedSignatures: nil, + }, + { + desc: "single tag signature", + revisions: []string{ + tag1ID, + }, + expectedSignatures: []*gitalypb.GetTagSignaturesResponse_TagSignature{ + { + TagId: tag1ID, + Signature: []byte(signature1), + Content: []byte(content1), + }, + }, + }, + { + desc: "single tag signature by short SHA", + revisions: []string{ + tag1ID[:7], + }, + expectedSignatures: []*gitalypb.GetTagSignaturesResponse_TagSignature{ + { + TagId: tag1ID, + Signature: []byte(signature1), + Content: []byte(content1), + }, + }, + }, + { + desc: "single tag signature by ref", + revisions: []string{ + "refs/tags/big-tag-1", + }, + expectedSignatures: []*gitalypb.GetTagSignaturesResponse_TagSignature{ + { + TagId: tag1ID, + Signature: []byte(signature1), + Content: []byte(content1), + }, + }, + }, + { + desc: "multiple tag signatures", + revisions: []string{ + tag1ID, + tag2ID, + }, + expectedSignatures: []*gitalypb.GetTagSignaturesResponse_TagSignature{ + { + TagId: tag1ID, + Signature: []byte(signature1), + Content: []byte(content1), + }, + { + TagId: tag2ID, + Signature: []byte(signature2), + Content: []byte(content2), + }, + }, + }, + { + desc: "tag without signature", + revisions: []string{ + tag3ID, + }, + expectedSignatures: []*gitalypb.GetTagSignaturesResponse_TagSignature{ + { + TagId: tag3ID, + Signature: []byte(""), + Content: []byte(content3), + }, + }, + }, + { + desc: "pseudorevisions", + revisions: []string{ + "--not", + "--all", + }, + expectedSignatures: nil, + }, + } { + t.Run(tc.desc, func(t *testing.T) { + stream, err := client.GetTagSignatures(ctx, &gitalypb.GetTagSignaturesRequest{ + Repository: repoProto, + TagRevisions: tc.revisions, + }) + require.NoError(t, err) + + var signatures []*gitalypb.GetTagSignaturesResponse_TagSignature + for { + resp, err := stream.Recv() + if err != nil { + if !errors.Is(err, io.EOF) { + testassert.GrpcEqualErr(t, tc.expectedErr, err) + } + break + } + + signatures = append(signatures, resp.Signatures...) + } + + testassert.ProtoEqual(t, tc.expectedSignatures, signatures) + }) + } +} diff --git a/internal/gitaly/service/ref/testdata/tag-1e292f8fedd741b75372e19097c76d327140c312-signature b/internal/gitaly/service/ref/testdata/tag-1e292f8fedd741b75372e19097c76d327140c312-signature new file mode 100644 index 000000000..185345505 --- /dev/null +++ b/internal/gitaly/service/ref/testdata/tag-1e292f8fedd741b75372e19097c76d327140c312-signature @@ -0,0 +1,6 @@ +-----BEGIN PGP SIGNATURE----- +iJwEAAEIAAYFAlmmbf0ACgkQv52SX5Ee/WVv1gP/WrjclOc3CYiTrTgNuxs/vyXl +PtUrxbOYEpQtRV+id/agJgaJWKoHRYUoXSGBuykijsND43PMkrjfZiF2SbE0j0CS +7oukSx83us+y/hn+ecZQG0OkrBZ2vQ9gHGbEN9RFyZXfgWtRcgqFnFZUxCznhzzk +njAjb08aUpn9r8WHsdU=\n=HLte +-----END PGP SIGNATURE-----
\ No newline at end of file diff --git a/internal/gitaly/service/ref/testdata/tag-7975be0116940bf2ad4321f79d02a55c5f7779aa-signature b/internal/gitaly/service/ref/testdata/tag-7975be0116940bf2ad4321f79d02a55c5f7779aa-signature new file mode 100644 index 000000000..bbdfc7bf6 --- /dev/null +++ b/internal/gitaly/service/ref/testdata/tag-7975be0116940bf2ad4321f79d02a55c5f7779aa-signature @@ -0,0 +1,101 @@ +-----BEGIN SIGNED MESSAGE----- +MIISfwYJKoZIhvcNAQcCoIIScDCCEmwCAQExDTALBglghkgBZQMEAgEwCwYJKoZI +hvcNAQcBoIIP8zCCB3QwggVcoAMCAQICBBXXLOIwDQYJKoZIhvcNAQELBQAwgbYx +CzAJBgNVBAYTAkRFMQ8wDQYDVQQIDAZCYXllcm4xETAPBgNVBAcMCE11ZW5jaGVu +MRAwDgYDVQQKDAdTaWVtZW5zMREwDwYDVQQFEwhaWlpaWlpBNjEdMBsGA1UECwwU +U2llbWVucyBUcnVzdCBDZW50ZXIxPzA9BgNVBAMMNlNpZW1lbnMgSXNzdWluZyBD +QSBNZWRpdW0gU3RyZW5ndGggQXV0aGVudGljYXRpb24gMjAxNjAeFw0xNzAyMDMw +NjU4MzNaFw0yMDAyMDMwNjU4MzNaMFsxETAPBgNVBAUTCFowMDBOV0RIMQ4wDAYD +VQQqDAVSb2dlcjEOMAwGA1UEBAwFTWVpZXIxEDAOBgNVBAoMB1NpZW1lbnMxFDAS +BgNVBAMMC01laWVyIFJvZ2VyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAuBNea/68ZCnHYQjpm/k3ZBG0wBpEKSwG6lk9CEQlSxsqVLQHAoAKBIlJm1in +YVLcK/Sq1yhYJ/qWcY/M53DhK2rpPuhtrWJUdOUy8EBWO20F4bd4Fw9pO7jt8bme +u33TSrK772vKjuppzB6SeG13Cs08H+BIeD106G27h7ufsO00pvsxoSDL+uc4slnr +pBL+2TAL7nSFnB9QHWmRIK27SPqJE+lESdb0pse11x1wjvqKy2Q7EjL9fpqJdHzX +NLKHXd2r024TOORTa05DFTNR+kQEKKV96XfpYdtSBomXNQ44cisiPBJjFtYvfnFE +wgrHa8fogn/b0C+A+HAoICN12wIDAQABo4IC4jCCAt4wHQYDVR0OBBYEFCF+gkUp +XQ6xGc0kRWXuDFxzA14zMEMGA1UdEQQ8MDqgIwYKKwYBBAGCNxQCA6AVDBNyLm1l +aWVyQHNpZW1lbnMuY29tgRNyLm1laWVyQHNpZW1lbnMuY29tMA4GA1UdDwEB/wQE +AwIHgDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwgcoGA1UdHwSBwjCB +vzCBvKCBuaCBtoYmaHR0cDovL2NoLnNpZW1lbnMuY29tL3BraT9aWlpaWlpBNi5j +cmyGQWxkYXA6Ly9jbC5zaWVtZW5zLm5ldC9DTj1aWlpaWlpBNixMPVBLST9jZXJ0 +aWZpY2F0ZVJldm9jYXRpb25MaXN0hklsZGFwOi8vY2wuc2llbWVucy5jb20vQ049 +WlpaWlpaQTYsbz1UcnVzdGNlbnRlcj9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0 +MEUGA1UdIAQ+MDwwOgYNKwYBBAGhaQcCAgMBAzApMCcGCCsGAQUFBwIBFhtodHRw +Oi8vd3d3LnNpZW1lbnMuY29tL3BraS8wDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAW +gBT4FV1HDGx3e3LEAheRaKK292oJRDCCAQQGCCsGAQUFBwEBBIH3MIH0MDIGCCsG +AQUFBzAChiZodHRwOi8vYWguc2llbWVucy5jb20vcGtpP1paWlpaWkE2LmNydDBB +BggrBgEFBQcwAoY1bGRhcDovL2FsLnNpZW1lbnMubmV0L0NOPVpaWlpaWkE2LEw9 +UEtJP2NBQ2VydGlmaWNhdGUwSQYIKwYBBQUHMAKGPWxkYXA6Ly9hbC5zaWVtZW5z +LmNvbS9DTj1aWlpaWlpBNixvPVRydXN0Y2VudGVyP2NBQ2VydGlmaWNhdGUwMAYI +KwYBBQUHMAGGJGh0dHA6Ly9vY3NwLnBraS1zZXJ2aWNlcy5zaWVtZW5zLmNvbTAN +BgkqhkiG9w0BAQsFAAOCAgEAXPVcX6vaEcszJqg5IemF9aFTlwTrX5ITNIpzcqG+ +kD5haOf2mZYLjl+MKtLC1XfmIsGCUZNb8bjP6QHQEI+2d6x/ZOqPq7Kd7PwVu6x6 +xZrkDjUyhUbUntT5+RBy++l3Wf6Cq6Kx+K8ambHBP/bu90/p2U8KfFAG3Kr2gI2q +fZrnNMOxmJfZ3/sXxssgLkhbZ7hRa+MpLfQ6uFsSiat3vlawBBvTyHnoZ/7oRc8y +qi6QzWcd76CPpMElYWibl+hJzKbBZUWvc71AzHR6i1QeZ6wubYz7vr+FF5Y7tnxB +Vz6omPC9XAg0F+Dla6Zlz3Awj5imCzVXa+9SjtnsidmJdLcKzTAKyDewewoxYOOJ +j3cJU7VSjJPl+2fVmDBaQwcNcUcu/TPAKApkegqO7tRF9IPhjhW8QkRnkqMetO3D +OXmAFVIsEI0Hvb2cdb7B6jSpjGUuhaFm9TCKhQtCk2p8JCDTuaENLm1x34rrJKbT +2vzyYN0CZtSkUdgD4yQxK9VWXGEzexRisWb4AnZjD2NAquLPpXmw8N0UwFD7MSpC +dpaX7FktdvZmMXsnGiAdtLSbBgLVWOD1gmJFDjrhNbI8NOaOaNk4jrfGqNh5lhGU +4DnBT2U6Cie1anLmFH/oZooAEXR2o3Nu+1mNDJChnJp0ovs08aa3zZvBdcloOvfU +qdowggh3MIIGX6ADAgECAgQtyi/nMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYDVQQG +EwJERTEPMA0GA1UECAwGQmF5ZXJuMREwDwYDVQQHDAhNdWVuY2hlbjEQMA4GA1UE +CgwHU2llbWVuczERMA8GA1UEBRMIWlpaWlpaQTExHTAbBgNVBAsMFFNpZW1lbnMg +VHJ1c3QgQ2VudGVyMSIwIAYDVQQDDBlTaWVtZW5zIFJvb3QgQ0EgVjMuMCAyMDE2 +MB4XDTE2MDcyMDEzNDYxMFoXDTIyMDcyMDEzNDYxMFowgbYxCzAJBgNVBAYTAkRF +MQ8wDQYDVQQIDAZCYXllcm4xETAPBgNVBAcMCE11ZW5jaGVuMRAwDgYDVQQKDAdT +aWVtZW5zMREwDwYDVQQFEwhaWlpaWlpBNjEdMBsGA1UECwwUU2llbWVucyBUcnVz +dCBDZW50ZXIxPzA9BgNVBAMMNlNpZW1lbnMgSXNzdWluZyBDQSBNZWRpdW0gU3Ry +ZW5ndGggQXV0aGVudGljYXRpb24gMjAxNjCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAL9UfK+JAZEqVMVvECdYF9IK4KSw34AqyNl3rYP5x03dtmKaNu+2 +0fQqNESA1NGzw3s6LmrKLh1cR991nB2cvKOXu7AvEGpSuxzIcOROd4NpvRx+Ej1p +JIPeqf+ScmVK7lMSO8QL/QzjHOpGV3is9sG+ZIxOW9U1ESooy4Hal6ZNs4DNItsz +piCKqm6G3et4r2WqCy2RRuSqvnmMza7Y8BZsLy0ZVo5teObQ37E/FxqSrbDI8nxn +B7nVUve5ZjrqoIGSkEOtyo11003dVO1vmWB9A0WQGDqE/q3w178hGhKfxzRaqzyi +SoADUYS2sD/CglGTUxVq6u0pGLLsCFjItcCWqW+T9fPYfJ2CEd5b3hvqdCn+pXjZ +/gdX1XAcdUF5lRnGWifaYpT9n4s4adzX8q6oHSJxTppuAwLRKH6eXALbGQ1I9lGQ +DSOipD/09xkEsPw6HOepmf2U3YxZK1VU2sHqugFJboeLcHMzp6E1n2ctlNG1GKE9 +FDHmdyFzDi0Nnxtf/GgVjnHF68hByEE1MYdJ4nJLuxoT9hyjYdRW9MpeNNxxZnmz +W3zh7QxIqP0ZfIz6XVhzrI9uZiqwwojDiM5tEOUkQ7XyW6grNXe75yt6mTj89LlB +H5fOW2RNmCy/jzBXDjgyskgK7kuCvUYTuRv8ITXbBY5axFA+CpxZqokpAgMBAAGj +ggKmMIICojCCAQUGCCsGAQUFBwEBBIH4MIH1MEEGCCsGAQUFBzAChjVsZGFwOi8v +YWwuc2llbWVucy5uZXQvQ049WlpaWlpaQTEsTD1QS0k/Y0FDZXJ0aWZpY2F0ZTAy +BggrBgEFBQcwAoYmaHR0cDovL2FoLnNpZW1lbnMuY29tL3BraT9aWlpaWlpBMS5j +cnQwSgYIKwYBBQUHMAKGPmxkYXA6Ly9hbC5zaWVtZW5zLmNvbS91aWQ9WlpaWlpa +QTEsbz1UcnVzdGNlbnRlcj9jQUNlcnRpZmljYXRlMDAGCCsGAQUFBzABhiRodHRw +Oi8vb2NzcC5wa2ktc2VydmljZXMuc2llbWVucy5jb20wHwYDVR0jBBgwFoAUcG2g +UOyp0CxnnRkV/v0EczXD4tQwEgYDVR0TAQH/BAgwBgEB/wIBADBABgNVHSAEOTA3 +MDUGCCsGAQQBoWkHMCkwJwYIKwYBBQUHAgEWG2h0dHA6Ly93d3cuc2llbWVucy5j +b20vcGtpLzCBxwYDVR0fBIG/MIG8MIG5oIG2oIGzhj9sZGFwOi8vY2wuc2llbWVu +cy5uZXQvQ049WlpaWlpaQTEsTD1QS0k/YXV0aG9yaXR5UmV2b2NhdGlvbkxpc3SG +Jmh0dHA6Ly9jaC5zaWVtZW5zLmNvbS9wa2k/WlpaWlpaQTEuY3JshkhsZGFwOi8v +Y2wuc2llbWVucy5jb20vdWlkPVpaWlpaWkExLG89VHJ1c3RjZW50ZXI/YXV0aG9y +aXR5UmV2b2NhdGlvbkxpc3QwJwYDVR0lBCAwHgYIKwYBBQUHAwIGCCsGAQUFBwME +BggrBgEFBQcDCTAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPgVXUcMbHd7csQC +F5Foorb3aglEMA0GCSqGSIb3DQEBCwUAA4ICAQBw+sqMp3SS7DVKcILEmXbdRAg3 +lLO1r457KY+YgCT9uX4VG5EdRKcGfWXK6VHGCi4Dos5eXFV34Mq/p8nu1sqMuoGP +YjHn604eWDprhGy6GrTYdxzcE/GGHkpkuE3Ir/45UcmZlOU41SJ9SNjuIVrSHMOf +ccSY42BCspR/Q1Z/ykmIqQecdT3/Kkx02GzzSN2+HlW6cEO4GBW5RMqsvd2n0h2d +fe2zcqOgkLtx7u2JCR/U77zfyxG3qXtcymoz0wgSHcsKIl+GUjITLkHfS9Op8V7C +Gr/dX437sIg5pVHmEAWadjkIzqdHux+EF94Z6kaHywohc1xG0KvPYPX7iSNjkvhz +4NY53DHmxl4YEMLffZnaS/dqyhe1GTpcpyN8WiR4KuPfxrkVDOsuzWFtMSvNdlOV +gdI0MXcLMP+EOeANZWX6lGgJ3vWyemo58nzgshKd24MY3w3i6masUkxJH2KvI7UH +/1Db3SC8oOUjInvSRej6M3ZhYWgugm6gbpUgFoDw/o9Cg6Qm71hY0JtcaPC13rzm +N8a2Br0+Fa5e2VhwLmAxyfe1JKzqPwuHT0S5u05SQghL5VdzqfA8FCL/j4XC9yI6 +csZTAQi73xFQYVjZt3+aoSz84lOlTmVo/jgvGMY/JzH9I4mETGgAJRNj34Z/0meh +M+pKWCojNH/dgyJSwDGCAlIwggJOAgEBMIG/MIG2MQswCQYDVQQGEwJERTEPMA0G +A1UECAwGQmF5ZXJuMREwDwYDVQQHDAhNdWVuY2hlbjEQMA4GA1UECgwHU2llbWVu +czERMA8GA1UEBRMIWlpaWlpaQTYxHTAbBgNVBAsMFFNpZW1lbnMgVHJ1c3QgQ2Vu +dGVyMT8wPQYDVQQDDDZTaWVtZW5zIElzc3VpbmcgQ0EgTWVkaXVtIFN0cmVuZ3Ro +IEF1dGhlbnRpY2F0aW9uIDIwMTYCBBXXLOIwCwYJYIZIAWUDBAIBoGkwHAYJKoZI +hvcNAQkFMQ8XDTE5MTEyMDE0NTYyMFowLwYJKoZIhvcNAQkEMSIEIJDnZUpcVLzC +OdtpkH8gtxwLPIDE0NmAmFC9uM8q2z+OMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0B +BwEwCwYJKoZIhvcNAQEBBIIBAH/Pqv2xp3a0jSPkwU1K3eGA/1lfoNJMUny4d/PS +LVWlkgrmedXdLmuBzAGEaaZOJS0lEpNd01pR/reHs7xxZ+RZ0olTs2ufM0CijQSx +OL9HDl2O3OoD77NWx4tl3Wy1yJCeV3XH/cEI7AkKHCmKY9QMoMYWh16ORBtr+YcS +YK+gONOjpjgcgTJgZ3HSFgQ50xiD4WT1kFBHsuYsLqaOSbTfTN6Ayyg4edjrPQqa +VcVf1OQcIrfWA3yMQrnEZfOYfN/D4EPjTfxBV+VCi/F2bdZmMbJ7jNk1FbewSwWO +SDH1i0K32NyFbnh0BSos7njq7ELqKlYBsoB/sZfaH2vKy5U= +-----END SIGNED MESSAGE-----
\ No newline at end of file diff --git a/proto/go/gitalypb/ref.pb.go b/proto/go/gitalypb/ref.pb.go index 4e41f2a68..7fe3ddb7b 100644 --- a/proto/go/gitalypb/ref.pb.go +++ b/proto/go/gitalypb/ref.pb.go @@ -1965,6 +1965,117 @@ func (x *ListTagNamesContainingCommitResponse) GetTagNames() [][]byte { return nil } +// GetTagSignaturesRequest is a request for the GetTagSignatures RPC. +type GetTagSignaturesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Repository is the repository in which tag signatures should be looked up. + Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"` + // TagRevisions is the set of revisions which that should be looked up. Revisions + // supports the syntax as specified by gitrevisions(7). All revisions are expected + // to resolve to annotated tag objects. At least one revision must be provided. + TagRevisions []string `protobuf:"bytes,2,rep,name=tag_revisions,json=tagRevisions,proto3" json:"tag_revisions,omitempty"` +} + +func (x *GetTagSignaturesRequest) Reset() { + *x = GetTagSignaturesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_ref_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTagSignaturesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTagSignaturesRequest) ProtoMessage() {} + +func (x *GetTagSignaturesRequest) ProtoReflect() protoreflect.Message { + mi := &file_ref_proto_msgTypes[34] + 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 GetTagSignaturesRequest.ProtoReflect.Descriptor instead. +func (*GetTagSignaturesRequest) Descriptor() ([]byte, []int) { + return file_ref_proto_rawDescGZIP(), []int{34} +} + +func (x *GetTagSignaturesRequest) GetRepository() *Repository { + if x != nil { + return x.Repository + } + return nil +} + +func (x *GetTagSignaturesRequest) GetTagRevisions() []string { + if x != nil { + return x.TagRevisions + } + return nil +} + +// GetTagSignaturesResponse is a response for a GetTagSignatures request. Each response +// may contain multiple TagSignatures. In case TagSignatures don't fit into a single +// response, signatures will be batched in multiple responses. +type GetTagSignaturesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Signatures is the set of signatures found. + Signatures []*GetTagSignaturesResponse_TagSignature `protobuf:"bytes,1,rep,name=signatures,proto3" json:"signatures,omitempty"` +} + +func (x *GetTagSignaturesResponse) Reset() { + *x = GetTagSignaturesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_ref_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTagSignaturesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTagSignaturesResponse) ProtoMessage() {} + +func (x *GetTagSignaturesResponse) ProtoReflect() protoreflect.Message { + mi := &file_ref_proto_msgTypes[35] + 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 GetTagSignaturesResponse.ProtoReflect.Descriptor instead. +func (*GetTagSignaturesResponse) Descriptor() ([]byte, []int) { + return file_ref_proto_rawDescGZIP(), []int{35} +} + +func (x *GetTagSignaturesResponse) GetSignatures() []*GetTagSignaturesResponse_TagSignature { + if x != nil { + return x.Signatures + } + return nil +} + type GetTagMessagesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1977,7 +2088,7 @@ type GetTagMessagesRequest struct { func (x *GetTagMessagesRequest) Reset() { *x = GetTagMessagesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_ref_proto_msgTypes[34] + mi := &file_ref_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1990,7 +2101,7 @@ func (x *GetTagMessagesRequest) String() string { func (*GetTagMessagesRequest) ProtoMessage() {} func (x *GetTagMessagesRequest) ProtoReflect() protoreflect.Message { - mi := &file_ref_proto_msgTypes[34] + mi := &file_ref_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2003,7 +2114,7 @@ func (x *GetTagMessagesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTagMessagesRequest.ProtoReflect.Descriptor instead. func (*GetTagMessagesRequest) Descriptor() ([]byte, []int) { - return file_ref_proto_rawDescGZIP(), []int{34} + return file_ref_proto_rawDescGZIP(), []int{36} } func (x *GetTagMessagesRequest) GetRepository() *Repository { @@ -2033,7 +2144,7 @@ type GetTagMessagesResponse struct { func (x *GetTagMessagesResponse) Reset() { *x = GetTagMessagesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_ref_proto_msgTypes[35] + mi := &file_ref_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2046,7 +2157,7 @@ func (x *GetTagMessagesResponse) String() string { func (*GetTagMessagesResponse) ProtoMessage() {} func (x *GetTagMessagesResponse) ProtoReflect() protoreflect.Message { - mi := &file_ref_proto_msgTypes[35] + mi := &file_ref_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2059,7 +2170,7 @@ func (x *GetTagMessagesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTagMessagesResponse.ProtoReflect.Descriptor instead. func (*GetTagMessagesResponse) Descriptor() ([]byte, []int) { - return file_ref_proto_rawDescGZIP(), []int{35} + return file_ref_proto_rawDescGZIP(), []int{37} } func (x *GetTagMessagesResponse) GetMessage() []byte { @@ -2088,7 +2199,7 @@ type ListNewCommitsRequest struct { func (x *ListNewCommitsRequest) Reset() { *x = ListNewCommitsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_ref_proto_msgTypes[36] + mi := &file_ref_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2101,7 +2212,7 @@ func (x *ListNewCommitsRequest) String() string { func (*ListNewCommitsRequest) ProtoMessage() {} func (x *ListNewCommitsRequest) ProtoReflect() protoreflect.Message { - mi := &file_ref_proto_msgTypes[36] + mi := &file_ref_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2114,7 +2225,7 @@ func (x *ListNewCommitsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListNewCommitsRequest.ProtoReflect.Descriptor instead. func (*ListNewCommitsRequest) Descriptor() ([]byte, []int) { - return file_ref_proto_rawDescGZIP(), []int{36} + return file_ref_proto_rawDescGZIP(), []int{38} } func (x *ListNewCommitsRequest) GetRepository() *Repository { @@ -2142,7 +2253,7 @@ type ListNewCommitsResponse struct { func (x *ListNewCommitsResponse) Reset() { *x = ListNewCommitsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_ref_proto_msgTypes[37] + mi := &file_ref_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2155,7 +2266,7 @@ func (x *ListNewCommitsResponse) String() string { func (*ListNewCommitsResponse) ProtoMessage() {} func (x *ListNewCommitsResponse) ProtoReflect() protoreflect.Message { - mi := &file_ref_proto_msgTypes[37] + mi := &file_ref_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2168,7 +2279,7 @@ func (x *ListNewCommitsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListNewCommitsResponse.ProtoReflect.Descriptor instead. func (*ListNewCommitsResponse) Descriptor() ([]byte, []int) { - return file_ref_proto_rawDescGZIP(), []int{37} + return file_ref_proto_rawDescGZIP(), []int{39} } func (x *ListNewCommitsResponse) GetCommits() []*GitCommit { @@ -2190,7 +2301,7 @@ type FindAllRemoteBranchesRequest struct { func (x *FindAllRemoteBranchesRequest) Reset() { *x = FindAllRemoteBranchesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_ref_proto_msgTypes[38] + mi := &file_ref_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2203,7 +2314,7 @@ func (x *FindAllRemoteBranchesRequest) String() string { func (*FindAllRemoteBranchesRequest) ProtoMessage() {} func (x *FindAllRemoteBranchesRequest) ProtoReflect() protoreflect.Message { - mi := &file_ref_proto_msgTypes[38] + mi := &file_ref_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2216,7 +2327,7 @@ func (x *FindAllRemoteBranchesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FindAllRemoteBranchesRequest.ProtoReflect.Descriptor instead. func (*FindAllRemoteBranchesRequest) Descriptor() ([]byte, []int) { - return file_ref_proto_rawDescGZIP(), []int{38} + return file_ref_proto_rawDescGZIP(), []int{40} } func (x *FindAllRemoteBranchesRequest) GetRepository() *Repository { @@ -2244,7 +2355,7 @@ type FindAllRemoteBranchesResponse struct { func (x *FindAllRemoteBranchesResponse) Reset() { *x = FindAllRemoteBranchesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_ref_proto_msgTypes[39] + mi := &file_ref_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2257,7 +2368,7 @@ func (x *FindAllRemoteBranchesResponse) String() string { func (*FindAllRemoteBranchesResponse) ProtoMessage() {} func (x *FindAllRemoteBranchesResponse) ProtoReflect() protoreflect.Message { - mi := &file_ref_proto_msgTypes[39] + mi := &file_ref_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2270,7 +2381,7 @@ func (x *FindAllRemoteBranchesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use FindAllRemoteBranchesResponse.ProtoReflect.Descriptor instead. func (*FindAllRemoteBranchesResponse) Descriptor() ([]byte, []int) { - return file_ref_proto_rawDescGZIP(), []int{39} + return file_ref_proto_rawDescGZIP(), []int{41} } func (x *FindAllRemoteBranchesResponse) GetBranches() []*Branch { @@ -2292,7 +2403,7 @@ type PackRefsRequest struct { func (x *PackRefsRequest) Reset() { *x = PackRefsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_ref_proto_msgTypes[40] + mi := &file_ref_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2305,7 +2416,7 @@ func (x *PackRefsRequest) String() string { func (*PackRefsRequest) ProtoMessage() {} func (x *PackRefsRequest) ProtoReflect() protoreflect.Message { - mi := &file_ref_proto_msgTypes[40] + mi := &file_ref_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2318,7 +2429,7 @@ func (x *PackRefsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PackRefsRequest.ProtoReflect.Descriptor instead. func (*PackRefsRequest) Descriptor() ([]byte, []int) { - return file_ref_proto_rawDescGZIP(), []int{40} + return file_ref_proto_rawDescGZIP(), []int{42} } func (x *PackRefsRequest) GetRepository() *Repository { @@ -2344,7 +2455,7 @@ type PackRefsResponse struct { func (x *PackRefsResponse) Reset() { *x = PackRefsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_ref_proto_msgTypes[41] + mi := &file_ref_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2357,7 +2468,7 @@ func (x *PackRefsResponse) String() string { func (*PackRefsResponse) ProtoMessage() {} func (x *PackRefsResponse) ProtoReflect() protoreflect.Message { - mi := &file_ref_proto_msgTypes[41] + mi := &file_ref_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2370,7 +2481,7 @@ func (x *PackRefsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PackRefsResponse.ProtoReflect.Descriptor instead. func (*PackRefsResponse) Descriptor() ([]byte, []int) { - return file_ref_proto_rawDescGZIP(), []int{41} + return file_ref_proto_rawDescGZIP(), []int{43} } type FindAllBranchesResponse_Branch struct { @@ -2385,7 +2496,7 @@ type FindAllBranchesResponse_Branch struct { func (x *FindAllBranchesResponse_Branch) Reset() { *x = FindAllBranchesResponse_Branch{} if protoimpl.UnsafeEnabled { - mi := &file_ref_proto_msgTypes[42] + mi := &file_ref_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2398,7 +2509,7 @@ func (x *FindAllBranchesResponse_Branch) String() string { func (*FindAllBranchesResponse_Branch) ProtoMessage() {} func (x *FindAllBranchesResponse_Branch) ProtoReflect() protoreflect.Message { - mi := &file_ref_proto_msgTypes[42] + mi := &file_ref_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2428,6 +2539,76 @@ func (x *FindAllBranchesResponse_Branch) GetTarget() *GitCommit { return nil } +// TagSignature represents the signature of a signed tag. +type GetTagSignaturesResponse_TagSignature struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // TagId is the resolved object ID of the tag. + TagId string `protobuf:"bytes,1,opt,name=tag_id,json=tagId,proto3" json:"tag_id,omitempty"` + // Signature contains the cryptographic signature of the tag. If the tag is not + // cryptographically signed, then the signature is unset. + Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` + // Content contains the contents which are signed by the signature. Contents + // include both the commit message, but also the commit metadata like author and + // subject. + Content []byte `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"` +} + +func (x *GetTagSignaturesResponse_TagSignature) Reset() { + *x = GetTagSignaturesResponse_TagSignature{} + if protoimpl.UnsafeEnabled { + mi := &file_ref_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTagSignaturesResponse_TagSignature) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTagSignaturesResponse_TagSignature) ProtoMessage() {} + +func (x *GetTagSignaturesResponse_TagSignature) ProtoReflect() protoreflect.Message { + mi := &file_ref_proto_msgTypes[45] + 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 GetTagSignaturesResponse_TagSignature.ProtoReflect.Descriptor instead. +func (*GetTagSignaturesResponse_TagSignature) Descriptor() ([]byte, []int) { + return file_ref_proto_rawDescGZIP(), []int{35, 0} +} + +func (x *GetTagSignaturesResponse_TagSignature) GetTagId() string { + if x != nil { + return x.TagId + } + return "" +} + +func (x *GetTagSignaturesResponse_TagSignature) GetSignature() []byte { + if x != nil { + return x.Signature + } + return nil +} + +func (x *GetTagSignaturesResponse_TagSignature) GetContent() []byte { + if x != nil { + return x.Content + } + return nil +} + var File_ref_proto protoreflect.FileDescriptor var file_ref_proto_rawDesc = []byte{ @@ -2667,162 +2848,188 @@ var file_ref_proto_rawDesc = []byte{ 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x4a, 0x04, 0x08, - 0x01, 0x10, 0x02, 0x22, 0x7b, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67, 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, 0x17, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, 0x67, 0x49, 0x64, 0x73, 0x4a, - 0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x09, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x22, 0x59, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 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, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x67, 0x49, 0x64, 0x4a, 0x04, 0x08, 0x01, 0x10, - 0x02, 0x52, 0x08, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6e, 0x0a, 0x15, 0x4c, - 0x69, 0x73, 0x74, 0x4e, 0x65, 0x77, 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, 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, 0x45, 0x0a, 0x16, 0x4c, - 0x69, 0x73, 0x74, 0x4e, 0x65, 0x77, 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, 0x79, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x01, 0x10, 0x02, 0x22, 0x78, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67, 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, 0x23, 0x0a, 0x0d, 0x74, 0x61, 0x67, 0x5f, + 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0c, 0x74, 0x61, 0x67, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xc8, 0x01, + 0x0a, 0x18, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x54, 0x61, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0a, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x1a, 0x5d, 0x0a, 0x0c, 0x54, 0x61, 0x67, + 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x61, 0x67, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x67, 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, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x7b, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x54, + 0x61, 0x67, 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, 0x17, 0x0a, 0x07, 0x74, + 0x61, 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x74, 0x61, + 0x67, 0x49, 0x64, 0x73, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x09, 0x74, 0x61, 0x67, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x59, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 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, 0x12, 0x15, 0x0a, 0x06, 0x74, 0x61, 0x67, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x67, 0x49, 0x64, + 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x52, 0x08, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x6e, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x77, 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, 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, 0x45, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x77, 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, 0x79, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x64, 0x41, + 0x6c, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 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, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0x4b, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x42, + 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x22, + 0x66, 0x0a, 0x0f, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x66, 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, 0x1f, 0x0a, 0x0b, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x4b, 0x0a, - 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x42, 0x72, - 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, - 0x0a, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, - 0x52, 0x08, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x22, 0x66, 0x0a, 0x0f, 0x50, 0x61, - 0x63, 0x6b, 0x52, 0x65, 0x66, 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, 0x19, 0x0a, 0x08, 0x61, 0x6c, 0x6c, 0x5f, 0x72, - 0x65, 0x66, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, 0x6c, 0x6c, 0x52, 0x65, - 0x66, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xa2, 0x0d, 0x0a, 0x0a, 0x52, 0x65, 0x66, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6c, 0x0a, 0x15, 0x46, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, - 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, + 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x19, 0x0a, 0x08, + 0x61, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x66, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x66, 0x73, 0x22, 0x12, 0x0a, 0x10, 0x50, 0x61, 0x63, 0x6b, 0x52, + 0x65, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x83, 0x0e, 0x0a, 0x0a, + 0x52, 0x65, 0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6c, 0x0a, 0x15, 0x46, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, - 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, - 0x02, 0x08, 0x02, 0x12, 0x65, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x42, 0x72, - 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x21, 0x2e, 0x67, 0x69, 0x74, 0x61, - 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, - 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x42, 0x72, 0x61, - 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x5c, 0x0a, 0x0f, 0x46, 0x69, - 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1e, 0x2e, - 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x54, 0x61, - 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, - 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x54, 0x61, - 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, - 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x4e, 0x0a, 0x0b, 0x46, 0x69, 0x6e, 0x64, - 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, - 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, - 0x64, 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x12, 0x62, 0x0a, 0x11, 0x46, 0x69, 0x6e, 0x64, - 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, 0x20, 0x2e, - 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x6c, - 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x21, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x5c, 0x0a, 0x0f, - 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, - 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, - 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, - 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 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, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x61, - 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, - 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x42, 0x0a, 0x07, - 0x46, 0x69, 0x6e, 0x64, 0x54, 0x61, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, - 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x17, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x54, 0x61, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, - 0x12, 0x6e, 0x0a, 0x15, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x61, - 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x25, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, - 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, - 0x12, 0x48, 0x0a, 0x09, 0x52, 0x65, 0x66, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, 0x18, 0x2e, - 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x66, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, - 0x2e, 0x52, 0x65, 0x66, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x12, 0x4b, 0x0a, 0x0a, 0x46, 0x69, - 0x6e, 0x64, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x19, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, - 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, - 0x64, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x12, 0x4b, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x65, 0x66, 0x73, 0x12, 0x19, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, - 0x28, 0x02, 0x08, 0x01, 0x12, 0x8c, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72, 0x61, - 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, - 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, - 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, - 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, - 0x02, 0x30, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x2b, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x54, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, - 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x59, 0x0a, 0x0e, 0x47, 0x65, 0x74, - 0x54, 0x61, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1d, 0x2e, 0x67, 0x69, - 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x69, 0x74, - 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67, 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, 0x59, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x77, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x77, 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, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x61, 0x6d, 0x65, 0x12, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, + 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x69, 0x74, 0x61, + 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x72, + 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x12, 0x65, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, + 0x41, 0x6c, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x21, + 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x42, + 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, + 0x6c, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, - 0x53, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x12, - 0x1b, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x77, - 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x67, - 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, - 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, - 0x08, 0x02, 0x30, 0x01, 0x12, 0x45, 0x0a, 0x08, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x66, 0x73, - 0x12, 0x17, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, - 0x66, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x67, 0x69, 0x74, 0x61, - 0x6c, 0x79, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 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, + 0x5c, 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x67, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, + 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, + 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x4e, 0x0a, + 0x0b, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x2e, 0x67, + 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, + 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x12, 0x62, 0x0a, + 0x11, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, + 0x65, 0x73, 0x12, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, + 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, + 0x6e, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, + 0x01, 0x12, 0x5c, 0x0a, 0x0f, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x42, 0x72, 0x61, 0x6e, + 0x63, 0x68, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, + 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, + 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 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, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1a, + 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x54, + 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x67, 0x69, 0x74, + 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x54, 0x61, 0x67, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, + 0x01, 0x12, 0x42, 0x0a, 0x07, 0x46, 0x69, 0x6e, 0x64, 0x54, 0x61, 0x67, 0x12, 0x16, 0x2e, 0x67, + 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, + 0x6e, 0x64, 0x54, 0x61, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, + 0x97, 0x28, 0x02, 0x08, 0x02, 0x12, 0x6e, 0x0a, 0x15, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, + 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, 0x24, + 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, + 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, + 0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, + 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x52, 0x65, 0x66, 0x45, 0x78, 0x69, 0x73, + 0x74, 0x73, 0x12, 0x18, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x66, 0x45, + 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x67, + 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x66, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x12, + 0x4b, 0x0a, 0x0a, 0x46, 0x69, 0x6e, 0x64, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x19, 0x2e, + 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x42, 0x72, 0x61, 0x6e, 0x63, + 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, + 0x79, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x12, 0x4b, 0x0a, 0x0a, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x66, 0x73, 0x12, 0x19, 0x2e, 0x67, 0x69, 0x74, + 0x61, 0x6c, 0x79, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x01, 0x12, 0x8c, 0x01, 0x0a, 0x1f, 0x4c, 0x69, + 0x73, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x43, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x2e, 0x2e, + 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, + 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, + 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, + 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, + 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, + 0x74, 0x54, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x2b, 0x2e, 0x67, 0x69, 0x74, 0x61, + 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x5f, + 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x54, + 0x61, 0x67, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, + 0x54, 0x61, 0x67, 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, + 0x59, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x73, 0x12, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, + 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x61, 0x67, + 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, 0x59, 0x0a, 0x0e, 0x4c, 0x69, + 0x73, 0x74, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x1d, 0x2e, 0x67, + 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x77, 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, 0x4e, 0x65, 0x77, 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, 0x53, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x65, 0x77, + 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x12, 0x1b, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x4e, 0x65, 0x77, 0x42, 0x6c, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, 0x02, 0x30, 0x01, 0x12, 0x45, 0x0a, 0x08, 0x50, 0x61, + 0x63, 0x6b, 0x52, 0x65, 0x66, 0x73, 0x12, 0x17, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, + 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x66, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x18, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x66, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x06, 0xfa, 0x97, 0x28, 0x02, 0x08, + 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 ( @@ -2838,7 +3045,7 @@ func file_ref_proto_rawDescGZIP() []byte { } var file_ref_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_ref_proto_msgTypes = make([]protoimpl.MessageInfo, 43) +var file_ref_proto_msgTypes = make([]protoimpl.MessageInfo, 46) var file_ref_proto_goTypes = []interface{}{ (FindLocalBranchesRequest_SortBy)(0), // 0: gitaly.FindLocalBranchesRequest.SortBy (CreateBranchResponse_Status)(0), // 1: gitaly.CreateBranchResponse.Status @@ -2876,102 +3083,109 @@ var file_ref_proto_goTypes = []interface{}{ (*ListBranchNamesContainingCommitResponse)(nil), // 33: gitaly.ListBranchNamesContainingCommitResponse (*ListTagNamesContainingCommitRequest)(nil), // 34: gitaly.ListTagNamesContainingCommitRequest (*ListTagNamesContainingCommitResponse)(nil), // 35: gitaly.ListTagNamesContainingCommitResponse - (*GetTagMessagesRequest)(nil), // 36: gitaly.GetTagMessagesRequest - (*GetTagMessagesResponse)(nil), // 37: gitaly.GetTagMessagesResponse - (*ListNewCommitsRequest)(nil), // 38: gitaly.ListNewCommitsRequest - (*ListNewCommitsResponse)(nil), // 39: gitaly.ListNewCommitsResponse - (*FindAllRemoteBranchesRequest)(nil), // 40: gitaly.FindAllRemoteBranchesRequest - (*FindAllRemoteBranchesResponse)(nil), // 41: gitaly.FindAllRemoteBranchesResponse - (*PackRefsRequest)(nil), // 42: gitaly.PackRefsRequest - (*PackRefsResponse)(nil), // 43: gitaly.PackRefsResponse - (*FindAllBranchesResponse_Branch)(nil), // 44: gitaly.FindAllBranchesResponse.Branch - (*Repository)(nil), // 45: gitaly.Repository - (*NewBlobObject)(nil), // 46: gitaly.NewBlobObject - (*PaginationParameter)(nil), // 47: gitaly.PaginationParameter - (*GitCommit)(nil), // 48: gitaly.GitCommit - (*timestamppb.Timestamp)(nil), // 49: google.protobuf.Timestamp - (*Tag)(nil), // 50: gitaly.Tag - (*Branch)(nil), // 51: gitaly.Branch + (*GetTagSignaturesRequest)(nil), // 36: gitaly.GetTagSignaturesRequest + (*GetTagSignaturesResponse)(nil), // 37: gitaly.GetTagSignaturesResponse + (*GetTagMessagesRequest)(nil), // 38: gitaly.GetTagMessagesRequest + (*GetTagMessagesResponse)(nil), // 39: gitaly.GetTagMessagesResponse + (*ListNewCommitsRequest)(nil), // 40: gitaly.ListNewCommitsRequest + (*ListNewCommitsResponse)(nil), // 41: gitaly.ListNewCommitsResponse + (*FindAllRemoteBranchesRequest)(nil), // 42: gitaly.FindAllRemoteBranchesRequest + (*FindAllRemoteBranchesResponse)(nil), // 43: gitaly.FindAllRemoteBranchesResponse + (*PackRefsRequest)(nil), // 44: gitaly.PackRefsRequest + (*PackRefsResponse)(nil), // 45: gitaly.PackRefsResponse + (*FindAllBranchesResponse_Branch)(nil), // 46: gitaly.FindAllBranchesResponse.Branch + (*GetTagSignaturesResponse_TagSignature)(nil), // 47: gitaly.GetTagSignaturesResponse.TagSignature + (*Repository)(nil), // 48: gitaly.Repository + (*NewBlobObject)(nil), // 49: gitaly.NewBlobObject + (*PaginationParameter)(nil), // 50: gitaly.PaginationParameter + (*GitCommit)(nil), // 51: gitaly.GitCommit + (*timestamppb.Timestamp)(nil), // 52: google.protobuf.Timestamp + (*Tag)(nil), // 53: gitaly.Tag + (*Branch)(nil), // 54: gitaly.Branch } var file_ref_proto_depIdxs = []int32{ - 45, // 0: gitaly.ListNewBlobsRequest.repository:type_name -> gitaly.Repository - 46, // 1: gitaly.ListNewBlobsResponse.new_blob_objects:type_name -> gitaly.NewBlobObject - 45, // 2: gitaly.FindDefaultBranchNameRequest.repository:type_name -> gitaly.Repository - 45, // 3: gitaly.FindAllBranchNamesRequest.repository:type_name -> gitaly.Repository - 45, // 4: gitaly.FindAllTagNamesRequest.repository:type_name -> gitaly.Repository - 45, // 5: gitaly.FindRefNameRequest.repository:type_name -> gitaly.Repository - 45, // 6: gitaly.FindLocalBranchesRequest.repository:type_name -> gitaly.Repository + 48, // 0: gitaly.ListNewBlobsRequest.repository:type_name -> gitaly.Repository + 49, // 1: gitaly.ListNewBlobsResponse.new_blob_objects:type_name -> gitaly.NewBlobObject + 48, // 2: gitaly.FindDefaultBranchNameRequest.repository:type_name -> gitaly.Repository + 48, // 3: gitaly.FindAllBranchNamesRequest.repository:type_name -> gitaly.Repository + 48, // 4: gitaly.FindAllTagNamesRequest.repository:type_name -> gitaly.Repository + 48, // 5: gitaly.FindRefNameRequest.repository:type_name -> gitaly.Repository + 48, // 6: gitaly.FindLocalBranchesRequest.repository:type_name -> gitaly.Repository 0, // 7: gitaly.FindLocalBranchesRequest.sort_by:type_name -> gitaly.FindLocalBranchesRequest.SortBy - 47, // 8: gitaly.FindLocalBranchesRequest.pagination_params:type_name -> gitaly.PaginationParameter + 50, // 8: gitaly.FindLocalBranchesRequest.pagination_params:type_name -> gitaly.PaginationParameter 14, // 9: gitaly.FindLocalBranchesResponse.branches:type_name -> gitaly.FindLocalBranchResponse 15, // 10: gitaly.FindLocalBranchResponse.commit_author:type_name -> gitaly.FindLocalBranchCommitAuthor 15, // 11: gitaly.FindLocalBranchResponse.commit_committer:type_name -> gitaly.FindLocalBranchCommitAuthor - 48, // 12: gitaly.FindLocalBranchResponse.commit:type_name -> gitaly.GitCommit - 49, // 13: gitaly.FindLocalBranchCommitAuthor.date:type_name -> google.protobuf.Timestamp - 45, // 14: gitaly.FindAllBranchesRequest.repository:type_name -> gitaly.Repository - 44, // 15: gitaly.FindAllBranchesResponse.branches:type_name -> gitaly.FindAllBranchesResponse.Branch - 45, // 16: gitaly.FindTagRequest.repository:type_name -> gitaly.Repository - 50, // 17: gitaly.FindTagResponse.tag:type_name -> gitaly.Tag - 45, // 18: gitaly.FindAllTagsRequest.repository:type_name -> gitaly.Repository - 50, // 19: gitaly.FindAllTagsResponse.tags:type_name -> gitaly.Tag - 45, // 20: gitaly.RefExistsRequest.repository:type_name -> gitaly.Repository - 45, // 21: gitaly.CreateBranchRequest.repository:type_name -> gitaly.Repository + 51, // 12: gitaly.FindLocalBranchResponse.commit:type_name -> gitaly.GitCommit + 52, // 13: gitaly.FindLocalBranchCommitAuthor.date:type_name -> google.protobuf.Timestamp + 48, // 14: gitaly.FindAllBranchesRequest.repository:type_name -> gitaly.Repository + 46, // 15: gitaly.FindAllBranchesResponse.branches:type_name -> gitaly.FindAllBranchesResponse.Branch + 48, // 16: gitaly.FindTagRequest.repository:type_name -> gitaly.Repository + 53, // 17: gitaly.FindTagResponse.tag:type_name -> gitaly.Tag + 48, // 18: gitaly.FindAllTagsRequest.repository:type_name -> gitaly.Repository + 53, // 19: gitaly.FindAllTagsResponse.tags:type_name -> gitaly.Tag + 48, // 20: gitaly.RefExistsRequest.repository:type_name -> gitaly.Repository + 48, // 21: gitaly.CreateBranchRequest.repository:type_name -> gitaly.Repository 1, // 22: gitaly.CreateBranchResponse.status:type_name -> gitaly.CreateBranchResponse.Status - 51, // 23: gitaly.CreateBranchResponse.branch:type_name -> gitaly.Branch - 45, // 24: gitaly.DeleteBranchRequest.repository:type_name -> gitaly.Repository - 45, // 25: gitaly.FindBranchRequest.repository:type_name -> gitaly.Repository - 51, // 26: gitaly.FindBranchResponse.branch:type_name -> gitaly.Branch - 45, // 27: gitaly.DeleteRefsRequest.repository:type_name -> gitaly.Repository - 45, // 28: gitaly.ListBranchNamesContainingCommitRequest.repository:type_name -> gitaly.Repository - 45, // 29: gitaly.ListTagNamesContainingCommitRequest.repository:type_name -> gitaly.Repository - 45, // 30: gitaly.GetTagMessagesRequest.repository:type_name -> gitaly.Repository - 45, // 31: gitaly.ListNewCommitsRequest.repository:type_name -> gitaly.Repository - 48, // 32: gitaly.ListNewCommitsResponse.commits:type_name -> gitaly.GitCommit - 45, // 33: gitaly.FindAllRemoteBranchesRequest.repository:type_name -> gitaly.Repository - 51, // 34: gitaly.FindAllRemoteBranchesResponse.branches:type_name -> gitaly.Branch - 45, // 35: gitaly.PackRefsRequest.repository:type_name -> gitaly.Repository - 48, // 36: gitaly.FindAllBranchesResponse.Branch.target:type_name -> gitaly.GitCommit - 4, // 37: gitaly.RefService.FindDefaultBranchName:input_type -> gitaly.FindDefaultBranchNameRequest - 6, // 38: gitaly.RefService.FindAllBranchNames:input_type -> gitaly.FindAllBranchNamesRequest - 8, // 39: gitaly.RefService.FindAllTagNames:input_type -> gitaly.FindAllTagNamesRequest - 10, // 40: gitaly.RefService.FindRefName:input_type -> gitaly.FindRefNameRequest - 12, // 41: gitaly.RefService.FindLocalBranches:input_type -> gitaly.FindLocalBranchesRequest - 16, // 42: gitaly.RefService.FindAllBranches:input_type -> gitaly.FindAllBranchesRequest - 20, // 43: gitaly.RefService.FindAllTags:input_type -> gitaly.FindAllTagsRequest - 18, // 44: gitaly.RefService.FindTag:input_type -> gitaly.FindTagRequest - 40, // 45: gitaly.RefService.FindAllRemoteBranches:input_type -> gitaly.FindAllRemoteBranchesRequest - 22, // 46: gitaly.RefService.RefExists:input_type -> gitaly.RefExistsRequest - 28, // 47: gitaly.RefService.FindBranch:input_type -> gitaly.FindBranchRequest - 30, // 48: gitaly.RefService.DeleteRefs:input_type -> gitaly.DeleteRefsRequest - 32, // 49: gitaly.RefService.ListBranchNamesContainingCommit:input_type -> gitaly.ListBranchNamesContainingCommitRequest - 34, // 50: gitaly.RefService.ListTagNamesContainingCommit:input_type -> gitaly.ListTagNamesContainingCommitRequest - 36, // 51: gitaly.RefService.GetTagMessages:input_type -> gitaly.GetTagMessagesRequest - 38, // 52: gitaly.RefService.ListNewCommits:input_type -> gitaly.ListNewCommitsRequest - 2, // 53: gitaly.RefService.ListNewBlobs:input_type -> gitaly.ListNewBlobsRequest - 42, // 54: gitaly.RefService.PackRefs:input_type -> gitaly.PackRefsRequest - 5, // 55: gitaly.RefService.FindDefaultBranchName:output_type -> gitaly.FindDefaultBranchNameResponse - 7, // 56: gitaly.RefService.FindAllBranchNames:output_type -> gitaly.FindAllBranchNamesResponse - 9, // 57: gitaly.RefService.FindAllTagNames:output_type -> gitaly.FindAllTagNamesResponse - 11, // 58: gitaly.RefService.FindRefName:output_type -> gitaly.FindRefNameResponse - 13, // 59: gitaly.RefService.FindLocalBranches:output_type -> gitaly.FindLocalBranchesResponse - 17, // 60: gitaly.RefService.FindAllBranches:output_type -> gitaly.FindAllBranchesResponse - 21, // 61: gitaly.RefService.FindAllTags:output_type -> gitaly.FindAllTagsResponse - 19, // 62: gitaly.RefService.FindTag:output_type -> gitaly.FindTagResponse - 41, // 63: gitaly.RefService.FindAllRemoteBranches:output_type -> gitaly.FindAllRemoteBranchesResponse - 23, // 64: gitaly.RefService.RefExists:output_type -> gitaly.RefExistsResponse - 29, // 65: gitaly.RefService.FindBranch:output_type -> gitaly.FindBranchResponse - 31, // 66: gitaly.RefService.DeleteRefs:output_type -> gitaly.DeleteRefsResponse - 33, // 67: gitaly.RefService.ListBranchNamesContainingCommit:output_type -> gitaly.ListBranchNamesContainingCommitResponse - 35, // 68: gitaly.RefService.ListTagNamesContainingCommit:output_type -> gitaly.ListTagNamesContainingCommitResponse - 37, // 69: gitaly.RefService.GetTagMessages:output_type -> gitaly.GetTagMessagesResponse - 39, // 70: gitaly.RefService.ListNewCommits:output_type -> gitaly.ListNewCommitsResponse - 3, // 71: gitaly.RefService.ListNewBlobs:output_type -> gitaly.ListNewBlobsResponse - 43, // 72: gitaly.RefService.PackRefs:output_type -> gitaly.PackRefsResponse - 55, // [55:73] is the sub-list for method output_type - 37, // [37:55] is the sub-list for method input_type - 37, // [37:37] is the sub-list for extension type_name - 37, // [37:37] is the sub-list for extension extendee - 0, // [0:37] is the sub-list for field type_name + 54, // 23: gitaly.CreateBranchResponse.branch:type_name -> gitaly.Branch + 48, // 24: gitaly.DeleteBranchRequest.repository:type_name -> gitaly.Repository + 48, // 25: gitaly.FindBranchRequest.repository:type_name -> gitaly.Repository + 54, // 26: gitaly.FindBranchResponse.branch:type_name -> gitaly.Branch + 48, // 27: gitaly.DeleteRefsRequest.repository:type_name -> gitaly.Repository + 48, // 28: gitaly.ListBranchNamesContainingCommitRequest.repository:type_name -> gitaly.Repository + 48, // 29: gitaly.ListTagNamesContainingCommitRequest.repository:type_name -> gitaly.Repository + 48, // 30: gitaly.GetTagSignaturesRequest.repository:type_name -> gitaly.Repository + 47, // 31: gitaly.GetTagSignaturesResponse.signatures:type_name -> gitaly.GetTagSignaturesResponse.TagSignature + 48, // 32: gitaly.GetTagMessagesRequest.repository:type_name -> gitaly.Repository + 48, // 33: gitaly.ListNewCommitsRequest.repository:type_name -> gitaly.Repository + 51, // 34: gitaly.ListNewCommitsResponse.commits:type_name -> gitaly.GitCommit + 48, // 35: gitaly.FindAllRemoteBranchesRequest.repository:type_name -> gitaly.Repository + 54, // 36: gitaly.FindAllRemoteBranchesResponse.branches:type_name -> gitaly.Branch + 48, // 37: gitaly.PackRefsRequest.repository:type_name -> gitaly.Repository + 51, // 38: gitaly.FindAllBranchesResponse.Branch.target:type_name -> gitaly.GitCommit + 4, // 39: gitaly.RefService.FindDefaultBranchName:input_type -> gitaly.FindDefaultBranchNameRequest + 6, // 40: gitaly.RefService.FindAllBranchNames:input_type -> gitaly.FindAllBranchNamesRequest + 8, // 41: gitaly.RefService.FindAllTagNames:input_type -> gitaly.FindAllTagNamesRequest + 10, // 42: gitaly.RefService.FindRefName:input_type -> gitaly.FindRefNameRequest + 12, // 43: gitaly.RefService.FindLocalBranches:input_type -> gitaly.FindLocalBranchesRequest + 16, // 44: gitaly.RefService.FindAllBranches:input_type -> gitaly.FindAllBranchesRequest + 20, // 45: gitaly.RefService.FindAllTags:input_type -> gitaly.FindAllTagsRequest + 18, // 46: gitaly.RefService.FindTag:input_type -> gitaly.FindTagRequest + 42, // 47: gitaly.RefService.FindAllRemoteBranches:input_type -> gitaly.FindAllRemoteBranchesRequest + 22, // 48: gitaly.RefService.RefExists:input_type -> gitaly.RefExistsRequest + 28, // 49: gitaly.RefService.FindBranch:input_type -> gitaly.FindBranchRequest + 30, // 50: gitaly.RefService.DeleteRefs:input_type -> gitaly.DeleteRefsRequest + 32, // 51: gitaly.RefService.ListBranchNamesContainingCommit:input_type -> gitaly.ListBranchNamesContainingCommitRequest + 34, // 52: gitaly.RefService.ListTagNamesContainingCommit:input_type -> gitaly.ListTagNamesContainingCommitRequest + 36, // 53: gitaly.RefService.GetTagSignatures:input_type -> gitaly.GetTagSignaturesRequest + 38, // 54: gitaly.RefService.GetTagMessages:input_type -> gitaly.GetTagMessagesRequest + 40, // 55: gitaly.RefService.ListNewCommits:input_type -> gitaly.ListNewCommitsRequest + 2, // 56: gitaly.RefService.ListNewBlobs:input_type -> gitaly.ListNewBlobsRequest + 44, // 57: gitaly.RefService.PackRefs:input_type -> gitaly.PackRefsRequest + 5, // 58: gitaly.RefService.FindDefaultBranchName:output_type -> gitaly.FindDefaultBranchNameResponse + 7, // 59: gitaly.RefService.FindAllBranchNames:output_type -> gitaly.FindAllBranchNamesResponse + 9, // 60: gitaly.RefService.FindAllTagNames:output_type -> gitaly.FindAllTagNamesResponse + 11, // 61: gitaly.RefService.FindRefName:output_type -> gitaly.FindRefNameResponse + 13, // 62: gitaly.RefService.FindLocalBranches:output_type -> gitaly.FindLocalBranchesResponse + 17, // 63: gitaly.RefService.FindAllBranches:output_type -> gitaly.FindAllBranchesResponse + 21, // 64: gitaly.RefService.FindAllTags:output_type -> gitaly.FindAllTagsResponse + 19, // 65: gitaly.RefService.FindTag:output_type -> gitaly.FindTagResponse + 43, // 66: gitaly.RefService.FindAllRemoteBranches:output_type -> gitaly.FindAllRemoteBranchesResponse + 23, // 67: gitaly.RefService.RefExists:output_type -> gitaly.RefExistsResponse + 29, // 68: gitaly.RefService.FindBranch:output_type -> gitaly.FindBranchResponse + 31, // 69: gitaly.RefService.DeleteRefs:output_type -> gitaly.DeleteRefsResponse + 33, // 70: gitaly.RefService.ListBranchNamesContainingCommit:output_type -> gitaly.ListBranchNamesContainingCommitResponse + 35, // 71: gitaly.RefService.ListTagNamesContainingCommit:output_type -> gitaly.ListTagNamesContainingCommitResponse + 37, // 72: gitaly.RefService.GetTagSignatures:output_type -> gitaly.GetTagSignaturesResponse + 39, // 73: gitaly.RefService.GetTagMessages:output_type -> gitaly.GetTagMessagesResponse + 41, // 74: gitaly.RefService.ListNewCommits:output_type -> gitaly.ListNewCommitsResponse + 3, // 75: gitaly.RefService.ListNewBlobs:output_type -> gitaly.ListNewBlobsResponse + 45, // 76: gitaly.RefService.PackRefs:output_type -> gitaly.PackRefsResponse + 58, // [58:77] is the sub-list for method output_type + 39, // [39:58] is the sub-list for method input_type + 39, // [39:39] is the sub-list for extension type_name + 39, // [39:39] is the sub-list for extension extendee + 0, // [0:39] is the sub-list for field type_name } func init() { file_ref_proto_init() } @@ -3392,7 +3606,7 @@ func file_ref_proto_init() { } } file_ref_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTagMessagesRequest); i { + switch v := v.(*GetTagSignaturesRequest); i { case 0: return &v.state case 1: @@ -3404,7 +3618,7 @@ func file_ref_proto_init() { } } file_ref_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTagMessagesResponse); i { + switch v := v.(*GetTagSignaturesResponse); i { case 0: return &v.state case 1: @@ -3416,7 +3630,7 @@ func file_ref_proto_init() { } } file_ref_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListNewCommitsRequest); i { + switch v := v.(*GetTagMessagesRequest); i { case 0: return &v.state case 1: @@ -3428,7 +3642,7 @@ func file_ref_proto_init() { } } file_ref_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListNewCommitsResponse); i { + switch v := v.(*GetTagMessagesResponse); i { case 0: return &v.state case 1: @@ -3440,7 +3654,7 @@ func file_ref_proto_init() { } } file_ref_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FindAllRemoteBranchesRequest); i { + switch v := v.(*ListNewCommitsRequest); i { case 0: return &v.state case 1: @@ -3452,7 +3666,7 @@ func file_ref_proto_init() { } } file_ref_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FindAllRemoteBranchesResponse); i { + switch v := v.(*ListNewCommitsResponse); i { case 0: return &v.state case 1: @@ -3464,7 +3678,7 @@ func file_ref_proto_init() { } } file_ref_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PackRefsRequest); i { + switch v := v.(*FindAllRemoteBranchesRequest); i { case 0: return &v.state case 1: @@ -3476,7 +3690,7 @@ func file_ref_proto_init() { } } file_ref_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PackRefsResponse); i { + switch v := v.(*FindAllRemoteBranchesResponse); i { case 0: return &v.state case 1: @@ -3488,6 +3702,30 @@ func file_ref_proto_init() { } } file_ref_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PackRefsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ref_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PackRefsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_ref_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllBranchesResponse_Branch); i { case 0: return &v.state @@ -3499,6 +3737,18 @@ func file_ref_proto_init() { return nil } } + file_ref_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTagSignaturesResponse_TagSignature); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3506,7 +3756,7 @@ func file_ref_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_ref_proto_rawDesc, NumEnums: 2, - NumMessages: 43, + NumMessages: 46, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/go/gitalypb/ref_grpc.pb.go b/proto/go/gitalypb/ref_grpc.pb.go index 58db62602..d5634aef9 100644 --- a/proto/go/gitalypb/ref_grpc.pb.go +++ b/proto/go/gitalypb/ref_grpc.pb.go @@ -36,6 +36,11 @@ type RefServiceClient interface { DeleteRefs(ctx context.Context, in *DeleteRefsRequest, opts ...grpc.CallOption) (*DeleteRefsResponse, error) ListBranchNamesContainingCommit(ctx context.Context, in *ListBranchNamesContainingCommitRequest, opts ...grpc.CallOption) (RefService_ListBranchNamesContainingCommitClient, error) ListTagNamesContainingCommit(ctx context.Context, in *ListTagNamesContainingCommitRequest, opts ...grpc.CallOption) (RefService_ListTagNamesContainingCommitClient, error) + // GetTagSignatures returns signatures for annotated tags resolved from a set of revisions. Revisions + // which don't resolve to an annotated tag are silently discarded. Revisions which cannot be resolved + // result in an error. Tags which are annotated but not signed will return a TagSignature response + // which has no signature, but its unsigned contents will still be returned. + GetTagSignatures(ctx context.Context, in *GetTagSignaturesRequest, opts ...grpc.CallOption) (RefService_GetTagSignaturesClient, error) GetTagMessages(ctx context.Context, in *GetTagMessagesRequest, opts ...grpc.CallOption) (RefService_GetTagMessagesClient, error) // Returns commits that are only reachable from the ref passed ListNewCommits(ctx context.Context, in *ListNewCommitsRequest, opts ...grpc.CallOption) (RefService_ListNewCommitsClient, error) @@ -361,8 +366,40 @@ func (x *refServiceListTagNamesContainingCommitClient) Recv() (*ListTagNamesCont return m, nil } +func (c *refServiceClient) GetTagSignatures(ctx context.Context, in *GetTagSignaturesRequest, opts ...grpc.CallOption) (RefService_GetTagSignaturesClient, error) { + stream, err := c.cc.NewStream(ctx, &RefService_ServiceDesc.Streams[8], "/gitaly.RefService/GetTagSignatures", opts...) + if err != nil { + return nil, err + } + x := &refServiceGetTagSignaturesClient{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 RefService_GetTagSignaturesClient interface { + Recv() (*GetTagSignaturesResponse, error) + grpc.ClientStream +} + +type refServiceGetTagSignaturesClient struct { + grpc.ClientStream +} + +func (x *refServiceGetTagSignaturesClient) Recv() (*GetTagSignaturesResponse, error) { + m := new(GetTagSignaturesResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + func (c *refServiceClient) GetTagMessages(ctx context.Context, in *GetTagMessagesRequest, opts ...grpc.CallOption) (RefService_GetTagMessagesClient, error) { - stream, err := c.cc.NewStream(ctx, &RefService_ServiceDesc.Streams[8], "/gitaly.RefService/GetTagMessages", opts...) + stream, err := c.cc.NewStream(ctx, &RefService_ServiceDesc.Streams[9], "/gitaly.RefService/GetTagMessages", opts...) if err != nil { return nil, err } @@ -394,7 +431,7 @@ func (x *refServiceGetTagMessagesClient) Recv() (*GetTagMessagesResponse, error) } func (c *refServiceClient) ListNewCommits(ctx context.Context, in *ListNewCommitsRequest, opts ...grpc.CallOption) (RefService_ListNewCommitsClient, error) { - stream, err := c.cc.NewStream(ctx, &RefService_ServiceDesc.Streams[9], "/gitaly.RefService/ListNewCommits", opts...) + stream, err := c.cc.NewStream(ctx, &RefService_ServiceDesc.Streams[10], "/gitaly.RefService/ListNewCommits", opts...) if err != nil { return nil, err } @@ -426,7 +463,7 @@ func (x *refServiceListNewCommitsClient) Recv() (*ListNewCommitsResponse, error) } func (c *refServiceClient) ListNewBlobs(ctx context.Context, in *ListNewBlobsRequest, opts ...grpc.CallOption) (RefService_ListNewBlobsClient, error) { - stream, err := c.cc.NewStream(ctx, &RefService_ServiceDesc.Streams[10], "/gitaly.RefService/ListNewBlobs", opts...) + stream, err := c.cc.NewStream(ctx, &RefService_ServiceDesc.Streams[11], "/gitaly.RefService/ListNewBlobs", opts...) if err != nil { return nil, err } @@ -488,6 +525,11 @@ type RefServiceServer interface { DeleteRefs(context.Context, *DeleteRefsRequest) (*DeleteRefsResponse, error) ListBranchNamesContainingCommit(*ListBranchNamesContainingCommitRequest, RefService_ListBranchNamesContainingCommitServer) error ListTagNamesContainingCommit(*ListTagNamesContainingCommitRequest, RefService_ListTagNamesContainingCommitServer) error + // GetTagSignatures returns signatures for annotated tags resolved from a set of revisions. Revisions + // which don't resolve to an annotated tag are silently discarded. Revisions which cannot be resolved + // result in an error. Tags which are annotated but not signed will return a TagSignature response + // which has no signature, but its unsigned contents will still be returned. + GetTagSignatures(*GetTagSignaturesRequest, RefService_GetTagSignaturesServer) error GetTagMessages(*GetTagMessagesRequest, RefService_GetTagMessagesServer) error // Returns commits that are only reachable from the ref passed ListNewCommits(*ListNewCommitsRequest, RefService_ListNewCommitsServer) error @@ -542,6 +584,9 @@ func (UnimplementedRefServiceServer) ListBranchNamesContainingCommit(*ListBranch func (UnimplementedRefServiceServer) ListTagNamesContainingCommit(*ListTagNamesContainingCommitRequest, RefService_ListTagNamesContainingCommitServer) error { return status.Errorf(codes.Unimplemented, "method ListTagNamesContainingCommit not implemented") } +func (UnimplementedRefServiceServer) GetTagSignatures(*GetTagSignaturesRequest, RefService_GetTagSignaturesServer) error { + return status.Errorf(codes.Unimplemented, "method GetTagSignatures not implemented") +} func (UnimplementedRefServiceServer) GetTagMessages(*GetTagMessagesRequest, RefService_GetTagMessagesServer) error { return status.Errorf(codes.Unimplemented, "method GetTagMessages not implemented") } @@ -843,6 +888,27 @@ func (x *refServiceListTagNamesContainingCommitServer) Send(m *ListTagNamesConta return x.ServerStream.SendMsg(m) } +func _RefService_GetTagSignatures_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(GetTagSignaturesRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(RefServiceServer).GetTagSignatures(m, &refServiceGetTagSignaturesServer{stream}) +} + +type RefService_GetTagSignaturesServer interface { + Send(*GetTagSignaturesResponse) error + grpc.ServerStream +} + +type refServiceGetTagSignaturesServer struct { + grpc.ServerStream +} + +func (x *refServiceGetTagSignaturesServer) Send(m *GetTagSignaturesResponse) error { + return x.ServerStream.SendMsg(m) +} + func _RefService_GetTagMessages_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(GetTagMessagesRequest) if err := stream.RecvMsg(m); err != nil { @@ -1002,6 +1068,11 @@ var RefService_ServiceDesc = grpc.ServiceDesc{ ServerStreams: true, }, { + StreamName: "GetTagSignatures", + Handler: _RefService_GetTagSignatures_Handler, + ServerStreams: true, + }, + { StreamName: "GetTagMessages", Handler: _RefService_GetTagMessages_Handler, ServerStreams: true, diff --git a/proto/ref.proto b/proto/ref.proto index 7e4200969..122088302 100644 --- a/proto/ref.proto +++ b/proto/ref.proto @@ -88,6 +88,16 @@ service RefService { }; } + // GetTagSignatures returns signatures for annotated tags resolved from a set of revisions. Revisions + // which don't resolve to an annotated tag are silently discarded. Revisions which cannot be resolved + // result in an error. Tags which are annotated but not signed will return a TagSignature response + // which has no signature, but its unsigned contents will still be returned. + rpc GetTagSignatures(GetTagSignaturesRequest) returns (stream GetTagSignaturesResponse) { + option (op_type) = { + op: ACCESSOR + }; + } + rpc GetTagMessages(GetTagMessagesRequest) returns (stream GetTagMessagesResponse) { option (op_type) = { op: ACCESSOR @@ -317,6 +327,37 @@ message ListTagNamesContainingCommitResponse { repeated bytes tag_names = 2; } +// GetTagSignaturesRequest is a request for the GetTagSignatures RPC. +message GetTagSignaturesRequest { + // Repository is the repository in which tag signatures should be looked up. + Repository repository = 1 [(target_repository)=true]; + // TagRevisions is the set of revisions which that should be looked up. Revisions + // supports the syntax as specified by gitrevisions(7). All revisions are expected + // to resolve to annotated tag objects. At least one revision must be provided. + repeated string tag_revisions = 2; +} + +// GetTagSignaturesResponse is a response for a GetTagSignatures request. Each response +// may contain multiple TagSignatures. In case TagSignatures don't fit into a single +// response, signatures will be batched in multiple responses. +message GetTagSignaturesResponse { + // TagSignature represents the signature of a signed tag. + message TagSignature { + // TagId is the resolved object ID of the tag. + string tag_id = 1; + // Signature contains the cryptographic signature of the tag. If the tag is not + // cryptographically signed, then the signature is unset. + bytes signature = 2; + // Content contains the contents which are signed by the signature. Contents + // include both the commit message, but also the commit metadata like author and + // subject. + bytes content = 3; + } + + // Signatures is the set of signatures found. + repeated TagSignature signatures = 1; +} + message GetTagMessagesRequest { reserved 2; reserved "tag_names"; diff --git a/ruby/proto/gitaly/ref_pb.rb b/ruby/proto/gitaly/ref_pb.rb index dcd0b55c6..086eaf9a4 100644 --- a/ruby/proto/gitaly/ref_pb.rb +++ b/ruby/proto/gitaly/ref_pb.rb @@ -154,6 +154,18 @@ Google::Protobuf::DescriptorPool.generated_pool.build do add_message "gitaly.ListTagNamesContainingCommitResponse" do repeated :tag_names, :bytes, 2 end + add_message "gitaly.GetTagSignaturesRequest" do + optional :repository, :message, 1, "gitaly.Repository" + repeated :tag_revisions, :string, 2 + end + add_message "gitaly.GetTagSignaturesResponse" do + repeated :signatures, :message, 1, "gitaly.GetTagSignaturesResponse.TagSignature" + end + add_message "gitaly.GetTagSignaturesResponse.TagSignature" do + optional :tag_id, :string, 1 + optional :signature, :bytes, 2 + optional :content, :bytes, 3 + end add_message "gitaly.GetTagMessagesRequest" do optional :repository, :message, 1, "gitaly.Repository" repeated :tag_ids, :string, 3 @@ -223,6 +235,9 @@ module Gitaly ListBranchNamesContainingCommitResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.ListBranchNamesContainingCommitResponse").msgclass ListTagNamesContainingCommitRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.ListTagNamesContainingCommitRequest").msgclass ListTagNamesContainingCommitResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.ListTagNamesContainingCommitResponse").msgclass + GetTagSignaturesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.GetTagSignaturesRequest").msgclass + GetTagSignaturesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.GetTagSignaturesResponse").msgclass + GetTagSignaturesResponse::TagSignature = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.GetTagSignaturesResponse.TagSignature").msgclass GetTagMessagesRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.GetTagMessagesRequest").msgclass GetTagMessagesResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.GetTagMessagesResponse").msgclass ListNewCommitsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("gitaly.ListNewCommitsRequest").msgclass diff --git a/ruby/proto/gitaly/ref_services_pb.rb b/ruby/proto/gitaly/ref_services_pb.rb index a3979c5e3..ec28e4e27 100644 --- a/ruby/proto/gitaly/ref_services_pb.rb +++ b/ruby/proto/gitaly/ref_services_pb.rb @@ -32,6 +32,11 @@ module Gitaly rpc :DeleteRefs, Gitaly::DeleteRefsRequest, Gitaly::DeleteRefsResponse rpc :ListBranchNamesContainingCommit, Gitaly::ListBranchNamesContainingCommitRequest, stream(Gitaly::ListBranchNamesContainingCommitResponse) rpc :ListTagNamesContainingCommit, Gitaly::ListTagNamesContainingCommitRequest, stream(Gitaly::ListTagNamesContainingCommitResponse) + # GetTagSignatures returns signatures for annotated tags resolved from a set of revisions. Revisions + # which don't resolve to an annotated tag are silently discarded. Revisions which cannot be resolved + # result in an error. Tags which are annotated but not signed will return a TagSignature response + # which has no signature, but its unsigned contents will still be returned. + rpc :GetTagSignatures, Gitaly::GetTagSignaturesRequest, stream(Gitaly::GetTagSignaturesResponse) rpc :GetTagMessages, Gitaly::GetTagMessagesRequest, stream(Gitaly::GetTagMessagesResponse) # Returns commits that are only reachable from the ref passed rpc :ListNewCommits, Gitaly::ListNewCommitsRequest, stream(Gitaly::ListNewCommitsResponse) |