summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <robert@gitlab.com>2017-07-07 17:00:03 +0000
committerRobert Speicher <robert@gitlab.com>2017-07-07 17:00:03 +0000
commite7ec27f5adb3bbc29520ef16272f7332b7eceb34 (patch)
treeb293793d65e1f1abbf4b5bc46d8d5c9484af1db4
parent0a0cfdf965a253d4010afeb4ee9d83528ea16359 (diff)
parent933b56691d4b95b642c19d91cbeccb098d3a1696 (diff)
downloadgitlab-shell-e7ec27f5adb3bbc29520ef16272f7332b7eceb34.tar.gz
Merge branch 'gitaly-124-gitaly-ssh' into 'master'
Gitaly SSH Client See merge request !139
-rw-r--r--.gitlab-ci.yml12
-rw-r--r--README.md2
-rw-r--r--go/cmd/gitaly-receive-pack/main.go4
-rw-r--r--go/cmd/gitaly-upload-pack/main.go4
-rw-r--r--go/internal/handler/handler.go13
-rw-r--r--go/internal/handler/receive_pack.go20
-rw-r--r--go/internal/handler/upload_pack.go20
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION2
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go285
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/commit.pb.go524
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/deprecated-services.pb.go1146
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/diff.pb.go347
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/helper/stream.go44
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/notifications.pb.go59
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/ref.pb.go251
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/repository-service.pb.go144
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/shared.pb.go144
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/smarthttp.pb.go217
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/ssh.pb.go158
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly/LICENSE21
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly/NOTICE2233
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly/auth/rpccredentials.go25
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly/client/dial.go61
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly/client/receive_pack.go40
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly/client/std_stream.go66
-rw-r--r--go/vendor/gitlab.com/gitlab-org/gitaly/client/upload_pack.go40
-rw-r--r--go/vendor/vendor.json26
-rw-r--r--lib/gitlab_access_status.rb7
-rw-r--r--lib/gitlab_shell.rb11
-rw-r--r--spec/gitlab_access_spec.rb4
-rw-r--r--spec/gitlab_shell_spec.rb72
31 files changed, 5436 insertions, 566 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 20bd7ef..ad511bd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -59,18 +59,6 @@ go:1.8:
<<: *go_definition
image: golang:1.8
-go:1.7:
- <<: *go_definition
- image: golang:1.7
-
-go:1.6:
- <<: *go_definition
- image: golang:1.6
-
-go:1.5:
- <<: *go_definition
- image: golang:1.5
-
codeclimate:
before_script: []
image: docker:latest
diff --git a/README.md b/README.md
index feaddcb..56cb67e 100644
--- a/README.md
+++ b/README.md
@@ -66,7 +66,7 @@ make
sudo make install
```
-To install gitlab-shell you also need a Go compiler version 1.5 or newer. https://golang.org/dl/
+To install gitlab-shell you also need a Go compiler version 1.8 or newer. https://golang.org/dl/
## Setup
diff --git a/go/cmd/gitaly-receive-pack/main.go b/go/cmd/gitaly-receive-pack/main.go
index 9e04347..511d584 100644
--- a/go/cmd/gitaly-receive-pack/main.go
+++ b/go/cmd/gitaly-receive-pack/main.go
@@ -29,7 +29,9 @@ func main() {
logger.Fatal("unmarshaling request json failed", err)
}
- if err := handler.ReceivePack(os.Args[1], &request); err != nil {
+ code, err := handler.ReceivePack(os.Args[1], &request)
+ if err != nil {
logger.Fatal("receive-pack failed", err)
}
+ os.Exit(int(code))
}
diff --git a/go/cmd/gitaly-upload-pack/main.go b/go/cmd/gitaly-upload-pack/main.go
index 028c623..282c90f 100644
--- a/go/cmd/gitaly-upload-pack/main.go
+++ b/go/cmd/gitaly-upload-pack/main.go
@@ -29,7 +29,9 @@ func main() {
logger.Fatal("unmarshaling request json failed", err)
}
- if err := handler.UploadPack(os.Args[1], &request); err != nil {
+ code, err := handler.UploadPack(os.Args[1], &request)
+ if err != nil {
logger.Fatal("upload-pack failed", err)
}
+ os.Exit(int(code))
}
diff --git a/go/internal/handler/handler.go b/go/internal/handler/handler.go
index 927998d..990acd3 100644
--- a/go/internal/handler/handler.go
+++ b/go/internal/handler/handler.go
@@ -5,6 +5,10 @@ import (
"os/exec"
"syscall"
+ "google.golang.org/grpc"
+
+ "gitlab.com/gitlab-org/gitaly/auth"
+ "gitlab.com/gitlab-org/gitaly/client"
"gitlab.com/gitlab-org/gitlab-shell/go/internal/config"
"gitlab.com/gitlab-org/gitlab-shell/go/internal/logger"
)
@@ -36,3 +40,12 @@ func execCommand(command string, args ...string) error {
args = append([]string{binPath}, args...)
return syscall.Exec(binPath, args, os.Environ())
}
+
+func dialOpts() []grpc.DialOption {
+ connOpts := client.DefaultDialOpts
+ if token := os.Getenv("GITALY_TOKEN"); token != "" {
+ connOpts = append(client.DefaultDialOpts, grpc.WithPerRPCCredentials(gitalyauth.RPCCredentials(token)))
+ }
+
+ return connOpts
+}
diff --git a/go/internal/handler/receive_pack.go b/go/internal/handler/receive_pack.go
index 5e38aca..e69486f 100644
--- a/go/internal/handler/receive_pack.go
+++ b/go/internal/handler/receive_pack.go
@@ -1,16 +1,26 @@
package handler
import (
+ "context"
"fmt"
+ "os"
pb "gitlab.com/gitlab-org/gitaly-proto/go"
+ "gitlab.com/gitlab-org/gitaly/client"
)
-func ReceivePack(gitalyAddress string, request *pb.SSHReceivePackRequest) error {
- repoPath := request.Repository.Path
- if repoPath == "" {
- return fmt.Errorf("empty path in repository message")
+func ReceivePack(gitalyAddress string, request *pb.SSHReceivePackRequest) (int32, error) {
+ if gitalyAddress == "" {
+ return 0, fmt.Errorf("no gitaly_address given")
}
- return execCommand("git-receive-pack", repoPath)
+ conn, err := client.Dial(gitalyAddress, dialOpts())
+ if err != nil {
+ return 0, err
+ }
+ defer conn.Close()
+
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+ return client.ReceivePack(ctx, conn, os.Stdin, os.Stdout, os.Stderr, request)
}
diff --git a/go/internal/handler/upload_pack.go b/go/internal/handler/upload_pack.go
index 0312972..51a2f3b 100644
--- a/go/internal/handler/upload_pack.go
+++ b/go/internal/handler/upload_pack.go
@@ -1,16 +1,26 @@
package handler
import (
+ "context"
"fmt"
+ "os"
pb "gitlab.com/gitlab-org/gitaly-proto/go"
+ "gitlab.com/gitlab-org/gitaly/client"
)
-func UploadPack(gitalyAddress string, request *pb.SSHUploadPackRequest) error {
- repoPath := request.Repository.Path
- if repoPath == "" {
- return fmt.Errorf("empty path in repository message")
+func UploadPack(gitalyAddress string, request *pb.SSHUploadPackRequest) (int32, error) {
+ if gitalyAddress == "" {
+ return 0, fmt.Errorf("no gitaly_address given")
}
- return execCommand("git-upload-pack", repoPath)
+ conn, err := client.Dial(gitalyAddress, dialOpts())
+ if err != nil {
+ return 0, err
+ }
+ defer conn.Close()
+
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+ return client.UploadPack(ctx, conn, os.Stdin, os.Stdout, os.Stderr, request)
}
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION
index 8f0916f..a803cc2 100644
--- a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION
@@ -1 +1 @@
-0.5.0
+0.14.0
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go
new file mode 100644
index 0000000..a2ce5b1
--- /dev/null
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go
@@ -0,0 +1,285 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: blob.proto
+
+/*
+Package gitaly is a generated protocol buffer package.
+
+It is generated from these files:
+ blob.proto
+ commit.proto
+ deprecated-services.proto
+ diff.proto
+ notifications.proto
+ ref.proto
+ repository-service.proto
+ shared.proto
+ smarthttp.proto
+ ssh.proto
+
+It has these top-level messages:
+ GetBlobRequest
+ GetBlobResponse
+ CommitIsAncestorRequest
+ CommitIsAncestorResponse
+ TreeEntryRequest
+ TreeEntryResponse
+ CommitsBetweenRequest
+ CommitsBetweenResponse
+ CountCommitsRequest
+ CountCommitsResponse
+ CommitDiffRequest
+ CommitDiffResponse
+ CommitDeltaRequest
+ CommitDelta
+ CommitDeltaResponse
+ PostReceiveRequest
+ PostReceiveResponse
+ FindDefaultBranchNameRequest
+ FindDefaultBranchNameResponse
+ FindAllBranchNamesRequest
+ FindAllBranchNamesResponse
+ FindAllTagNamesRequest
+ FindAllTagNamesResponse
+ FindRefNameRequest
+ FindRefNameResponse
+ FindLocalBranchesRequest
+ FindLocalBranchesResponse
+ FindLocalBranchResponse
+ FindLocalBranchCommitAuthor
+ RepositoryExistsRequest
+ RepositoryExistsResponse
+ Repository
+ GitCommit
+ CommitAuthor
+ ExitStatus
+ InfoRefsRequest
+ InfoRefsResponse
+ PostUploadPackRequest
+ PostUploadPackResponse
+ PostReceivePackRequest
+ PostReceivePackResponse
+ SSHUploadPackRequest
+ SSHUploadPackResponse
+ SSHReceivePackRequest
+ SSHReceivePackResponse
+*/
+package gitaly
+
+import proto "github.com/golang/protobuf/proto"
+import fmt "fmt"
+import math "math"
+
+import (
+ context "golang.org/x/net/context"
+ grpc "google.golang.org/grpc"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the proto package it is being compiled against.
+// A compilation error at this line likely means your copy of the
+// proto package needs to be updated.
+const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+
+type GetBlobRequest struct {
+ Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
+ // Object ID (SHA1) of the blob we want to get
+ Oid string `protobuf:"bytes,2,opt,name=oid" json:"oid,omitempty"`
+ // Maximum number of bytes we want to receive. Use '-1' to get the full blob no matter how big.
+ Limit int64 `protobuf:"varint,3,opt,name=limit" json:"limit,omitempty"`
+}
+
+func (m *GetBlobRequest) Reset() { *m = GetBlobRequest{} }
+func (m *GetBlobRequest) String() string { return proto.CompactTextString(m) }
+func (*GetBlobRequest) ProtoMessage() {}
+func (*GetBlobRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
+
+func (m *GetBlobRequest) GetRepository() *Repository {
+ if m != nil {
+ return m.Repository
+ }
+ return nil
+}
+
+func (m *GetBlobRequest) GetOid() string {
+ if m != nil {
+ return m.Oid
+ }
+ return ""
+}
+
+func (m *GetBlobRequest) GetLimit() int64 {
+ if m != nil {
+ return m.Limit
+ }
+ return 0
+}
+
+type GetBlobResponse struct {
+ // Blob size; present only in first response message
+ Size int64 `protobuf:"varint,1,opt,name=size" json:"size,omitempty"`
+ // Chunk of blob data
+ Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
+ // Object ID of the actual blob returned. Empty if no blob was found.
+ Oid string `protobuf:"bytes,3,opt,name=oid" json:"oid,omitempty"`
+}
+
+func (m *GetBlobResponse) Reset() { *m = GetBlobResponse{} }
+func (m *GetBlobResponse) String() string { return proto.CompactTextString(m) }
+func (*GetBlobResponse) ProtoMessage() {}
+func (*GetBlobResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
+
+func (m *GetBlobResponse) GetSize() int64 {
+ if m != nil {
+ return m.Size
+ }
+ return 0
+}
+
+func (m *GetBlobResponse) GetData() []byte {
+ if m != nil {
+ return m.Data
+ }
+ return nil
+}
+
+func (m *GetBlobResponse) GetOid() string {
+ if m != nil {
+ return m.Oid
+ }
+ return ""
+}
+
+func init() {
+ proto.RegisterType((*GetBlobRequest)(nil), "gitaly.GetBlobRequest")
+ proto.RegisterType((*GetBlobResponse)(nil), "gitaly.GetBlobResponse")
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// Client API for BlobService service
+
+type BlobServiceClient interface {
+ // GetBlob returns the contents of a blob object referenced by its object
+ // ID. We use a stream to return a chunked arbitrarily large binary
+ // response
+ GetBlob(ctx context.Context, in *GetBlobRequest, opts ...grpc.CallOption) (BlobService_GetBlobClient, error)
+}
+
+type blobServiceClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewBlobServiceClient(cc *grpc.ClientConn) BlobServiceClient {
+ return &blobServiceClient{cc}
+}
+
+func (c *blobServiceClient) GetBlob(ctx context.Context, in *GetBlobRequest, opts ...grpc.CallOption) (BlobService_GetBlobClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_BlobService_serviceDesc.Streams[0], c.cc, "/gitaly.BlobService/GetBlob", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &blobServiceGetBlobClient{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 BlobService_GetBlobClient interface {
+ Recv() (*GetBlobResponse, error)
+ grpc.ClientStream
+}
+
+type blobServiceGetBlobClient struct {
+ grpc.ClientStream
+}
+
+func (x *blobServiceGetBlobClient) Recv() (*GetBlobResponse, error) {
+ m := new(GetBlobResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// Server API for BlobService service
+
+type BlobServiceServer interface {
+ // GetBlob returns the contents of a blob object referenced by its object
+ // ID. We use a stream to return a chunked arbitrarily large binary
+ // response
+ GetBlob(*GetBlobRequest, BlobService_GetBlobServer) error
+}
+
+func RegisterBlobServiceServer(s *grpc.Server, srv BlobServiceServer) {
+ s.RegisterService(&_BlobService_serviceDesc, srv)
+}
+
+func _BlobService_GetBlob_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(GetBlobRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(BlobServiceServer).GetBlob(m, &blobServiceGetBlobServer{stream})
+}
+
+type BlobService_GetBlobServer interface {
+ Send(*GetBlobResponse) error
+ grpc.ServerStream
+}
+
+type blobServiceGetBlobServer struct {
+ grpc.ServerStream
+}
+
+func (x *blobServiceGetBlobServer) Send(m *GetBlobResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+var _BlobService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "gitaly.BlobService",
+ HandlerType: (*BlobServiceServer)(nil),
+ Methods: []grpc.MethodDesc{},
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "GetBlob",
+ Handler: _BlobService_GetBlob_Handler,
+ ServerStreams: true,
+ },
+ },
+ Metadata: "blob.proto",
+}
+
+func init() { proto.RegisterFile("blob.proto", fileDescriptor0) }
+
+var fileDescriptor0 = []byte{
+ // 217 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x90, 0x31, 0x4b, 0xc7, 0x30,
+ 0x10, 0xc5, 0x8d, 0xd1, 0xbf, 0x78, 0x2d, 0x2a, 0x87, 0x68, 0xe9, 0x54, 0x3a, 0x75, 0x2a, 0x52,
+ 0x77, 0x07, 0x17, 0x07, 0x71, 0x89, 0x9f, 0x20, 0xb1, 0x87, 0x06, 0xa2, 0x57, 0x93, 0x28, 0xd4,
+ 0x4f, 0x2f, 0x4d, 0x6c, 0x51, 0xdc, 0x5e, 0x5e, 0x92, 0xf7, 0x7b, 0x77, 0x00, 0xc6, 0xb1, 0xe9,
+ 0x27, 0xcf, 0x91, 0x71, 0xf7, 0x6c, 0xa3, 0x76, 0x73, 0x5d, 0x86, 0x17, 0xed, 0x69, 0xcc, 0x6e,
+ 0xeb, 0xe0, 0xe4, 0x8e, 0xe2, 0xad, 0x63, 0xa3, 0xe8, 0xfd, 0x83, 0x42, 0xc4, 0x01, 0xc0, 0xd3,
+ 0xc4, 0xc1, 0x46, 0xf6, 0x73, 0x25, 0x1a, 0xd1, 0x15, 0x03, 0xf6, 0xf9, 0x73, 0xaf, 0xb6, 0x1b,
+ 0xf5, 0xeb, 0x15, 0x9e, 0x81, 0x64, 0x3b, 0x56, 0xfb, 0x8d, 0xe8, 0x8e, 0xd5, 0x22, 0xf1, 0x1c,
+ 0x0e, 0x9d, 0x7d, 0xb5, 0xb1, 0x92, 0x8d, 0xe8, 0xa4, 0xca, 0x87, 0xf6, 0x1e, 0x4e, 0x37, 0x5a,
+ 0x98, 0xf8, 0x2d, 0x10, 0x22, 0x1c, 0x04, 0xfb, 0x45, 0x09, 0x24, 0x55, 0xd2, 0x8b, 0x37, 0xea,
+ 0xa8, 0x53, 0x5e, 0xa9, 0x92, 0x5e, 0x11, 0x72, 0x43, 0x0c, 0x0f, 0x50, 0x2c, 0x49, 0x8f, 0xe4,
+ 0x3f, 0xed, 0x13, 0xe1, 0x0d, 0x1c, 0xfd, 0x64, 0xe3, 0xc5, 0x5a, 0xf7, 0xef, 0x68, 0xf5, 0xe5,
+ 0x3f, 0x3f, 0x97, 0x68, 0xf7, 0xae, 0x84, 0xd9, 0xa5, 0x85, 0x5c, 0x7f, 0x07, 0x00, 0x00, 0xff,
+ 0xff, 0xab, 0x77, 0x1a, 0x6d, 0x34, 0x01, 0x00, 0x00,
+}
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/commit.pb.go b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/commit.pb.go
index 9d984be..bbce88f 100644
--- a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/commit.pb.go
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/commit.pb.go
@@ -1,51 +1,6 @@
-// Code generated by protoc-gen-go.
+// Code generated by protoc-gen-go. DO NOT EDIT.
// source: commit.proto
-// DO NOT EDIT!
-
-/*
-Package gitaly is a generated protocol buffer package.
-
-It is generated from these files:
- commit.proto
- diff.proto
- notifications.proto
- ref.proto
- shared.proto
- smarthttp.proto
- ssh.proto
-
-It has these top-level messages:
- CommitIsAncestorRequest
- CommitIsAncestorResponse
- CommitDiffRequest
- CommitDiffResponse
- PostReceiveRequest
- PostReceiveResponse
- FindDefaultBranchNameRequest
- FindDefaultBranchNameResponse
- FindAllBranchNamesRequest
- FindAllBranchNamesResponse
- FindAllTagNamesRequest
- FindAllTagNamesResponse
- FindRefNameRequest
- FindRefNameResponse
- FindLocalBranchesRequest
- FindLocalBranchesResponse
- FindLocalBranchResponse
- FindLocalBranchCommitAuthor
- Repository
- ExitStatus
- InfoRefsRequest
- InfoRefsResponse
- PostUploadPackRequest
- PostUploadPackResponse
- PostReceivePackRequest
- PostReceivePackResponse
- SSHUploadPackRequest
- SSHUploadPackResponse
- SSHReceivePackRequest
- SSHReceivePackResponse
-*/
+
package gitaly
import proto "github.com/golang/protobuf/proto"
@@ -62,11 +17,34 @@ var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the proto package it is being compiled against.
-// A compilation error at this line likely means your copy of the
-// proto package needs to be updated.
-const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
+type TreeEntryResponse_ObjectType int32
+
+const (
+ TreeEntryResponse_COMMIT TreeEntryResponse_ObjectType = 0
+ TreeEntryResponse_BLOB TreeEntryResponse_ObjectType = 1
+ TreeEntryResponse_TREE TreeEntryResponse_ObjectType = 2
+ TreeEntryResponse_TAG TreeEntryResponse_ObjectType = 3
+)
+
+var TreeEntryResponse_ObjectType_name = map[int32]string{
+ 0: "COMMIT",
+ 1: "BLOB",
+ 2: "TREE",
+ 3: "TAG",
+}
+var TreeEntryResponse_ObjectType_value = map[string]int32{
+ "COMMIT": 0,
+ "BLOB": 1,
+ "TREE": 2,
+ "TAG": 3,
+}
+
+func (x TreeEntryResponse_ObjectType) String() string {
+ return proto.EnumName(TreeEntryResponse_ObjectType_name, int32(x))
+}
+func (TreeEntryResponse_ObjectType) EnumDescriptor() ([]byte, []int) {
+ return fileDescriptor1, []int{3, 0}
+}
type CommitIsAncestorRequest struct {
Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
@@ -77,7 +55,7 @@ type CommitIsAncestorRequest struct {
func (m *CommitIsAncestorRequest) Reset() { *m = CommitIsAncestorRequest{} }
func (m *CommitIsAncestorRequest) String() string { return proto.CompactTextString(m) }
func (*CommitIsAncestorRequest) ProtoMessage() {}
-func (*CommitIsAncestorRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
+func (*CommitIsAncestorRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }
func (m *CommitIsAncestorRequest) GetRepository() *Repository {
if m != nil {
@@ -107,7 +85,7 @@ type CommitIsAncestorResponse struct {
func (m *CommitIsAncestorResponse) Reset() { *m = CommitIsAncestorResponse{} }
func (m *CommitIsAncestorResponse) String() string { return proto.CompactTextString(m) }
func (*CommitIsAncestorResponse) ProtoMessage() {}
-func (*CommitIsAncestorResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
+func (*CommitIsAncestorResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }
func (m *CommitIsAncestorResponse) GetValue() bool {
if m != nil {
@@ -116,9 +94,197 @@ func (m *CommitIsAncestorResponse) GetValue() bool {
return false
}
+type TreeEntryRequest struct {
+ Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
+ // commit ID or refname
+ Revision []byte `protobuf:"bytes,2,opt,name=revision,proto3" json:"revision,omitempty"`
+ // entry path relative to repository root
+ Path []byte `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"`
+ Limit int64 `protobuf:"varint,4,opt,name=limit" json:"limit,omitempty"`
+}
+
+func (m *TreeEntryRequest) Reset() { *m = TreeEntryRequest{} }
+func (m *TreeEntryRequest) String() string { return proto.CompactTextString(m) }
+func (*TreeEntryRequest) ProtoMessage() {}
+func (*TreeEntryRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} }
+
+func (m *TreeEntryRequest) GetRepository() *Repository {
+ if m != nil {
+ return m.Repository
+ }
+ return nil
+}
+
+func (m *TreeEntryRequest) GetRevision() []byte {
+ if m != nil {
+ return m.Revision
+ }
+ return nil
+}
+
+func (m *TreeEntryRequest) GetPath() []byte {
+ if m != nil {
+ return m.Path
+ }
+ return nil
+}
+
+func (m *TreeEntryRequest) GetLimit() int64 {
+ if m != nil {
+ return m.Limit
+ }
+ return 0
+}
+
+type TreeEntryResponse struct {
+ Type TreeEntryResponse_ObjectType `protobuf:"varint,1,opt,name=type,enum=gitaly.TreeEntryResponse_ObjectType" json:"type,omitempty"`
+ // SHA1 object ID
+ Oid string `protobuf:"bytes,2,opt,name=oid" json:"oid,omitempty"`
+ Size int64 `protobuf:"varint,3,opt,name=size" json:"size,omitempty"`
+ // file mode
+ Mode int32 `protobuf:"varint,4,opt,name=mode" json:"mode,omitempty"`
+ // raw object contents
+ Data []byte `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"`
+}
+
+func (m *TreeEntryResponse) Reset() { *m = TreeEntryResponse{} }
+func (m *TreeEntryResponse) String() string { return proto.CompactTextString(m) }
+func (*TreeEntryResponse) ProtoMessage() {}
+func (*TreeEntryResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} }
+
+func (m *TreeEntryResponse) GetType() TreeEntryResponse_ObjectType {
+ if m != nil {
+ return m.Type
+ }
+ return TreeEntryResponse_COMMIT
+}
+
+func (m *TreeEntryResponse) GetOid() string {
+ if m != nil {
+ return m.Oid
+ }
+ return ""
+}
+
+func (m *TreeEntryResponse) GetSize() int64 {
+ if m != nil {
+ return m.Size
+ }
+ return 0
+}
+
+func (m *TreeEntryResponse) GetMode() int32 {
+ if m != nil {
+ return m.Mode
+ }
+ return 0
+}
+
+func (m *TreeEntryResponse) GetData() []byte {
+ if m != nil {
+ return m.Data
+ }
+ return nil
+}
+
+type CommitsBetweenRequest struct {
+ Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
+ From []byte `protobuf:"bytes,2,opt,name=from,proto3" json:"from,omitempty"`
+ To []byte `protobuf:"bytes,3,opt,name=to,proto3" json:"to,omitempty"`
+}
+
+func (m *CommitsBetweenRequest) Reset() { *m = CommitsBetweenRequest{} }
+func (m *CommitsBetweenRequest) String() string { return proto.CompactTextString(m) }
+func (*CommitsBetweenRequest) ProtoMessage() {}
+func (*CommitsBetweenRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} }
+
+func (m *CommitsBetweenRequest) GetRepository() *Repository {
+ if m != nil {
+ return m.Repository
+ }
+ return nil
+}
+
+func (m *CommitsBetweenRequest) GetFrom() []byte {
+ if m != nil {
+ return m.From
+ }
+ return nil
+}
+
+func (m *CommitsBetweenRequest) GetTo() []byte {
+ if m != nil {
+ return m.To
+ }
+ return nil
+}
+
+type CommitsBetweenResponse struct {
+ Commits []*GitCommit `protobuf:"bytes,1,rep,name=commits" json:"commits,omitempty"`
+}
+
+func (m *CommitsBetweenResponse) Reset() { *m = CommitsBetweenResponse{} }
+func (m *CommitsBetweenResponse) String() string { return proto.CompactTextString(m) }
+func (*CommitsBetweenResponse) ProtoMessage() {}
+func (*CommitsBetweenResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} }
+
+func (m *CommitsBetweenResponse) GetCommits() []*GitCommit {
+ if m != nil {
+ return m.Commits
+ }
+ return nil
+}
+
+type CountCommitsRequest struct {
+ Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
+ Revision []byte `protobuf:"bytes,2,opt,name=revision,proto3" json:"revision,omitempty"`
+}
+
+func (m *CountCommitsRequest) Reset() { *m = CountCommitsRequest{} }
+func (m *CountCommitsRequest) String() string { return proto.CompactTextString(m) }
+func (*CountCommitsRequest) ProtoMessage() {}
+func (*CountCommitsRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} }
+
+func (m *CountCommitsRequest) GetRepository() *Repository {
+ if m != nil {
+ return m.Repository
+ }
+ return nil
+}
+
+func (m *CountCommitsRequest) GetRevision() []byte {
+ if m != nil {
+ return m.Revision
+ }
+ return nil
+}
+
+type CountCommitsResponse struct {
+ Count int32 `protobuf:"varint,1,opt,name=count" json:"count,omitempty"`
+}
+
+func (m *CountCommitsResponse) Reset() { *m = CountCommitsResponse{} }
+func (m *CountCommitsResponse) String() string { return proto.CompactTextString(m) }
+func (*CountCommitsResponse) ProtoMessage() {}
+func (*CountCommitsResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7} }
+
+func (m *CountCommitsResponse) GetCount() int32 {
+ if m != nil {
+ return m.Count
+ }
+ return 0
+}
+
func init() {
proto.RegisterType((*CommitIsAncestorRequest)(nil), "gitaly.CommitIsAncestorRequest")
proto.RegisterType((*CommitIsAncestorResponse)(nil), "gitaly.CommitIsAncestorResponse")
+ proto.RegisterType((*TreeEntryRequest)(nil), "gitaly.TreeEntryRequest")
+ proto.RegisterType((*TreeEntryResponse)(nil), "gitaly.TreeEntryResponse")
+ proto.RegisterType((*CommitsBetweenRequest)(nil), "gitaly.CommitsBetweenRequest")
+ proto.RegisterType((*CommitsBetweenResponse)(nil), "gitaly.CommitsBetweenResponse")
+ proto.RegisterType((*CountCommitsRequest)(nil), "gitaly.CountCommitsRequest")
+ proto.RegisterType((*CountCommitsResponse)(nil), "gitaly.CountCommitsResponse")
+ proto.RegisterEnum("gitaly.TreeEntryResponse_ObjectType", TreeEntryResponse_ObjectType_name, TreeEntryResponse_ObjectType_value)
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -129,86 +295,260 @@ var _ grpc.ClientConn
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4
-// Client API for Commit service
+// Client API for CommitService service
-type CommitClient interface {
+type CommitServiceClient interface {
CommitIsAncestor(ctx context.Context, in *CommitIsAncestorRequest, opts ...grpc.CallOption) (*CommitIsAncestorResponse, error)
+ TreeEntry(ctx context.Context, in *TreeEntryRequest, opts ...grpc.CallOption) (CommitService_TreeEntryClient, error)
+ CommitsBetween(ctx context.Context, in *CommitsBetweenRequest, opts ...grpc.CallOption) (CommitService_CommitsBetweenClient, error)
+ CountCommits(ctx context.Context, in *CountCommitsRequest, opts ...grpc.CallOption) (*CountCommitsResponse, error)
}
-type commitClient struct {
+type commitServiceClient struct {
cc *grpc.ClientConn
}
-func NewCommitClient(cc *grpc.ClientConn) CommitClient {
- return &commitClient{cc}
+func NewCommitServiceClient(cc *grpc.ClientConn) CommitServiceClient {
+ return &commitServiceClient{cc}
}
-func (c *commitClient) CommitIsAncestor(ctx context.Context, in *CommitIsAncestorRequest, opts ...grpc.CallOption) (*CommitIsAncestorResponse, error) {
+func (c *commitServiceClient) CommitIsAncestor(ctx context.Context, in *CommitIsAncestorRequest, opts ...grpc.CallOption) (*CommitIsAncestorResponse, error) {
out := new(CommitIsAncestorResponse)
- err := grpc.Invoke(ctx, "/gitaly.Commit/CommitIsAncestor", in, out, c.cc, opts...)
+ err := grpc.Invoke(ctx, "/gitaly.CommitService/CommitIsAncestor", in, out, c.cc, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *commitServiceClient) TreeEntry(ctx context.Context, in *TreeEntryRequest, opts ...grpc.CallOption) (CommitService_TreeEntryClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_CommitService_serviceDesc.Streams[0], c.cc, "/gitaly.CommitService/TreeEntry", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &commitServiceTreeEntryClient{stream}
+ if err := x.ClientStream.SendMsg(in); err != nil {
+ return nil, err
+ }
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ return x, nil
+}
+
+type CommitService_TreeEntryClient interface {
+ Recv() (*TreeEntryResponse, error)
+ grpc.ClientStream
+}
+
+type commitServiceTreeEntryClient struct {
+ grpc.ClientStream
+}
+
+func (x *commitServiceTreeEntryClient) Recv() (*TreeEntryResponse, error) {
+ m := new(TreeEntryResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *commitServiceClient) CommitsBetween(ctx context.Context, in *CommitsBetweenRequest, opts ...grpc.CallOption) (CommitService_CommitsBetweenClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_CommitService_serviceDesc.Streams[1], c.cc, "/gitaly.CommitService/CommitsBetween", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &commitServiceCommitsBetweenClient{stream}
+ if err := x.ClientStream.SendMsg(in); err != nil {
+ return nil, err
+ }
+ if err := x.ClientStream.CloseSend(); err != nil {
+ return nil, err
+ }
+ return x, nil
+}
+
+type CommitService_CommitsBetweenClient interface {
+ Recv() (*CommitsBetweenResponse, error)
+ grpc.ClientStream
+}
+
+type commitServiceCommitsBetweenClient struct {
+ grpc.ClientStream
+}
+
+func (x *commitServiceCommitsBetweenClient) Recv() (*CommitsBetweenResponse, error) {
+ m := new(CommitsBetweenResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *commitServiceClient) CountCommits(ctx context.Context, in *CountCommitsRequest, opts ...grpc.CallOption) (*CountCommitsResponse, error) {
+ out := new(CountCommitsResponse)
+ err := grpc.Invoke(ctx, "/gitaly.CommitService/CountCommits", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
-// Server API for Commit service
+// Server API for CommitService service
-type CommitServer interface {
+type CommitServiceServer interface {
CommitIsAncestor(context.Context, *CommitIsAncestorRequest) (*CommitIsAncestorResponse, error)
+ TreeEntry(*TreeEntryRequest, CommitService_TreeEntryServer) error
+ CommitsBetween(*CommitsBetweenRequest, CommitService_CommitsBetweenServer) error
+ CountCommits(context.Context, *CountCommitsRequest) (*CountCommitsResponse, error)
}
-func RegisterCommitServer(s *grpc.Server, srv CommitServer) {
- s.RegisterService(&_Commit_serviceDesc, srv)
+func RegisterCommitServiceServer(s *grpc.Server, srv CommitServiceServer) {
+ s.RegisterService(&_CommitService_serviceDesc, srv)
}
-func _Commit_CommitIsAncestor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _CommitService_CommitIsAncestor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CommitIsAncestorRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
- return srv.(CommitServer).CommitIsAncestor(ctx, in)
+ return srv.(CommitServiceServer).CommitIsAncestor(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
- FullMethod: "/gitaly.Commit/CommitIsAncestor",
+ FullMethod: "/gitaly.CommitService/CommitIsAncestor",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(CommitServer).CommitIsAncestor(ctx, req.(*CommitIsAncestorRequest))
+ return srv.(CommitServiceServer).CommitIsAncestor(ctx, req.(*CommitIsAncestorRequest))
}
return interceptor(ctx, in, info, handler)
}
-var _Commit_serviceDesc = grpc.ServiceDesc{
- ServiceName: "gitaly.Commit",
- HandlerType: (*CommitServer)(nil),
+func _CommitService_TreeEntry_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(TreeEntryRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(CommitServiceServer).TreeEntry(m, &commitServiceTreeEntryServer{stream})
+}
+
+type CommitService_TreeEntryServer interface {
+ Send(*TreeEntryResponse) error
+ grpc.ServerStream
+}
+
+type commitServiceTreeEntryServer struct {
+ grpc.ServerStream
+}
+
+func (x *commitServiceTreeEntryServer) Send(m *TreeEntryResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func _CommitService_CommitsBetween_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(CommitsBetweenRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(CommitServiceServer).CommitsBetween(m, &commitServiceCommitsBetweenServer{stream})
+}
+
+type CommitService_CommitsBetweenServer interface {
+ Send(*CommitsBetweenResponse) error
+ grpc.ServerStream
+}
+
+type commitServiceCommitsBetweenServer struct {
+ grpc.ServerStream
+}
+
+func (x *commitServiceCommitsBetweenServer) Send(m *CommitsBetweenResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func _CommitService_CountCommits_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CountCommitsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(CommitServiceServer).CountCommits(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/gitaly.CommitService/CountCommits",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(CommitServiceServer).CountCommits(ctx, req.(*CountCommitsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _CommitService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "gitaly.CommitService",
+ HandlerType: (*CommitServiceServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "CommitIsAncestor",
- Handler: _Commit_CommitIsAncestor_Handler,
+ Handler: _CommitService_CommitIsAncestor_Handler,
+ },
+ {
+ MethodName: "CountCommits",
+ Handler: _CommitService_CountCommits_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "TreeEntry",
+ Handler: _CommitService_TreeEntry_Handler,
+ ServerStreams: true,
+ },
+ {
+ StreamName: "CommitsBetween",
+ Handler: _CommitService_CommitsBetween_Handler,
+ ServerStreams: true,
},
},
- Streams: []grpc.StreamDesc{},
Metadata: "commit.proto",
}
-func init() { proto.RegisterFile("commit.proto", fileDescriptor0) }
-
-var fileDescriptor0 = []byte{
- // 213 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x50, 0xbf, 0x4e, 0x84, 0x30,
- 0x18, 0xb7, 0x1a, 0x11, 0x3f, 0x18, 0xcc, 0x17, 0x13, 0x91, 0x05, 0xc2, 0xc4, 0x44, 0x0c, 0x3e,
- 0x81, 0x71, 0x62, 0xed, 0xe2, 0x68, 0x2a, 0x6d, 0xa4, 0x09, 0x50, 0x6c, 0x8b, 0x09, 0x8f, 0x70,
- 0x6f, 0x7d, 0xb9, 0xf6, 0xb8, 0x5c, 0xee, 0xc2, 0xf8, 0xfb, 0xdb, 0x5f, 0x3f, 0x88, 0x5b, 0x35,
- 0x0c, 0xd2, 0x56, 0x93, 0x56, 0x56, 0x61, 0xf0, 0x2b, 0x2d, 0xeb, 0x97, 0x34, 0x36, 0x1d, 0xd3,
- 0x82, 0x7b, 0xb6, 0xd8, 0x11, 0x78, 0xf9, 0x74, 0xb6, 0xc6, 0x7c, 0x8c, 0xad, 0x30, 0x56, 0x69,
- 0x2a, 0xfe, 0x66, 0x61, 0x2c, 0xd6, 0x00, 0x5a, 0x4c, 0xca, 0x48, 0xab, 0xf4, 0x92, 0x90, 0x9c,
- 0x94, 0x51, 0x8d, 0x95, 0xaf, 0xa9, 0xe8, 0x49, 0xa1, 0x67, 0x2e, 0xcc, 0x20, 0x62, 0xc7, 0x9a,
- 0x6f, 0xc9, 0x93, 0xdb, 0x9c, 0x94, 0x8f, 0x14, 0x56, 0xaa, 0xe1, 0xf8, 0x0a, 0x61, 0xdb, 0xc9,
- 0x9e, 0x1f, 0xd4, 0x3b, 0xa7, 0x3e, 0x38, 0xdc, 0xf0, 0xe2, 0x0d, 0x92, 0xeb, 0x29, 0x66, 0x52,
- 0xa3, 0x11, 0xf8, 0x0c, 0xf7, 0xff, 0xac, 0x9f, 0x85, 0x9b, 0x11, 0x52, 0x0f, 0x6a, 0x06, 0x81,
- 0x4f, 0xe0, 0x17, 0x3c, 0x5d, 0x66, 0x31, 0x5b, 0xb7, 0x6e, 0x7c, 0x30, 0xcd, 0xb7, 0x0d, 0xfe,
- 0xd9, 0xe2, 0xe6, 0x27, 0x70, 0x77, 0x7a, 0xdf, 0x07, 0x00, 0x00, 0xff, 0xff, 0x5d, 0x48, 0xb7,
- 0xcb, 0x4d, 0x01, 0x00, 0x00,
+func init() { proto.RegisterFile("commit.proto", fileDescriptor1) }
+
+var fileDescriptor1 = []byte{
+ // 532 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x94, 0x5b, 0x6b, 0x13, 0x41,
+ 0x14, 0xc7, 0xbb, 0xd9, 0xdc, 0x7a, 0x12, 0xc3, 0xf6, 0x58, 0x75, 0x1b, 0x2f, 0x0d, 0x83, 0x0f,
+ 0x01, 0x25, 0x94, 0x88, 0xe0, 0x6b, 0x13, 0x43, 0x09, 0x5a, 0x02, 0xd3, 0x80, 0x8f, 0xb2, 0xdd,
+ 0x1d, 0xcd, 0x48, 0xb2, 0xb3, 0xce, 0x4c, 0x22, 0xf1, 0x1b, 0x08, 0x7e, 0x38, 0xf1, 0x13, 0xc9,
+ 0xce, 0xec, 0xe6, 0xda, 0x3c, 0x15, 0xdf, 0xce, 0x6d, 0xce, 0xf9, 0x71, 0xce, 0x7f, 0x17, 0xea,
+ 0xa1, 0x98, 0xcd, 0xb8, 0xee, 0x24, 0x52, 0x68, 0x81, 0xe5, 0xaf, 0x5c, 0x07, 0xd3, 0x65, 0xb3,
+ 0xae, 0x26, 0x81, 0x64, 0x91, 0x8d, 0x92, 0x5f, 0x0e, 0x3c, 0xe9, 0x9b, 0xb2, 0xa1, 0xba, 0x8c,
+ 0x43, 0xa6, 0xb4, 0x90, 0x94, 0x7d, 0x9f, 0x33, 0xa5, 0xb1, 0x0b, 0x20, 0x59, 0x22, 0x14, 0xd7,
+ 0x42, 0x2e, 0x7d, 0xa7, 0xe5, 0xb4, 0x6b, 0x5d, 0xec, 0xd8, 0x36, 0x1d, 0xba, 0xca, 0xd0, 0x8d,
+ 0x2a, 0x3c, 0x87, 0x5a, 0x90, 0xb5, 0xf9, 0xcc, 0x23, 0xbf, 0xd0, 0x72, 0xda, 0xc7, 0x14, 0xf2,
+ 0xd0, 0x30, 0xc2, 0x33, 0xa8, 0x86, 0x13, 0x3e, 0x8d, 0xd2, 0xac, 0x6b, 0xb2, 0x15, 0xe3, 0x0f,
+ 0x23, 0x72, 0x01, 0xfe, 0x3e, 0x8a, 0x4a, 0x44, 0xac, 0x18, 0x9e, 0x42, 0x69, 0x11, 0x4c, 0xe7,
+ 0xcc, 0x60, 0x54, 0xa9, 0x75, 0xc8, 0x6f, 0x07, 0xbc, 0xb1, 0x64, 0x6c, 0x10, 0x6b, 0xb9, 0xbc,
+ 0x0f, 0x76, 0x13, 0xaa, 0x92, 0x2d, 0xb8, 0xe2, 0x22, 0x36, 0xcc, 0x75, 0xba, 0xf2, 0x11, 0xa1,
+ 0x98, 0x04, 0x7a, 0x62, 0x68, 0xeb, 0xd4, 0xd8, 0x29, 0xce, 0x94, 0xcf, 0xb8, 0xf6, 0x8b, 0x2d,
+ 0xa7, 0xed, 0x52, 0xeb, 0x90, 0xbf, 0x0e, 0x9c, 0x6c, 0xe0, 0x64, 0xe8, 0xef, 0xa0, 0xa8, 0x97,
+ 0x89, 0x25, 0x6f, 0x74, 0x5f, 0xe6, 0x24, 0x7b, 0x85, 0x9d, 0xd1, 0xed, 0x37, 0x16, 0xea, 0xf1,
+ 0x32, 0x61, 0xd4, 0xbc, 0x40, 0x0f, 0x5c, 0xb1, 0x5a, 0x62, 0x6a, 0xa6, 0x2c, 0x8a, 0xff, 0x64,
+ 0x86, 0xc5, 0xa5, 0xc6, 0x4e, 0x63, 0x33, 0x11, 0x31, 0x83, 0x52, 0xa2, 0xc6, 0x4e, 0x63, 0x51,
+ 0xa0, 0x03, 0xbf, 0x64, 0x99, 0x53, 0x9b, 0xbc, 0x05, 0x58, 0x4f, 0x40, 0x80, 0x72, 0x7f, 0x74,
+ 0x7d, 0x3d, 0x1c, 0x7b, 0x47, 0x58, 0x85, 0x62, 0xef, 0xe3, 0xa8, 0xe7, 0x39, 0xa9, 0x35, 0xa6,
+ 0x83, 0x81, 0x57, 0xc0, 0x0a, 0xb8, 0xe3, 0xcb, 0x2b, 0xcf, 0x25, 0x02, 0x1e, 0xd9, 0xab, 0xa8,
+ 0x1e, 0xd3, 0x3f, 0x18, 0x8b, 0xef, 0xb3, 0x67, 0x84, 0xe2, 0x17, 0x29, 0x66, 0xd9, 0x8e, 0x8d,
+ 0x8d, 0x0d, 0x28, 0x68, 0x91, 0x6d, 0xb7, 0xa0, 0x05, 0x19, 0xc0, 0xe3, 0xdd, 0x81, 0xd9, 0x26,
+ 0x5f, 0x41, 0xc5, 0x4a, 0x5a, 0xf9, 0x4e, 0xcb, 0x6d, 0xd7, 0xba, 0x27, 0xf9, 0xb8, 0x2b, 0xae,
+ 0xed, 0x1b, 0x9a, 0x57, 0x10, 0x06, 0x0f, 0xfb, 0x62, 0x1e, 0x67, 0x71, 0xf5, 0x9f, 0xd4, 0x41,
+ 0x5e, 0xc3, 0xe9, 0xf6, 0x98, 0xb5, 0x60, 0xc3, 0x34, 0x6e, 0x46, 0x94, 0xa8, 0x75, 0xba, 0x7f,
+ 0x0a, 0xf0, 0xc0, 0x56, 0xde, 0x30, 0xb9, 0xe0, 0x21, 0xc3, 0x4f, 0xe0, 0xed, 0x8a, 0x1e, 0xcf,
+ 0x73, 0x9e, 0x03, 0x5f, 0x66, 0xb3, 0x75, 0xb8, 0xc0, 0x8e, 0x27, 0x47, 0xf8, 0x1e, 0x8e, 0x57,
+ 0x12, 0x43, 0xff, 0x0e, 0xd5, 0xd9, 0x56, 0x67, 0x07, 0xf5, 0x48, 0x8e, 0x2e, 0x1c, 0xbc, 0x81,
+ 0xc6, 0xf6, 0x31, 0xf0, 0xf9, 0xf6, 0xec, 0x1d, 0x55, 0x34, 0x5f, 0x1c, 0x4a, 0x6f, 0x34, 0xfd,
+ 0x00, 0xf5, 0xcd, 0x9d, 0xe1, 0xd3, 0xf5, 0x9b, 0xbd, 0x83, 0x35, 0x9f, 0xdd, 0x9d, 0xcc, 0xdb,
+ 0xdd, 0x96, 0xcd, 0x8f, 0xec, 0xcd, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x64, 0xef, 0x2c, 0x85,
+ 0xee, 0x04, 0x00, 0x00,
}
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/deprecated-services.pb.go b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/deprecated-services.pb.go
new file mode 100644
index 0000000..1996d5b
--- /dev/null
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/deprecated-services.pb.go
@@ -0,0 +1,1146 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: deprecated-services.proto
+
+package gitaly
+
+import proto "github.com/golang/protobuf/proto"
+import fmt "fmt"
+import math "math"
+
+import (
+ context "golang.org/x/net/context"
+ grpc "google.golang.org/grpc"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// Client API for Commit service
+
+type CommitClient interface {
+ CommitIsAncestor(ctx context.Context, in *CommitIsAncestorRequest, opts ...grpc.CallOption) (*CommitIsAncestorResponse, error)
+ TreeEntry(ctx context.Context, in *TreeEntryRequest, opts ...grpc.CallOption) (Commit_TreeEntryClient, error)
+}
+
+type commitClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewCommitClient(cc *grpc.ClientConn) CommitClient {
+ return &commitClient{cc}
+}
+
+func (c *commitClient) CommitIsAncestor(ctx context.Context, in *CommitIsAncestorRequest, opts ...grpc.CallOption) (*CommitIsAncestorResponse, error) {
+ out := new(CommitIsAncestorResponse)
+ err := grpc.Invoke(ctx, "/gitaly.Commit/CommitIsAncestor", in, out, c.cc, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *commitClient) TreeEntry(ctx context.Context, in *TreeEntryRequest, opts ...grpc.CallOption) (Commit_TreeEntryClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_Commit_serviceDesc.Streams[0], c.cc, "/gitaly.Commit/TreeEntry", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &commitTreeEntryClient{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 Commit_TreeEntryClient interface {
+ Recv() (*TreeEntryResponse, error)
+ grpc.ClientStream
+}
+
+type commitTreeEntryClient struct {
+ grpc.ClientStream
+}
+
+func (x *commitTreeEntryClient) Recv() (*TreeEntryResponse, error) {
+ m := new(TreeEntryResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// Server API for Commit service
+
+type CommitServer interface {
+ CommitIsAncestor(context.Context, *CommitIsAncestorRequest) (*CommitIsAncestorResponse, error)
+ TreeEntry(*TreeEntryRequest, Commit_TreeEntryServer) error
+}
+
+func RegisterCommitServer(s *grpc.Server, srv CommitServer) {
+ s.RegisterService(&_Commit_serviceDesc, srv)
+}
+
+func _Commit_CommitIsAncestor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(CommitIsAncestorRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(CommitServer).CommitIsAncestor(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/gitaly.Commit/CommitIsAncestor",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(CommitServer).CommitIsAncestor(ctx, req.(*CommitIsAncestorRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Commit_TreeEntry_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(TreeEntryRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(CommitServer).TreeEntry(m, &commitTreeEntryServer{stream})
+}
+
+type Commit_TreeEntryServer interface {
+ Send(*TreeEntryResponse) error
+ grpc.ServerStream
+}
+
+type commitTreeEntryServer struct {
+ grpc.ServerStream
+}
+
+func (x *commitTreeEntryServer) Send(m *TreeEntryResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+var _Commit_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "gitaly.Commit",
+ HandlerType: (*CommitServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "CommitIsAncestor",
+ Handler: _Commit_CommitIsAncestor_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "TreeEntry",
+ Handler: _Commit_TreeEntry_Handler,
+ ServerStreams: true,
+ },
+ },
+ Metadata: "deprecated-services.proto",
+}
+
+// Client API for Diff service
+
+type DiffClient interface {
+ // Returns stream of CommitDiffResponse with patches chunked over messages
+ CommitDiff(ctx context.Context, in *CommitDiffRequest, opts ...grpc.CallOption) (Diff_CommitDiffClient, error)
+ // Return a stream so we can divide the response in chunks of deltas
+ CommitDelta(ctx context.Context, in *CommitDeltaRequest, opts ...grpc.CallOption) (Diff_CommitDeltaClient, error)
+}
+
+type diffClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewDiffClient(cc *grpc.ClientConn) DiffClient {
+ return &diffClient{cc}
+}
+
+func (c *diffClient) CommitDiff(ctx context.Context, in *CommitDiffRequest, opts ...grpc.CallOption) (Diff_CommitDiffClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_Diff_serviceDesc.Streams[0], c.cc, "/gitaly.Diff/CommitDiff", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &diffCommitDiffClient{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 Diff_CommitDiffClient interface {
+ Recv() (*CommitDiffResponse, error)
+ grpc.ClientStream
+}
+
+type diffCommitDiffClient struct {
+ grpc.ClientStream
+}
+
+func (x *diffCommitDiffClient) Recv() (*CommitDiffResponse, error) {
+ m := new(CommitDiffResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *diffClient) CommitDelta(ctx context.Context, in *CommitDeltaRequest, opts ...grpc.CallOption) (Diff_CommitDeltaClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_Diff_serviceDesc.Streams[1], c.cc, "/gitaly.Diff/CommitDelta", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &diffCommitDeltaClient{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 Diff_CommitDeltaClient interface {
+ Recv() (*CommitDeltaResponse, error)
+ grpc.ClientStream
+}
+
+type diffCommitDeltaClient struct {
+ grpc.ClientStream
+}
+
+func (x *diffCommitDeltaClient) Recv() (*CommitDeltaResponse, error) {
+ m := new(CommitDeltaResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// Server API for Diff service
+
+type DiffServer interface {
+ // Returns stream of CommitDiffResponse with patches chunked over messages
+ CommitDiff(*CommitDiffRequest, Diff_CommitDiffServer) error
+ // Return a stream so we can divide the response in chunks of deltas
+ CommitDelta(*CommitDeltaRequest, Diff_CommitDeltaServer) error
+}
+
+func RegisterDiffServer(s *grpc.Server, srv DiffServer) {
+ s.RegisterService(&_Diff_serviceDesc, srv)
+}
+
+func _Diff_CommitDiff_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(CommitDiffRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(DiffServer).CommitDiff(m, &diffCommitDiffServer{stream})
+}
+
+type Diff_CommitDiffServer interface {
+ Send(*CommitDiffResponse) error
+ grpc.ServerStream
+}
+
+type diffCommitDiffServer struct {
+ grpc.ServerStream
+}
+
+func (x *diffCommitDiffServer) Send(m *CommitDiffResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func _Diff_CommitDelta_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(CommitDeltaRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(DiffServer).CommitDelta(m, &diffCommitDeltaServer{stream})
+}
+
+type Diff_CommitDeltaServer interface {
+ Send(*CommitDeltaResponse) error
+ grpc.ServerStream
+}
+
+type diffCommitDeltaServer struct {
+ grpc.ServerStream
+}
+
+func (x *diffCommitDeltaServer) Send(m *CommitDeltaResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+var _Diff_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "gitaly.Diff",
+ HandlerType: (*DiffServer)(nil),
+ Methods: []grpc.MethodDesc{},
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "CommitDiff",
+ Handler: _Diff_CommitDiff_Handler,
+ ServerStreams: true,
+ },
+ {
+ StreamName: "CommitDelta",
+ Handler: _Diff_CommitDelta_Handler,
+ ServerStreams: true,
+ },
+ },
+ Metadata: "deprecated-services.proto",
+}
+
+// Client API for Notifications service
+
+type NotificationsClient interface {
+ PostReceive(ctx context.Context, in *PostReceiveRequest, opts ...grpc.CallOption) (*PostReceiveResponse, error)
+}
+
+type notificationsClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewNotificationsClient(cc *grpc.ClientConn) NotificationsClient {
+ return &notificationsClient{cc}
+}
+
+func (c *notificationsClient) PostReceive(ctx context.Context, in *PostReceiveRequest, opts ...grpc.CallOption) (*PostReceiveResponse, error) {
+ out := new(PostReceiveResponse)
+ err := grpc.Invoke(ctx, "/gitaly.Notifications/PostReceive", in, out, c.cc, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// Server API for Notifications service
+
+type NotificationsServer interface {
+ PostReceive(context.Context, *PostReceiveRequest) (*PostReceiveResponse, error)
+}
+
+func RegisterNotificationsServer(s *grpc.Server, srv NotificationsServer) {
+ s.RegisterService(&_Notifications_serviceDesc, srv)
+}
+
+func _Notifications_PostReceive_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(PostReceiveRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(NotificationsServer).PostReceive(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/gitaly.Notifications/PostReceive",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(NotificationsServer).PostReceive(ctx, req.(*PostReceiveRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _Notifications_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "gitaly.Notifications",
+ HandlerType: (*NotificationsServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "PostReceive",
+ Handler: _Notifications_PostReceive_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "deprecated-services.proto",
+}
+
+// Client API for Ref service
+
+type RefClient interface {
+ FindDefaultBranchName(ctx context.Context, in *FindDefaultBranchNameRequest, opts ...grpc.CallOption) (*FindDefaultBranchNameResponse, error)
+ FindAllBranchNames(ctx context.Context, in *FindAllBranchNamesRequest, opts ...grpc.CallOption) (Ref_FindAllBranchNamesClient, error)
+ FindAllTagNames(ctx context.Context, in *FindAllTagNamesRequest, opts ...grpc.CallOption) (Ref_FindAllTagNamesClient, error)
+ // Find a Ref matching the given constraints. Response may be empty.
+ FindRefName(ctx context.Context, in *FindRefNameRequest, opts ...grpc.CallOption) (*FindRefNameResponse, error)
+ // Return a stream so we can divide the response in chunks of branches
+ FindLocalBranches(ctx context.Context, in *FindLocalBranchesRequest, opts ...grpc.CallOption) (Ref_FindLocalBranchesClient, error)
+}
+
+type refClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewRefClient(cc *grpc.ClientConn) RefClient {
+ return &refClient{cc}
+}
+
+func (c *refClient) FindDefaultBranchName(ctx context.Context, in *FindDefaultBranchNameRequest, opts ...grpc.CallOption) (*FindDefaultBranchNameResponse, error) {
+ out := new(FindDefaultBranchNameResponse)
+ err := grpc.Invoke(ctx, "/gitaly.Ref/FindDefaultBranchName", in, out, c.cc, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *refClient) FindAllBranchNames(ctx context.Context, in *FindAllBranchNamesRequest, opts ...grpc.CallOption) (Ref_FindAllBranchNamesClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_Ref_serviceDesc.Streams[0], c.cc, "/gitaly.Ref/FindAllBranchNames", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &refFindAllBranchNamesClient{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 Ref_FindAllBranchNamesClient interface {
+ Recv() (*FindAllBranchNamesResponse, error)
+ grpc.ClientStream
+}
+
+type refFindAllBranchNamesClient struct {
+ grpc.ClientStream
+}
+
+func (x *refFindAllBranchNamesClient) Recv() (*FindAllBranchNamesResponse, error) {
+ m := new(FindAllBranchNamesResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *refClient) FindAllTagNames(ctx context.Context, in *FindAllTagNamesRequest, opts ...grpc.CallOption) (Ref_FindAllTagNamesClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_Ref_serviceDesc.Streams[1], c.cc, "/gitaly.Ref/FindAllTagNames", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &refFindAllTagNamesClient{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 Ref_FindAllTagNamesClient interface {
+ Recv() (*FindAllTagNamesResponse, error)
+ grpc.ClientStream
+}
+
+type refFindAllTagNamesClient struct {
+ grpc.ClientStream
+}
+
+func (x *refFindAllTagNamesClient) Recv() (*FindAllTagNamesResponse, error) {
+ m := new(FindAllTagNamesResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *refClient) FindRefName(ctx context.Context, in *FindRefNameRequest, opts ...grpc.CallOption) (*FindRefNameResponse, error) {
+ out := new(FindRefNameResponse)
+ err := grpc.Invoke(ctx, "/gitaly.Ref/FindRefName", in, out, c.cc, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+func (c *refClient) FindLocalBranches(ctx context.Context, in *FindLocalBranchesRequest, opts ...grpc.CallOption) (Ref_FindLocalBranchesClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_Ref_serviceDesc.Streams[2], c.cc, "/gitaly.Ref/FindLocalBranches", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &refFindLocalBranchesClient{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 Ref_FindLocalBranchesClient interface {
+ Recv() (*FindLocalBranchesResponse, error)
+ grpc.ClientStream
+}
+
+type refFindLocalBranchesClient struct {
+ grpc.ClientStream
+}
+
+func (x *refFindLocalBranchesClient) Recv() (*FindLocalBranchesResponse, error) {
+ m := new(FindLocalBranchesResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// Server API for Ref service
+
+type RefServer interface {
+ FindDefaultBranchName(context.Context, *FindDefaultBranchNameRequest) (*FindDefaultBranchNameResponse, error)
+ FindAllBranchNames(*FindAllBranchNamesRequest, Ref_FindAllBranchNamesServer) error
+ FindAllTagNames(*FindAllTagNamesRequest, Ref_FindAllTagNamesServer) error
+ // Find a Ref matching the given constraints. Response may be empty.
+ FindRefName(context.Context, *FindRefNameRequest) (*FindRefNameResponse, error)
+ // Return a stream so we can divide the response in chunks of branches
+ FindLocalBranches(*FindLocalBranchesRequest, Ref_FindLocalBranchesServer) error
+}
+
+func RegisterRefServer(s *grpc.Server, srv RefServer) {
+ s.RegisterService(&_Ref_serviceDesc, srv)
+}
+
+func _Ref_FindDefaultBranchName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(FindDefaultBranchNameRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(RefServer).FindDefaultBranchName(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/gitaly.Ref/FindDefaultBranchName",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(RefServer).FindDefaultBranchName(ctx, req.(*FindDefaultBranchNameRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Ref_FindAllBranchNames_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(FindAllBranchNamesRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(RefServer).FindAllBranchNames(m, &refFindAllBranchNamesServer{stream})
+}
+
+type Ref_FindAllBranchNamesServer interface {
+ Send(*FindAllBranchNamesResponse) error
+ grpc.ServerStream
+}
+
+type refFindAllBranchNamesServer struct {
+ grpc.ServerStream
+}
+
+func (x *refFindAllBranchNamesServer) Send(m *FindAllBranchNamesResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func _Ref_FindAllTagNames_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(FindAllTagNamesRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(RefServer).FindAllTagNames(m, &refFindAllTagNamesServer{stream})
+}
+
+type Ref_FindAllTagNamesServer interface {
+ Send(*FindAllTagNamesResponse) error
+ grpc.ServerStream
+}
+
+type refFindAllTagNamesServer struct {
+ grpc.ServerStream
+}
+
+func (x *refFindAllTagNamesServer) Send(m *FindAllTagNamesResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func _Ref_FindRefName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(FindRefNameRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(RefServer).FindRefName(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/gitaly.Ref/FindRefName",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(RefServer).FindRefName(ctx, req.(*FindRefNameRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+func _Ref_FindLocalBranches_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(FindLocalBranchesRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(RefServer).FindLocalBranches(m, &refFindLocalBranchesServer{stream})
+}
+
+type Ref_FindLocalBranchesServer interface {
+ Send(*FindLocalBranchesResponse) error
+ grpc.ServerStream
+}
+
+type refFindLocalBranchesServer struct {
+ grpc.ServerStream
+}
+
+func (x *refFindLocalBranchesServer) Send(m *FindLocalBranchesResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+var _Ref_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "gitaly.Ref",
+ HandlerType: (*RefServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "FindDefaultBranchName",
+ Handler: _Ref_FindDefaultBranchName_Handler,
+ },
+ {
+ MethodName: "FindRefName",
+ Handler: _Ref_FindRefName_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "FindAllBranchNames",
+ Handler: _Ref_FindAllBranchNames_Handler,
+ ServerStreams: true,
+ },
+ {
+ StreamName: "FindAllTagNames",
+ Handler: _Ref_FindAllTagNames_Handler,
+ ServerStreams: true,
+ },
+ {
+ StreamName: "FindLocalBranches",
+ Handler: _Ref_FindLocalBranches_Handler,
+ ServerStreams: true,
+ },
+ },
+ Metadata: "deprecated-services.proto",
+}
+
+// Client API for SmartHTTP service
+
+type SmartHTTPClient interface {
+ // The response body for GET /info/refs?service=git-upload-pack
+ InfoRefsUploadPack(ctx context.Context, in *InfoRefsRequest, opts ...grpc.CallOption) (SmartHTTP_InfoRefsUploadPackClient, error)
+ // The response body for GET /info/refs?service=git-receive-pack
+ InfoRefsReceivePack(ctx context.Context, in *InfoRefsRequest, opts ...grpc.CallOption) (SmartHTTP_InfoRefsReceivePackClient, error)
+ // Request and response body for POST /upload-pack
+ PostUploadPack(ctx context.Context, opts ...grpc.CallOption) (SmartHTTP_PostUploadPackClient, error)
+ // Request and response body for POST /receive-pack
+ PostReceivePack(ctx context.Context, opts ...grpc.CallOption) (SmartHTTP_PostReceivePackClient, error)
+}
+
+type smartHTTPClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewSmartHTTPClient(cc *grpc.ClientConn) SmartHTTPClient {
+ return &smartHTTPClient{cc}
+}
+
+func (c *smartHTTPClient) InfoRefsUploadPack(ctx context.Context, in *InfoRefsRequest, opts ...grpc.CallOption) (SmartHTTP_InfoRefsUploadPackClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_SmartHTTP_serviceDesc.Streams[0], c.cc, "/gitaly.SmartHTTP/InfoRefsUploadPack", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &smartHTTPInfoRefsUploadPackClient{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 SmartHTTP_InfoRefsUploadPackClient interface {
+ Recv() (*InfoRefsResponse, error)
+ grpc.ClientStream
+}
+
+type smartHTTPInfoRefsUploadPackClient struct {
+ grpc.ClientStream
+}
+
+func (x *smartHTTPInfoRefsUploadPackClient) Recv() (*InfoRefsResponse, error) {
+ m := new(InfoRefsResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *smartHTTPClient) InfoRefsReceivePack(ctx context.Context, in *InfoRefsRequest, opts ...grpc.CallOption) (SmartHTTP_InfoRefsReceivePackClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_SmartHTTP_serviceDesc.Streams[1], c.cc, "/gitaly.SmartHTTP/InfoRefsReceivePack", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &smartHTTPInfoRefsReceivePackClient{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 SmartHTTP_InfoRefsReceivePackClient interface {
+ Recv() (*InfoRefsResponse, error)
+ grpc.ClientStream
+}
+
+type smartHTTPInfoRefsReceivePackClient struct {
+ grpc.ClientStream
+}
+
+func (x *smartHTTPInfoRefsReceivePackClient) Recv() (*InfoRefsResponse, error) {
+ m := new(InfoRefsResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *smartHTTPClient) PostUploadPack(ctx context.Context, opts ...grpc.CallOption) (SmartHTTP_PostUploadPackClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_SmartHTTP_serviceDesc.Streams[2], c.cc, "/gitaly.SmartHTTP/PostUploadPack", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &smartHTTPPostUploadPackClient{stream}
+ return x, nil
+}
+
+type SmartHTTP_PostUploadPackClient interface {
+ Send(*PostUploadPackRequest) error
+ Recv() (*PostUploadPackResponse, error)
+ grpc.ClientStream
+}
+
+type smartHTTPPostUploadPackClient struct {
+ grpc.ClientStream
+}
+
+func (x *smartHTTPPostUploadPackClient) Send(m *PostUploadPackRequest) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *smartHTTPPostUploadPackClient) Recv() (*PostUploadPackResponse, error) {
+ m := new(PostUploadPackResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *smartHTTPClient) PostReceivePack(ctx context.Context, opts ...grpc.CallOption) (SmartHTTP_PostReceivePackClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_SmartHTTP_serviceDesc.Streams[3], c.cc, "/gitaly.SmartHTTP/PostReceivePack", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &smartHTTPPostReceivePackClient{stream}
+ return x, nil
+}
+
+type SmartHTTP_PostReceivePackClient interface {
+ Send(*PostReceivePackRequest) error
+ Recv() (*PostReceivePackResponse, error)
+ grpc.ClientStream
+}
+
+type smartHTTPPostReceivePackClient struct {
+ grpc.ClientStream
+}
+
+func (x *smartHTTPPostReceivePackClient) Send(m *PostReceivePackRequest) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *smartHTTPPostReceivePackClient) Recv() (*PostReceivePackResponse, error) {
+ m := new(PostReceivePackResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// Server API for SmartHTTP service
+
+type SmartHTTPServer interface {
+ // The response body for GET /info/refs?service=git-upload-pack
+ InfoRefsUploadPack(*InfoRefsRequest, SmartHTTP_InfoRefsUploadPackServer) error
+ // The response body for GET /info/refs?service=git-receive-pack
+ InfoRefsReceivePack(*InfoRefsRequest, SmartHTTP_InfoRefsReceivePackServer) error
+ // Request and response body for POST /upload-pack
+ PostUploadPack(SmartHTTP_PostUploadPackServer) error
+ // Request and response body for POST /receive-pack
+ PostReceivePack(SmartHTTP_PostReceivePackServer) error
+}
+
+func RegisterSmartHTTPServer(s *grpc.Server, srv SmartHTTPServer) {
+ s.RegisterService(&_SmartHTTP_serviceDesc, srv)
+}
+
+func _SmartHTTP_InfoRefsUploadPack_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(InfoRefsRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(SmartHTTPServer).InfoRefsUploadPack(m, &smartHTTPInfoRefsUploadPackServer{stream})
+}
+
+type SmartHTTP_InfoRefsUploadPackServer interface {
+ Send(*InfoRefsResponse) error
+ grpc.ServerStream
+}
+
+type smartHTTPInfoRefsUploadPackServer struct {
+ grpc.ServerStream
+}
+
+func (x *smartHTTPInfoRefsUploadPackServer) Send(m *InfoRefsResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func _SmartHTTP_InfoRefsReceivePack_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(InfoRefsRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(SmartHTTPServer).InfoRefsReceivePack(m, &smartHTTPInfoRefsReceivePackServer{stream})
+}
+
+type SmartHTTP_InfoRefsReceivePackServer interface {
+ Send(*InfoRefsResponse) error
+ grpc.ServerStream
+}
+
+type smartHTTPInfoRefsReceivePackServer struct {
+ grpc.ServerStream
+}
+
+func (x *smartHTTPInfoRefsReceivePackServer) Send(m *InfoRefsResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func _SmartHTTP_PostUploadPack_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(SmartHTTPServer).PostUploadPack(&smartHTTPPostUploadPackServer{stream})
+}
+
+type SmartHTTP_PostUploadPackServer interface {
+ Send(*PostUploadPackResponse) error
+ Recv() (*PostUploadPackRequest, error)
+ grpc.ServerStream
+}
+
+type smartHTTPPostUploadPackServer struct {
+ grpc.ServerStream
+}
+
+func (x *smartHTTPPostUploadPackServer) Send(m *PostUploadPackResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *smartHTTPPostUploadPackServer) Recv() (*PostUploadPackRequest, error) {
+ m := new(PostUploadPackRequest)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func _SmartHTTP_PostReceivePack_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(SmartHTTPServer).PostReceivePack(&smartHTTPPostReceivePackServer{stream})
+}
+
+type SmartHTTP_PostReceivePackServer interface {
+ Send(*PostReceivePackResponse) error
+ Recv() (*PostReceivePackRequest, error)
+ grpc.ServerStream
+}
+
+type smartHTTPPostReceivePackServer struct {
+ grpc.ServerStream
+}
+
+func (x *smartHTTPPostReceivePackServer) Send(m *PostReceivePackResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *smartHTTPPostReceivePackServer) Recv() (*PostReceivePackRequest, error) {
+ m := new(PostReceivePackRequest)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+var _SmartHTTP_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "gitaly.SmartHTTP",
+ HandlerType: (*SmartHTTPServer)(nil),
+ Methods: []grpc.MethodDesc{},
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "InfoRefsUploadPack",
+ Handler: _SmartHTTP_InfoRefsUploadPack_Handler,
+ ServerStreams: true,
+ },
+ {
+ StreamName: "InfoRefsReceivePack",
+ Handler: _SmartHTTP_InfoRefsReceivePack_Handler,
+ ServerStreams: true,
+ },
+ {
+ StreamName: "PostUploadPack",
+ Handler: _SmartHTTP_PostUploadPack_Handler,
+ ServerStreams: true,
+ ClientStreams: true,
+ },
+ {
+ StreamName: "PostReceivePack",
+ Handler: _SmartHTTP_PostReceivePack_Handler,
+ ServerStreams: true,
+ ClientStreams: true,
+ },
+ },
+ Metadata: "deprecated-services.proto",
+}
+
+// Client API for SSH service
+
+type SSHClient interface {
+ // To forward 'git upload-pack' to Gitaly for SSH sessions
+ SSHUploadPack(ctx context.Context, opts ...grpc.CallOption) (SSH_SSHUploadPackClient, error)
+ // To forward 'git receive-pack' to Gitaly for SSH sessions
+ SSHReceivePack(ctx context.Context, opts ...grpc.CallOption) (SSH_SSHReceivePackClient, error)
+}
+
+type sSHClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewSSHClient(cc *grpc.ClientConn) SSHClient {
+ return &sSHClient{cc}
+}
+
+func (c *sSHClient) SSHUploadPack(ctx context.Context, opts ...grpc.CallOption) (SSH_SSHUploadPackClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_SSH_serviceDesc.Streams[0], c.cc, "/gitaly.SSH/SSHUploadPack", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &sSHSSHUploadPackClient{stream}
+ return x, nil
+}
+
+type SSH_SSHUploadPackClient interface {
+ Send(*SSHUploadPackRequest) error
+ Recv() (*SSHUploadPackResponse, error)
+ grpc.ClientStream
+}
+
+type sSHSSHUploadPackClient struct {
+ grpc.ClientStream
+}
+
+func (x *sSHSSHUploadPackClient) Send(m *SSHUploadPackRequest) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *sSHSSHUploadPackClient) Recv() (*SSHUploadPackResponse, error) {
+ m := new(SSHUploadPackResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func (c *sSHClient) SSHReceivePack(ctx context.Context, opts ...grpc.CallOption) (SSH_SSHReceivePackClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_SSH_serviceDesc.Streams[1], c.cc, "/gitaly.SSH/SSHReceivePack", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &sSHSSHReceivePackClient{stream}
+ return x, nil
+}
+
+type SSH_SSHReceivePackClient interface {
+ Send(*SSHReceivePackRequest) error
+ Recv() (*SSHReceivePackResponse, error)
+ grpc.ClientStream
+}
+
+type sSHSSHReceivePackClient struct {
+ grpc.ClientStream
+}
+
+func (x *sSHSSHReceivePackClient) Send(m *SSHReceivePackRequest) error {
+ return x.ClientStream.SendMsg(m)
+}
+
+func (x *sSHSSHReceivePackClient) Recv() (*SSHReceivePackResponse, error) {
+ m := new(SSHReceivePackResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// Server API for SSH service
+
+type SSHServer interface {
+ // To forward 'git upload-pack' to Gitaly for SSH sessions
+ SSHUploadPack(SSH_SSHUploadPackServer) error
+ // To forward 'git receive-pack' to Gitaly for SSH sessions
+ SSHReceivePack(SSH_SSHReceivePackServer) error
+}
+
+func RegisterSSHServer(s *grpc.Server, srv SSHServer) {
+ s.RegisterService(&_SSH_serviceDesc, srv)
+}
+
+func _SSH_SSHUploadPack_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(SSHServer).SSHUploadPack(&sSHSSHUploadPackServer{stream})
+}
+
+type SSH_SSHUploadPackServer interface {
+ Send(*SSHUploadPackResponse) error
+ Recv() (*SSHUploadPackRequest, error)
+ grpc.ServerStream
+}
+
+type sSHSSHUploadPackServer struct {
+ grpc.ServerStream
+}
+
+func (x *sSHSSHUploadPackServer) Send(m *SSHUploadPackResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *sSHSSHUploadPackServer) Recv() (*SSHUploadPackRequest, error) {
+ m := new(SSHUploadPackRequest)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+func _SSH_SSHReceivePack_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(SSHServer).SSHReceivePack(&sSHSSHReceivePackServer{stream})
+}
+
+type SSH_SSHReceivePackServer interface {
+ Send(*SSHReceivePackResponse) error
+ Recv() (*SSHReceivePackRequest, error)
+ grpc.ServerStream
+}
+
+type sSHSSHReceivePackServer struct {
+ grpc.ServerStream
+}
+
+func (x *sSHSSHReceivePackServer) Send(m *SSHReceivePackResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+func (x *sSHSSHReceivePackServer) Recv() (*SSHReceivePackRequest, error) {
+ m := new(SSHReceivePackRequest)
+ if err := x.ServerStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+var _SSH_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "gitaly.SSH",
+ HandlerType: (*SSHServer)(nil),
+ Methods: []grpc.MethodDesc{},
+ Streams: []grpc.StreamDesc{
+ {
+ StreamName: "SSHUploadPack",
+ Handler: _SSH_SSHUploadPack_Handler,
+ ServerStreams: true,
+ ClientStreams: true,
+ },
+ {
+ StreamName: "SSHReceivePack",
+ Handler: _SSH_SSHReceivePack_Handler,
+ ServerStreams: true,
+ ClientStreams: true,
+ },
+ },
+ Metadata: "deprecated-services.proto",
+}
+
+func init() { proto.RegisterFile("deprecated-services.proto", fileDescriptor2) }
+
+var fileDescriptor2 = []byte{
+ // 534 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0x5d, 0x6e, 0xd3, 0x40,
+ 0x10, 0x80, 0x31, 0x41, 0x91, 0x32, 0xa1, 0x0d, 0x6c, 0x85, 0x68, 0x0c, 0x4d, 0xda, 0x0a, 0x24,
+ 0x5e, 0x88, 0xaa, 0x70, 0x82, 0x42, 0x00, 0x17, 0xaa, 0x2a, 0xb2, 0x13, 0x7e, 0x24, 0x24, 0xb4,
+ 0x38, 0xb3, 0x8d, 0x85, 0xe3, 0x0d, 0xde, 0x6d, 0xa5, 0x9e, 0x85, 0x03, 0xf0, 0xca, 0x49, 0x78,
+ 0xe5, 0x3a, 0xc8, 0x3f, 0x13, 0xaf, 0x13, 0xbb, 0x3c, 0xf4, 0x6d, 0x33, 0xdf, 0xcc, 0xb7, 0x93,
+ 0xf1, 0xd8, 0xd0, 0x9d, 0xe1, 0x32, 0x46, 0x9f, 0x6b, 0x9c, 0x3d, 0x57, 0x18, 0x5f, 0x06, 0x3e,
+ 0xaa, 0xc1, 0x32, 0x96, 0x5a, 0xb2, 0xe6, 0x79, 0xa0, 0x79, 0x78, 0x65, 0xdf, 0xf5, 0xe5, 0x62,
+ 0x11, 0xe8, 0x2c, 0x6a, 0xc3, 0x2c, 0x10, 0x22, 0x3f, 0xef, 0x44, 0x52, 0x07, 0x22, 0xf0, 0xb9,
+ 0x0e, 0x64, 0x94, 0x97, 0xd9, 0xad, 0x18, 0x89, 0x77, 0xd4, 0x82, 0xc7, 0x7a, 0xae, 0xf5, 0x92,
+ 0x98, 0x52, 0xf3, 0xec, 0x38, 0xfc, 0x65, 0x41, 0xf3, 0x55, 0x2a, 0x66, 0x1f, 0xe1, 0x5e, 0x76,
+ 0x3a, 0x51, 0xc7, 0x91, 0x8f, 0x4a, 0xcb, 0x98, 0xf5, 0x07, 0xd9, 0xed, 0x83, 0x75, 0xe2, 0xe2,
+ 0x8f, 0x0b, 0x54, 0xda, 0xde, 0xaf, 0x4f, 0x50, 0x4b, 0x19, 0x29, 0x3c, 0xbc, 0xc5, 0x46, 0xd0,
+ 0x9a, 0xc4, 0x88, 0xaf, 0x23, 0x1d, 0x5f, 0xb1, 0x5d, 0x2a, 0x58, 0x85, 0x48, 0xd5, 0xad, 0x20,
+ 0xe4, 0x38, 0xb2, 0x86, 0x3f, 0x2d, 0xb8, 0x33, 0x0a, 0x84, 0x60, 0x6f, 0x01, 0xb2, 0xcb, 0xd2,
+ 0x5f, 0xdd, 0x72, 0x03, 0x49, 0x8c, 0x84, 0x76, 0x15, 0x2a, 0x8c, 0xec, 0x1d, 0xb4, 0x73, 0x82,
+ 0xa1, 0xe6, 0x6c, 0x3d, 0x3d, 0x09, 0x92, 0xea, 0x51, 0x25, 0x33, 0xba, 0xfb, 0x0c, 0x5b, 0x67,
+ 0xe6, 0x53, 0x60, 0x0e, 0xb4, 0xc7, 0x52, 0x69, 0x17, 0x7d, 0x0c, 0x2e, 0xb1, 0x90, 0x1b, 0xc1,
+ 0x0d, 0x79, 0x89, 0x91, 0x7c, 0xf8, 0xa7, 0x01, 0x0d, 0x17, 0x05, 0x13, 0xf0, 0xe0, 0x4d, 0x10,
+ 0xcd, 0x46, 0x28, 0xf8, 0x45, 0xa8, 0x5f, 0xc6, 0x3c, 0xf2, 0xe7, 0x67, 0x7c, 0x81, 0xec, 0x09,
+ 0xd5, 0x57, 0x62, 0xba, 0xe5, 0xe9, 0x7f, 0xb2, 0x56, 0x8f, 0xeb, 0x2b, 0xb0, 0x24, 0xe5, 0x38,
+ 0x0c, 0x0b, 0xac, 0xd8, 0x81, 0x59, 0x5e, 0x66, 0x74, 0xc3, 0xe1, 0x75, 0x29, 0xc6, 0xdc, 0x3f,
+ 0x40, 0x27, 0xcf, 0x98, 0xf0, 0xf3, 0xcc, 0xde, 0x5b, 0x2b, 0x25, 0x40, 0xea, 0x7e, 0x2d, 0x37,
+ 0xbc, 0x0e, 0xb4, 0x13, 0xec, 0xa2, 0x48, 0xc7, 0x62, 0x9b, 0x35, 0x79, 0x70, 0x63, 0xe4, 0x25,
+ 0xb6, 0x1a, 0xc1, 0x17, 0xb8, 0x9f, 0x80, 0x53, 0xe9, 0xf3, 0xfc, 0x5f, 0xa0, 0x62, 0xfb, 0x66,
+ 0x4d, 0x09, 0x91, 0xf5, 0xe0, 0x9a, 0x0c, 0x63, 0x57, 0xfe, 0xde, 0x86, 0x96, 0x97, 0xbc, 0x92,
+ 0xce, 0x64, 0x32, 0x66, 0xef, 0x81, 0x9d, 0x44, 0x42, 0xba, 0x28, 0xd4, 0x74, 0x19, 0x4a, 0x3e,
+ 0x1b, 0x73, 0xff, 0x3b, 0x7b, 0x48, 0x2a, 0x62, 0x74, 0xc7, 0xee, 0x26, 0x30, 0x46, 0x70, 0x0a,
+ 0x3b, 0x45, 0x3c, 0x5d, 0xa4, 0x9b, 0xd8, 0xa6, 0xb0, 0x9d, 0xac, 0xa4, 0xd1, 0xd6, 0x9e, 0xb9,
+ 0xaa, 0x45, 0x9c, 0x74, 0xbd, 0x3a, 0x4c, 0xd2, 0x67, 0xd6, 0x91, 0xc5, 0x3e, 0x41, 0xc7, 0xd8,
+ 0xf4, 0xd4, 0xdb, 0xab, 0x78, 0x05, 0x4c, 0x71, 0xbf, 0x96, 0x9b, 0xe6, 0xe1, 0x6f, 0x0b, 0x1a,
+ 0x9e, 0xe7, 0x30, 0x17, 0xb6, 0x3c, 0xcf, 0x31, 0xfa, 0x7e, 0x4c, 0xf5, 0xa5, 0x30, 0xd9, 0xf7,
+ 0x6a, 0x68, 0xa9, 0xeb, 0x29, 0x6c, 0x7b, 0x9e, 0x63, 0x36, 0x6d, 0x96, 0x55, 0xf4, 0xdc, 0xab,
+ 0xc3, 0xa6, 0xf6, 0x5b, 0x33, 0xfd, 0x0e, 0xbf, 0xf8, 0x17, 0x00, 0x00, 0xff, 0xff, 0x79, 0x83,
+ 0xb6, 0xb0, 0x02, 0x06, 0x00, 0x00,
+}
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/diff.pb.go b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/diff.pb.go
index f2b0c7c..aa5f428 100644
--- a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/diff.pb.go
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/diff.pb.go
@@ -1,6 +1,5 @@
-// Code generated by protoc-gen-go.
+// Code generated by protoc-gen-go. DO NOT EDIT.
// source: diff.proto
-// DO NOT EDIT!
package gitaly
@@ -19,15 +18,17 @@ var _ = fmt.Errorf
var _ = math.Inf
type CommitDiffRequest struct {
- Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
- LeftCommitId string `protobuf:"bytes,2,opt,name=left_commit_id,json=leftCommitId" json:"left_commit_id,omitempty"`
- RightCommitId string `protobuf:"bytes,3,opt,name=right_commit_id,json=rightCommitId" json:"right_commit_id,omitempty"`
+ Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
+ LeftCommitId string `protobuf:"bytes,2,opt,name=left_commit_id,json=leftCommitId" json:"left_commit_id,omitempty"`
+ RightCommitId string `protobuf:"bytes,3,opt,name=right_commit_id,json=rightCommitId" json:"right_commit_id,omitempty"`
+ IgnoreWhitespaceChange bool `protobuf:"varint,4,opt,name=ignore_whitespace_change,json=ignoreWhitespaceChange" json:"ignore_whitespace_change,omitempty"`
+ Paths [][]byte `protobuf:"bytes,5,rep,name=paths,proto3" json:"paths,omitempty"`
}
func (m *CommitDiffRequest) Reset() { *m = CommitDiffRequest{} }
func (m *CommitDiffRequest) String() string { return proto.CompactTextString(m) }
func (*CommitDiffRequest) ProtoMessage() {}
-func (*CommitDiffRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }
+func (*CommitDiffRequest) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{0} }
func (m *CommitDiffRequest) GetRepository() *Repository {
if m != nil {
@@ -50,23 +51,38 @@ func (m *CommitDiffRequest) GetRightCommitId() string {
return ""
}
+func (m *CommitDiffRequest) GetIgnoreWhitespaceChange() bool {
+ if m != nil {
+ return m.IgnoreWhitespaceChange
+ }
+ return false
+}
+
+func (m *CommitDiffRequest) GetPaths() [][]byte {
+ if m != nil {
+ return m.Paths
+ }
+ return nil
+}
+
// A CommitDiffResponse corresponds to a single changed file in a commit.
type CommitDiffResponse struct {
FromPath []byte `protobuf:"bytes,1,opt,name=from_path,json=fromPath,proto3" json:"from_path,omitempty"`
ToPath []byte `protobuf:"bytes,2,opt,name=to_path,json=toPath,proto3" json:"to_path,omitempty"`
// Blob ID as returned via `git diff --full-index`
- FromId string `protobuf:"bytes,3,opt,name=from_id,json=fromId" json:"from_id,omitempty"`
- ToId string `protobuf:"bytes,4,opt,name=to_id,json=toId" json:"to_id,omitempty"`
- OldMode int32 `protobuf:"varint,5,opt,name=old_mode,json=oldMode" json:"old_mode,omitempty"`
- NewMode int32 `protobuf:"varint,6,opt,name=new_mode,json=newMode" json:"new_mode,omitempty"`
- Binary bool `protobuf:"varint,7,opt,name=binary" json:"binary,omitempty"`
- RawChunks [][]byte `protobuf:"bytes,8,rep,name=raw_chunks,json=rawChunks,proto3" json:"raw_chunks,omitempty"`
+ FromId string `protobuf:"bytes,3,opt,name=from_id,json=fromId" json:"from_id,omitempty"`
+ ToId string `protobuf:"bytes,4,opt,name=to_id,json=toId" json:"to_id,omitempty"`
+ OldMode int32 `protobuf:"varint,5,opt,name=old_mode,json=oldMode" json:"old_mode,omitempty"`
+ NewMode int32 `protobuf:"varint,6,opt,name=new_mode,json=newMode" json:"new_mode,omitempty"`
+ Binary bool `protobuf:"varint,7,opt,name=binary" json:"binary,omitempty"`
+ RawPatchData []byte `protobuf:"bytes,9,opt,name=raw_patch_data,json=rawPatchData,proto3" json:"raw_patch_data,omitempty"`
+ EndOfPatch bool `protobuf:"varint,10,opt,name=end_of_patch,json=endOfPatch" json:"end_of_patch,omitempty"`
}
func (m *CommitDiffResponse) Reset() { *m = CommitDiffResponse{} }
func (m *CommitDiffResponse) String() string { return proto.CompactTextString(m) }
func (*CommitDiffResponse) ProtoMessage() {}
-func (*CommitDiffResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }
+func (*CommitDiffResponse) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{1} }
func (m *CommitDiffResponse) GetFromPath() []byte {
if m != nil {
@@ -117,9 +133,129 @@ func (m *CommitDiffResponse) GetBinary() bool {
return false
}
-func (m *CommitDiffResponse) GetRawChunks() [][]byte {
+func (m *CommitDiffResponse) GetRawPatchData() []byte {
+ if m != nil {
+ return m.RawPatchData
+ }
+ return nil
+}
+
+func (m *CommitDiffResponse) GetEndOfPatch() bool {
+ if m != nil {
+ return m.EndOfPatch
+ }
+ return false
+}
+
+type CommitDeltaRequest struct {
+ Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
+ LeftCommitId string `protobuf:"bytes,2,opt,name=left_commit_id,json=leftCommitId" json:"left_commit_id,omitempty"`
+ RightCommitId string `protobuf:"bytes,3,opt,name=right_commit_id,json=rightCommitId" json:"right_commit_id,omitempty"`
+ Paths [][]byte `protobuf:"bytes,4,rep,name=paths,proto3" json:"paths,omitempty"`
+}
+
+func (m *CommitDeltaRequest) Reset() { *m = CommitDeltaRequest{} }
+func (m *CommitDeltaRequest) String() string { return proto.CompactTextString(m) }
+func (*CommitDeltaRequest) ProtoMessage() {}
+func (*CommitDeltaRequest) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{2} }
+
+func (m *CommitDeltaRequest) GetRepository() *Repository {
+ if m != nil {
+ return m.Repository
+ }
+ return nil
+}
+
+func (m *CommitDeltaRequest) GetLeftCommitId() string {
+ if m != nil {
+ return m.LeftCommitId
+ }
+ return ""
+}
+
+func (m *CommitDeltaRequest) GetRightCommitId() string {
+ if m != nil {
+ return m.RightCommitId
+ }
+ return ""
+}
+
+func (m *CommitDeltaRequest) GetPaths() [][]byte {
+ if m != nil {
+ return m.Paths
+ }
+ return nil
+}
+
+type CommitDelta struct {
+ FromPath []byte `protobuf:"bytes,1,opt,name=from_path,json=fromPath,proto3" json:"from_path,omitempty"`
+ ToPath []byte `protobuf:"bytes,2,opt,name=to_path,json=toPath,proto3" json:"to_path,omitempty"`
+ // Blob ID as returned via `git diff --full-index`
+ FromId string `protobuf:"bytes,3,opt,name=from_id,json=fromId" json:"from_id,omitempty"`
+ ToId string `protobuf:"bytes,4,opt,name=to_id,json=toId" json:"to_id,omitempty"`
+ OldMode int32 `protobuf:"varint,5,opt,name=old_mode,json=oldMode" json:"old_mode,omitempty"`
+ NewMode int32 `protobuf:"varint,6,opt,name=new_mode,json=newMode" json:"new_mode,omitempty"`
+}
+
+func (m *CommitDelta) Reset() { *m = CommitDelta{} }
+func (m *CommitDelta) String() string { return proto.CompactTextString(m) }
+func (*CommitDelta) ProtoMessage() {}
+func (*CommitDelta) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{3} }
+
+func (m *CommitDelta) GetFromPath() []byte {
+ if m != nil {
+ return m.FromPath
+ }
+ return nil
+}
+
+func (m *CommitDelta) GetToPath() []byte {
+ if m != nil {
+ return m.ToPath
+ }
+ return nil
+}
+
+func (m *CommitDelta) GetFromId() string {
+ if m != nil {
+ return m.FromId
+ }
+ return ""
+}
+
+func (m *CommitDelta) GetToId() string {
+ if m != nil {
+ return m.ToId
+ }
+ return ""
+}
+
+func (m *CommitDelta) GetOldMode() int32 {
if m != nil {
- return m.RawChunks
+ return m.OldMode
+ }
+ return 0
+}
+
+func (m *CommitDelta) GetNewMode() int32 {
+ if m != nil {
+ return m.NewMode
+ }
+ return 0
+}
+
+type CommitDeltaResponse struct {
+ Deltas []*CommitDelta `protobuf:"bytes,1,rep,name=deltas" json:"deltas,omitempty"`
+}
+
+func (m *CommitDeltaResponse) Reset() { *m = CommitDeltaResponse{} }
+func (m *CommitDeltaResponse) String() string { return proto.CompactTextString(m) }
+func (*CommitDeltaResponse) ProtoMessage() {}
+func (*CommitDeltaResponse) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{4} }
+
+func (m *CommitDeltaResponse) GetDeltas() []*CommitDelta {
+ if m != nil {
+ return m.Deltas
}
return nil
}
@@ -127,6 +263,9 @@ func (m *CommitDiffResponse) GetRawChunks() [][]byte {
func init() {
proto.RegisterType((*CommitDiffRequest)(nil), "gitaly.CommitDiffRequest")
proto.RegisterType((*CommitDiffResponse)(nil), "gitaly.CommitDiffResponse")
+ proto.RegisterType((*CommitDeltaRequest)(nil), "gitaly.CommitDeltaRequest")
+ proto.RegisterType((*CommitDelta)(nil), "gitaly.CommitDelta")
+ proto.RegisterType((*CommitDeltaResponse)(nil), "gitaly.CommitDeltaResponse")
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -137,27 +276,29 @@ var _ grpc.ClientConn
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4
-// Client API for Diff service
+// Client API for DiffService service
-type DiffClient interface {
- // Returns stream of CommitDiffResponse: 1 per changed file
- CommitDiff(ctx context.Context, in *CommitDiffRequest, opts ...grpc.CallOption) (Diff_CommitDiffClient, error)
+type DiffServiceClient interface {
+ // Returns stream of CommitDiffResponse with patches chunked over messages
+ CommitDiff(ctx context.Context, in *CommitDiffRequest, opts ...grpc.CallOption) (DiffService_CommitDiffClient, error)
+ // Return a stream so we can divide the response in chunks of deltas
+ CommitDelta(ctx context.Context, in *CommitDeltaRequest, opts ...grpc.CallOption) (DiffService_CommitDeltaClient, error)
}
-type diffClient struct {
+type diffServiceClient struct {
cc *grpc.ClientConn
}
-func NewDiffClient(cc *grpc.ClientConn) DiffClient {
- return &diffClient{cc}
+func NewDiffServiceClient(cc *grpc.ClientConn) DiffServiceClient {
+ return &diffServiceClient{cc}
}
-func (c *diffClient) CommitDiff(ctx context.Context, in *CommitDiffRequest, opts ...grpc.CallOption) (Diff_CommitDiffClient, error) {
- stream, err := grpc.NewClientStream(ctx, &_Diff_serviceDesc.Streams[0], c.cc, "/gitaly.Diff/CommitDiff", opts...)
+func (c *diffServiceClient) CommitDiff(ctx context.Context, in *CommitDiffRequest, opts ...grpc.CallOption) (DiffService_CommitDiffClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_DiffService_serviceDesc.Streams[0], c.cc, "/gitaly.DiffService/CommitDiff", opts...)
if err != nil {
return nil, err
}
- x := &diffCommitDiffClient{stream}
+ x := &diffServiceCommitDiffClient{stream}
if err := x.ClientStream.SendMsg(in); err != nil {
return nil, err
}
@@ -167,16 +308,16 @@ func (c *diffClient) CommitDiff(ctx context.Context, in *CommitDiffRequest, opts
return x, nil
}
-type Diff_CommitDiffClient interface {
+type DiffService_CommitDiffClient interface {
Recv() (*CommitDiffResponse, error)
grpc.ClientStream
}
-type diffCommitDiffClient struct {
+type diffServiceCommitDiffClient struct {
grpc.ClientStream
}
-func (x *diffCommitDiffClient) Recv() (*CommitDiffResponse, error) {
+func (x *diffServiceCommitDiffClient) Recv() (*CommitDiffResponse, error) {
m := new(CommitDiffResponse)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
@@ -184,75 +325,145 @@ func (x *diffCommitDiffClient) Recv() (*CommitDiffResponse, error) {
return m, nil
}
-// Server API for Diff service
+func (c *diffServiceClient) CommitDelta(ctx context.Context, in *CommitDeltaRequest, opts ...grpc.CallOption) (DiffService_CommitDeltaClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_DiffService_serviceDesc.Streams[1], c.cc, "/gitaly.DiffService/CommitDelta", opts...)
+ if err != nil {
+ return nil, err
+ }
+ x := &diffServiceCommitDeltaClient{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 DiffService_CommitDeltaClient interface {
+ Recv() (*CommitDeltaResponse, error)
+ grpc.ClientStream
+}
+
+type diffServiceCommitDeltaClient struct {
+ grpc.ClientStream
+}
+
+func (x *diffServiceCommitDeltaClient) Recv() (*CommitDeltaResponse, error) {
+ m := new(CommitDeltaResponse)
+ if err := x.ClientStream.RecvMsg(m); err != nil {
+ return nil, err
+ }
+ return m, nil
+}
+
+// Server API for DiffService service
-type DiffServer interface {
- // Returns stream of CommitDiffResponse: 1 per changed file
- CommitDiff(*CommitDiffRequest, Diff_CommitDiffServer) error
+type DiffServiceServer interface {
+ // Returns stream of CommitDiffResponse with patches chunked over messages
+ CommitDiff(*CommitDiffRequest, DiffService_CommitDiffServer) error
+ // Return a stream so we can divide the response in chunks of deltas
+ CommitDelta(*CommitDeltaRequest, DiffService_CommitDeltaServer) error
}
-func RegisterDiffServer(s *grpc.Server, srv DiffServer) {
- s.RegisterService(&_Diff_serviceDesc, srv)
+func RegisterDiffServiceServer(s *grpc.Server, srv DiffServiceServer) {
+ s.RegisterService(&_DiffService_serviceDesc, srv)
}
-func _Diff_CommitDiff_Handler(srv interface{}, stream grpc.ServerStream) error {
+func _DiffService_CommitDiff_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(CommitDiffRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
- return srv.(DiffServer).CommitDiff(m, &diffCommitDiffServer{stream})
+ return srv.(DiffServiceServer).CommitDiff(m, &diffServiceCommitDiffServer{stream})
}
-type Diff_CommitDiffServer interface {
+type DiffService_CommitDiffServer interface {
Send(*CommitDiffResponse) error
grpc.ServerStream
}
-type diffCommitDiffServer struct {
+type diffServiceCommitDiffServer struct {
grpc.ServerStream
}
-func (x *diffCommitDiffServer) Send(m *CommitDiffResponse) error {
+func (x *diffServiceCommitDiffServer) Send(m *CommitDiffResponse) error {
return x.ServerStream.SendMsg(m)
}
-var _Diff_serviceDesc = grpc.ServiceDesc{
- ServiceName: "gitaly.Diff",
- HandlerType: (*DiffServer)(nil),
+func _DiffService_CommitDelta_Handler(srv interface{}, stream grpc.ServerStream) error {
+ m := new(CommitDeltaRequest)
+ if err := stream.RecvMsg(m); err != nil {
+ return err
+ }
+ return srv.(DiffServiceServer).CommitDelta(m, &diffServiceCommitDeltaServer{stream})
+}
+
+type DiffService_CommitDeltaServer interface {
+ Send(*CommitDeltaResponse) error
+ grpc.ServerStream
+}
+
+type diffServiceCommitDeltaServer struct {
+ grpc.ServerStream
+}
+
+func (x *diffServiceCommitDeltaServer) Send(m *CommitDeltaResponse) error {
+ return x.ServerStream.SendMsg(m)
+}
+
+var _DiffService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "gitaly.DiffService",
+ HandlerType: (*DiffServiceServer)(nil),
Methods: []grpc.MethodDesc{},
Streams: []grpc.StreamDesc{
{
StreamName: "CommitDiff",
- Handler: _Diff_CommitDiff_Handler,
+ Handler: _DiffService_CommitDiff_Handler,
+ ServerStreams: true,
+ },
+ {
+ StreamName: "CommitDelta",
+ Handler: _DiffService_CommitDelta_Handler,
ServerStreams: true,
},
},
Metadata: "diff.proto",
}
-func init() { proto.RegisterFile("diff.proto", fileDescriptor1) }
-
-var fileDescriptor1 = []byte{
- // 328 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x91, 0xdd, 0x4a, 0xf3, 0x30,
- 0x18, 0xc7, 0xdf, 0xec, 0xa3, 0xeb, 0x9e, 0xb7, 0x2a, 0x46, 0xd0, 0x6e, 0x22, 0x94, 0x21, 0xd2,
- 0xa3, 0x21, 0xf3, 0x12, 0x26, 0xc8, 0x0e, 0x44, 0xc9, 0x0d, 0x94, 0x6c, 0x49, 0xd7, 0x60, 0xdb,
- 0xa7, 0xa6, 0x19, 0x65, 0x17, 0xe2, 0x25, 0x7a, 0x1f, 0xd2, 0xc4, 0xcd, 0x82, 0x1e, 0xe6, 0xf7,
- 0xfb, 0x27, 0x79, 0x3e, 0x00, 0x84, 0x4a, 0xd3, 0x79, 0xa5, 0xd1, 0x20, 0xf5, 0xb6, 0xca, 0xf0,
- 0x7c, 0x3f, 0x0d, 0xea, 0x8c, 0x6b, 0x29, 0x1c, 0x9d, 0x7d, 0x10, 0x38, 0x5f, 0x62, 0x51, 0x28,
- 0xf3, 0xa8, 0xd2, 0x94, 0xc9, 0xf7, 0x9d, 0xac, 0x0d, 0x5d, 0x00, 0x68, 0x59, 0x61, 0xad, 0x0c,
- 0xea, 0x7d, 0x48, 0x22, 0x12, 0xff, 0x5f, 0xd0, 0xb9, 0x7b, 0x60, 0xce, 0x8e, 0x86, 0x75, 0x52,
- 0xf4, 0x16, 0x4e, 0x73, 0x99, 0x9a, 0x64, 0x63, 0x5f, 0x4b, 0x94, 0x08, 0x7b, 0x11, 0x89, 0xc7,
- 0x2c, 0x68, 0xa9, 0xfb, 0x62, 0x25, 0xe8, 0x1d, 0x9c, 0x69, 0xb5, 0xcd, 0xba, 0xb1, 0xbe, 0x8d,
- 0x9d, 0x58, 0x7c, 0xc8, 0xcd, 0x3e, 0x09, 0xd0, 0x6e, 0x5d, 0x75, 0x85, 0x65, 0x2d, 0xe9, 0x35,
- 0x8c, 0x53, 0x8d, 0x45, 0x52, 0x71, 0x93, 0xd9, 0xba, 0x02, 0xe6, 0xb7, 0xe0, 0x95, 0x9b, 0x8c,
- 0x5e, 0xc1, 0xc8, 0xa0, 0x53, 0x3d, 0xab, 0x3c, 0x83, 0x07, 0x61, 0x6f, 0x1d, 0x3f, 0xf3, 0xda,
- 0xe3, 0x4a, 0xd0, 0x0b, 0x18, 0x1a, 0x6c, 0xf1, 0xc0, 0xe2, 0x81, 0xc1, 0x95, 0xa0, 0x13, 0xf0,
- 0x31, 0x17, 0x49, 0x81, 0x42, 0x86, 0xc3, 0x88, 0xc4, 0x43, 0x36, 0xc2, 0x5c, 0x3c, 0xa3, 0x90,
- 0xad, 0x2a, 0x65, 0xe3, 0x94, 0xe7, 0x54, 0x29, 0x1b, 0xab, 0x2e, 0xc1, 0x5b, 0xab, 0x92, 0xeb,
- 0x7d, 0x38, 0x8a, 0x48, 0xec, 0xb3, 0xef, 0x13, 0xbd, 0x01, 0xd0, 0xbc, 0x49, 0x36, 0xd9, 0xae,
- 0x7c, 0xab, 0x43, 0x3f, 0xea, 0xc7, 0x01, 0x1b, 0x6b, 0xde, 0x2c, 0x2d, 0x58, 0xbc, 0xc0, 0xa0,
- 0x6d, 0x90, 0x3e, 0x01, 0xfc, 0xb4, 0x4b, 0x27, 0x87, 0x59, 0xff, 0x5a, 0xcd, 0x74, 0xfa, 0x97,
- 0x72, 0xd3, 0x99, 0xfd, 0xbb, 0x27, 0x6b, 0xcf, 0xee, 0xf5, 0xe1, 0x2b, 0x00, 0x00, 0xff, 0xff,
- 0xca, 0xe9, 0x71, 0x86, 0xfb, 0x01, 0x00, 0x00,
+func init() { proto.RegisterFile("diff.proto", fileDescriptor3) }
+
+var fileDescriptor3 = []byte{
+ // 481 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x94, 0x4f, 0x8e, 0xd3, 0x30,
+ 0x14, 0xc6, 0x71, 0xdb, 0xa4, 0xe9, 0x6b, 0xf8, 0xe7, 0xa2, 0xc1, 0xd3, 0xd9, 0x44, 0x11, 0x42,
+ 0x91, 0x90, 0x2a, 0x54, 0x36, 0xac, 0x99, 0x91, 0x50, 0x47, 0x42, 0x8c, 0xc2, 0x82, 0x65, 0xe4,
+ 0x89, 0x9d, 0xc6, 0x52, 0x1a, 0x07, 0xc7, 0x10, 0xf5, 0x1e, 0x9c, 0x80, 0x0d, 0x1b, 0xae, 0xc5,
+ 0x3d, 0x90, 0xed, 0x4e, 0x9a, 0x41, 0x3d, 0xc0, 0x2c, 0xfd, 0xfd, 0x3e, 0xbf, 0x7e, 0x7e, 0xef,
+ 0x35, 0x00, 0x4c, 0x14, 0xc5, 0xaa, 0x51, 0x52, 0x4b, 0xec, 0x6f, 0x85, 0xa6, 0xd5, 0x7e, 0x19,
+ 0xb6, 0x25, 0x55, 0x9c, 0x39, 0x35, 0xfe, 0x8b, 0xe0, 0xf9, 0xa5, 0xdc, 0xed, 0x84, 0xbe, 0x12,
+ 0x45, 0x91, 0xf2, 0x6f, 0xdf, 0x79, 0xab, 0xf1, 0x1a, 0x40, 0xf1, 0x46, 0xb6, 0x42, 0x4b, 0xb5,
+ 0x27, 0x28, 0x42, 0xc9, 0x7c, 0x8d, 0x57, 0xae, 0xc0, 0x2a, 0xed, 0x49, 0x3a, 0x70, 0xe1, 0x57,
+ 0xf0, 0xa4, 0xe2, 0x85, 0xce, 0x72, 0x5b, 0x2d, 0x13, 0x8c, 0x8c, 0x22, 0x94, 0xcc, 0xd2, 0xd0,
+ 0xa8, 0xee, 0x27, 0x36, 0x0c, 0xbf, 0x86, 0xa7, 0x4a, 0x6c, 0xcb, 0xa1, 0x6d, 0x6c, 0x6d, 0x8f,
+ 0xad, 0xdc, 0xfb, 0xde, 0x03, 0x11, 0xdb, 0x5a, 0x2a, 0x9e, 0x75, 0xa5, 0xd0, 0xbc, 0x6d, 0x68,
+ 0xce, 0xb3, 0xbc, 0xa4, 0xf5, 0x96, 0x93, 0x49, 0x84, 0x92, 0x20, 0x3d, 0x73, 0xfc, 0x6b, 0x8f,
+ 0x2f, 0x2d, 0xc5, 0x2f, 0xc0, 0x6b, 0xa8, 0x2e, 0x5b, 0xe2, 0x45, 0xe3, 0x24, 0x4c, 0xdd, 0x21,
+ 0xfe, 0x39, 0x02, 0x3c, 0x7c, 0x67, 0xdb, 0xc8, 0xba, 0xe5, 0xf8, 0x02, 0x66, 0x85, 0x92, 0xbb,
+ 0xcc, 0x98, 0xec, 0x3b, 0xc3, 0x34, 0x30, 0xc2, 0x0d, 0xd5, 0x25, 0x7e, 0x09, 0x53, 0x2d, 0x1d,
+ 0x1a, 0x59, 0xe4, 0x6b, 0x79, 0x07, 0xec, 0xad, 0x3e, 0xbc, 0x6f, 0x8e, 0x1b, 0x86, 0x17, 0xe0,
+ 0x69, 0x69, 0xe4, 0x89, 0x95, 0x27, 0x5a, 0x6e, 0x18, 0x3e, 0x87, 0x40, 0x56, 0x2c, 0xdb, 0x49,
+ 0xc6, 0x89, 0x17, 0xa1, 0xc4, 0x4b, 0xa7, 0xb2, 0x62, 0x9f, 0x24, 0xe3, 0x06, 0xd5, 0xbc, 0x73,
+ 0xc8, 0x77, 0xa8, 0xe6, 0x9d, 0x45, 0x67, 0xe0, 0xdf, 0x8a, 0x9a, 0xaa, 0x3d, 0x99, 0xda, 0xe7,
+ 0x1e, 0x4e, 0xa6, 0xcd, 0x8a, 0x76, 0x26, 0x55, 0x5e, 0x66, 0x8c, 0x6a, 0x4a, 0x66, 0x36, 0x5b,
+ 0xa8, 0x68, 0x77, 0x63, 0xc4, 0x2b, 0xaa, 0x29, 0x8e, 0x20, 0xe4, 0x35, 0xcb, 0x64, 0xe1, 0x8c,
+ 0x04, 0x6c, 0x0d, 0xe0, 0x35, 0xfb, 0x5c, 0x58, 0xd7, 0xf5, 0x24, 0x08, 0x9e, 0xcd, 0xe2, 0x3f,
+ 0xa8, 0x6f, 0x0b, 0xaf, 0x34, 0x7d, 0x38, 0xf3, 0xef, 0xa7, 0x38, 0x19, 0x4e, 0xf1, 0x37, 0x82,
+ 0xf9, 0x20, 0xee, 0xc3, 0x1d, 0x5f, 0xfc, 0x01, 0x16, 0xf7, 0xfa, 0x7a, 0xd8, 0xb7, 0x37, 0xe0,
+ 0x33, 0x23, 0xb4, 0x04, 0x45, 0xe3, 0x64, 0xbe, 0x5e, 0xdc, 0x35, 0x75, 0x68, 0x3e, 0x58, 0xd6,
+ 0xbf, 0x10, 0xcc, 0xcd, 0xb6, 0x7e, 0xe1, 0xea, 0x87, 0xc8, 0x39, 0xfe, 0x08, 0x70, 0x5c, 0x61,
+ 0x7c, 0xfe, 0xdf, 0xd5, 0xe3, 0xdf, 0x77, 0xb9, 0x3c, 0x85, 0x5c, 0x82, 0xf8, 0xd1, 0x5b, 0x84,
+ 0xaf, 0xef, 0x77, 0x71, 0x79, 0x2a, 0xc4, 0xa1, 0xd4, 0xc5, 0x49, 0x76, 0xac, 0x75, 0xeb, 0xdb,
+ 0xef, 0xc8, 0xbb, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x4b, 0xf5, 0xb7, 0x6e, 0x6b, 0x04, 0x00,
+ 0x00,
}
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/helper/stream.go b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/helper/stream.go
new file mode 100644
index 0000000..77cd157
--- /dev/null
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/helper/stream.go
@@ -0,0 +1,44 @@
+package helper
+
+import (
+ "io"
+)
+
+// NewReceiveReader turns receiver into an io.Reader. Errors from the
+// receiver function are passed on unmodified. This means receiver should
+// emit io.EOF when done.
+func NewReceiveReader(receiver func() ([]byte, error)) io.Reader {
+ return &receiveReader{receiver: receiver}
+}
+
+type receiveReader struct {
+ receiver func() ([]byte, error)
+ data []byte
+ err error
+}
+
+func (rr *receiveReader) Read(p []byte) (int, error) {
+ if len(rr.data) == 0 {
+ rr.data, rr.err = rr.receiver()
+ }
+ n := copy(p, rr.data)
+ rr.data = rr.data[n:]
+ if len(rr.data) == 0 {
+ return n, rr.err
+ }
+ return n, nil
+}
+
+// NewSendWriter turns sender into an io.Writer. The number of 'bytes
+// written' reported back is always len(p).
+func NewSendWriter(sender func(p []byte) error) io.Writer {
+ return &sendWriter{sender: sender}
+}
+
+type sendWriter struct {
+ sender func([]byte) error
+}
+
+func (sw *sendWriter) Write(p []byte) (int, error) {
+ return len(p), sw.sender(p)
+}
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/notifications.pb.go b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/notifications.pb.go
index 7ecc1b4..5d2e3f5 100644
--- a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/notifications.pb.go
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/notifications.pb.go
@@ -1,6 +1,5 @@
-// Code generated by protoc-gen-go.
+// Code generated by protoc-gen-go. DO NOT EDIT.
// source: notifications.proto
-// DO NOT EDIT!
package gitaly
@@ -25,7 +24,7 @@ type PostReceiveRequest struct {
func (m *PostReceiveRequest) Reset() { *m = PostReceiveRequest{} }
func (m *PostReceiveRequest) String() string { return proto.CompactTextString(m) }
func (*PostReceiveRequest) ProtoMessage() {}
-func (*PostReceiveRequest) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{0} }
+func (*PostReceiveRequest) Descriptor() ([]byte, []int) { return fileDescriptor4, []int{0} }
func (m *PostReceiveRequest) GetRepository() *Repository {
if m != nil {
@@ -40,7 +39,7 @@ type PostReceiveResponse struct {
func (m *PostReceiveResponse) Reset() { *m = PostReceiveResponse{} }
func (m *PostReceiveResponse) String() string { return proto.CompactTextString(m) }
func (*PostReceiveResponse) ProtoMessage() {}
-func (*PostReceiveResponse) Descriptor() ([]byte, []int) { return fileDescriptor2, []int{1} }
+func (*PostReceiveResponse) Descriptor() ([]byte, []int) { return fileDescriptor4, []int{1} }
func init() {
proto.RegisterType((*PostReceiveRequest)(nil), "gitaly.PostReceiveRequest")
@@ -55,74 +54,74 @@ var _ grpc.ClientConn
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4
-// Client API for Notifications service
+// Client API for NotificationService service
-type NotificationsClient interface {
+type NotificationServiceClient interface {
PostReceive(ctx context.Context, in *PostReceiveRequest, opts ...grpc.CallOption) (*PostReceiveResponse, error)
}
-type notificationsClient struct {
+type notificationServiceClient struct {
cc *grpc.ClientConn
}
-func NewNotificationsClient(cc *grpc.ClientConn) NotificationsClient {
- return &notificationsClient{cc}
+func NewNotificationServiceClient(cc *grpc.ClientConn) NotificationServiceClient {
+ return &notificationServiceClient{cc}
}
-func (c *notificationsClient) PostReceive(ctx context.Context, in *PostReceiveRequest, opts ...grpc.CallOption) (*PostReceiveResponse, error) {
+func (c *notificationServiceClient) PostReceive(ctx context.Context, in *PostReceiveRequest, opts ...grpc.CallOption) (*PostReceiveResponse, error) {
out := new(PostReceiveResponse)
- err := grpc.Invoke(ctx, "/gitaly.Notifications/PostReceive", in, out, c.cc, opts...)
+ err := grpc.Invoke(ctx, "/gitaly.NotificationService/PostReceive", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
-// Server API for Notifications service
+// Server API for NotificationService service
-type NotificationsServer interface {
+type NotificationServiceServer interface {
PostReceive(context.Context, *PostReceiveRequest) (*PostReceiveResponse, error)
}
-func RegisterNotificationsServer(s *grpc.Server, srv NotificationsServer) {
- s.RegisterService(&_Notifications_serviceDesc, srv)
+func RegisterNotificationServiceServer(s *grpc.Server, srv NotificationServiceServer) {
+ s.RegisterService(&_NotificationService_serviceDesc, srv)
}
-func _Notifications_PostReceive_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _NotificationService_PostReceive_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(PostReceiveRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
- return srv.(NotificationsServer).PostReceive(ctx, in)
+ return srv.(NotificationServiceServer).PostReceive(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
- FullMethod: "/gitaly.Notifications/PostReceive",
+ FullMethod: "/gitaly.NotificationService/PostReceive",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(NotificationsServer).PostReceive(ctx, req.(*PostReceiveRequest))
+ return srv.(NotificationServiceServer).PostReceive(ctx, req.(*PostReceiveRequest))
}
return interceptor(ctx, in, info, handler)
}
-var _Notifications_serviceDesc = grpc.ServiceDesc{
- ServiceName: "gitaly.Notifications",
- HandlerType: (*NotificationsServer)(nil),
+var _NotificationService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "gitaly.NotificationService",
+ HandlerType: (*NotificationServiceServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "PostReceive",
- Handler: _Notifications_PostReceive_Handler,
+ Handler: _NotificationService_PostReceive_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "notifications.proto",
}
-func init() { proto.RegisterFile("notifications.proto", fileDescriptor2) }
+func init() { proto.RegisterFile("notifications.proto", fileDescriptor4) }
-var fileDescriptor2 = []byte{
- // 163 bytes of a gzipped FileDescriptorProto
+var fileDescriptor4 = []byte{
+ // 170 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xce, 0xcb, 0x2f, 0xc9,
0x4c, 0xcb, 0x4c, 0x4e, 0x2c, 0xc9, 0xcc, 0xcf, 0x2b, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17,
0x62, 0x4b, 0xcf, 0x2c, 0x49, 0xcc, 0xa9, 0x94, 0xe2, 0x29, 0xce, 0x48, 0x2c, 0x4a, 0x4d, 0x81,
@@ -130,8 +129,8 @@ var fileDescriptor2 = []byte{
0x06, 0xa5, 0x16, 0x96, 0xa6, 0x16, 0x97, 0x08, 0x19, 0x71, 0x71, 0x15, 0xa5, 0x16, 0xe4, 0x17,
0x67, 0x96, 0xe4, 0x17, 0x55, 0x4a, 0x30, 0x2a, 0x30, 0x6a, 0x70, 0x1b, 0x09, 0xe9, 0x41, 0x0c,
0xd0, 0x0b, 0x82, 0xcb, 0x04, 0x21, 0xa9, 0x52, 0x12, 0xe5, 0x12, 0x46, 0x31, 0xa9, 0xb8, 0x20,
- 0x3f, 0xaf, 0x38, 0xd5, 0x28, 0x92, 0x8b, 0xd7, 0x0f, 0xd9, 0x35, 0x42, 0x1e, 0x5c, 0xdc, 0x48,
- 0xea, 0x84, 0xa4, 0x60, 0xc6, 0x62, 0x3a, 0x43, 0x4a, 0x1a, 0xab, 0x1c, 0xc4, 0x60, 0x25, 0x86,
- 0x24, 0x36, 0xb0, 0x17, 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xf2, 0x5e, 0x1f, 0x64, 0xef,
- 0x00, 0x00, 0x00,
+ 0x3f, 0xaf, 0x38, 0xd5, 0x28, 0x9e, 0x4b, 0xd8, 0x0f, 0xc9, 0x35, 0xc1, 0xa9, 0x45, 0x65, 0x99,
+ 0xc9, 0xa9, 0x42, 0x1e, 0x5c, 0xdc, 0x48, 0xaa, 0x85, 0xa4, 0x60, 0x86, 0x63, 0x3a, 0x46, 0x4a,
+ 0x1a, 0xab, 0x1c, 0xc4, 0x78, 0x25, 0x86, 0x24, 0x36, 0xb0, 0x47, 0x8c, 0x01, 0x01, 0x00, 0x00,
+ 0xff, 0xff, 0x98, 0xea, 0xcc, 0xff, 0xf5, 0x00, 0x00, 0x00,
}
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/ref.pb.go b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/ref.pb.go
index 41165c0..1ce9b0f 100644
--- a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/ref.pb.go
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/ref.pb.go
@@ -1,6 +1,5 @@
-// Code generated by protoc-gen-go.
+// Code generated by protoc-gen-go. DO NOT EDIT.
// source: ref.proto
-// DO NOT EDIT!
package gitaly
@@ -42,7 +41,7 @@ func (x FindLocalBranchesRequest_SortBy) String() string {
return proto.EnumName(FindLocalBranchesRequest_SortBy_name, int32(x))
}
func (FindLocalBranchesRequest_SortBy) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor3, []int{8, 0}
+ return fileDescriptor5, []int{8, 0}
}
type FindDefaultBranchNameRequest struct {
@@ -52,7 +51,7 @@ type FindDefaultBranchNameRequest struct {
func (m *FindDefaultBranchNameRequest) Reset() { *m = FindDefaultBranchNameRequest{} }
func (m *FindDefaultBranchNameRequest) String() string { return proto.CompactTextString(m) }
func (*FindDefaultBranchNameRequest) ProtoMessage() {}
-func (*FindDefaultBranchNameRequest) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{0} }
+func (*FindDefaultBranchNameRequest) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{0} }
func (m *FindDefaultBranchNameRequest) GetRepository() *Repository {
if m != nil {
@@ -68,7 +67,7 @@ type FindDefaultBranchNameResponse struct {
func (m *FindDefaultBranchNameResponse) Reset() { *m = FindDefaultBranchNameResponse{} }
func (m *FindDefaultBranchNameResponse) String() string { return proto.CompactTextString(m) }
func (*FindDefaultBranchNameResponse) ProtoMessage() {}
-func (*FindDefaultBranchNameResponse) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{1} }
+func (*FindDefaultBranchNameResponse) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{1} }
func (m *FindDefaultBranchNameResponse) GetName() []byte {
if m != nil {
@@ -84,7 +83,7 @@ type FindAllBranchNamesRequest struct {
func (m *FindAllBranchNamesRequest) Reset() { *m = FindAllBranchNamesRequest{} }
func (m *FindAllBranchNamesRequest) String() string { return proto.CompactTextString(m) }
func (*FindAllBranchNamesRequest) ProtoMessage() {}
-func (*FindAllBranchNamesRequest) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{2} }
+func (*FindAllBranchNamesRequest) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{2} }
func (m *FindAllBranchNamesRequest) GetRepository() *Repository {
if m != nil {
@@ -100,7 +99,7 @@ type FindAllBranchNamesResponse struct {
func (m *FindAllBranchNamesResponse) Reset() { *m = FindAllBranchNamesResponse{} }
func (m *FindAllBranchNamesResponse) String() string { return proto.CompactTextString(m) }
func (*FindAllBranchNamesResponse) ProtoMessage() {}
-func (*FindAllBranchNamesResponse) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{3} }
+func (*FindAllBranchNamesResponse) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{3} }
func (m *FindAllBranchNamesResponse) GetNames() [][]byte {
if m != nil {
@@ -116,7 +115,7 @@ type FindAllTagNamesRequest struct {
func (m *FindAllTagNamesRequest) Reset() { *m = FindAllTagNamesRequest{} }
func (m *FindAllTagNamesRequest) String() string { return proto.CompactTextString(m) }
func (*FindAllTagNamesRequest) ProtoMessage() {}
-func (*FindAllTagNamesRequest) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{4} }
+func (*FindAllTagNamesRequest) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{4} }
func (m *FindAllTagNamesRequest) GetRepository() *Repository {
if m != nil {
@@ -132,7 +131,7 @@ type FindAllTagNamesResponse struct {
func (m *FindAllTagNamesResponse) Reset() { *m = FindAllTagNamesResponse{} }
func (m *FindAllTagNamesResponse) String() string { return proto.CompactTextString(m) }
func (*FindAllTagNamesResponse) ProtoMessage() {}
-func (*FindAllTagNamesResponse) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{5} }
+func (*FindAllTagNamesResponse) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{5} }
func (m *FindAllTagNamesResponse) GetNames() [][]byte {
if m != nil {
@@ -152,7 +151,7 @@ type FindRefNameRequest struct {
func (m *FindRefNameRequest) Reset() { *m = FindRefNameRequest{} }
func (m *FindRefNameRequest) String() string { return proto.CompactTextString(m) }
func (*FindRefNameRequest) ProtoMessage() {}
-func (*FindRefNameRequest) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{6} }
+func (*FindRefNameRequest) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{6} }
func (m *FindRefNameRequest) GetRepository() *Repository {
if m != nil {
@@ -183,7 +182,7 @@ type FindRefNameResponse struct {
func (m *FindRefNameResponse) Reset() { *m = FindRefNameResponse{} }
func (m *FindRefNameResponse) String() string { return proto.CompactTextString(m) }
func (*FindRefNameResponse) ProtoMessage() {}
-func (*FindRefNameResponse) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{7} }
+func (*FindRefNameResponse) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{7} }
func (m *FindRefNameResponse) GetName() []byte {
if m != nil {
@@ -200,7 +199,7 @@ type FindLocalBranchesRequest struct {
func (m *FindLocalBranchesRequest) Reset() { *m = FindLocalBranchesRequest{} }
func (m *FindLocalBranchesRequest) String() string { return proto.CompactTextString(m) }
func (*FindLocalBranchesRequest) ProtoMessage() {}
-func (*FindLocalBranchesRequest) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{8} }
+func (*FindLocalBranchesRequest) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{8} }
func (m *FindLocalBranchesRequest) GetRepository() *Repository {
if m != nil {
@@ -223,7 +222,7 @@ type FindLocalBranchesResponse struct {
func (m *FindLocalBranchesResponse) Reset() { *m = FindLocalBranchesResponse{} }
func (m *FindLocalBranchesResponse) String() string { return proto.CompactTextString(m) }
func (*FindLocalBranchesResponse) ProtoMessage() {}
-func (*FindLocalBranchesResponse) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{9} }
+func (*FindLocalBranchesResponse) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{9} }
func (m *FindLocalBranchesResponse) GetBranches() []*FindLocalBranchResponse {
if m != nil {
@@ -243,7 +242,7 @@ type FindLocalBranchResponse struct {
func (m *FindLocalBranchResponse) Reset() { *m = FindLocalBranchResponse{} }
func (m *FindLocalBranchResponse) String() string { return proto.CompactTextString(m) }
func (*FindLocalBranchResponse) ProtoMessage() {}
-func (*FindLocalBranchResponse) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{10} }
+func (*FindLocalBranchResponse) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{10} }
func (m *FindLocalBranchResponse) GetName() []byte {
if m != nil {
@@ -289,7 +288,7 @@ type FindLocalBranchCommitAuthor struct {
func (m *FindLocalBranchCommitAuthor) Reset() { *m = FindLocalBranchCommitAuthor{} }
func (m *FindLocalBranchCommitAuthor) String() string { return proto.CompactTextString(m) }
func (*FindLocalBranchCommitAuthor) ProtoMessage() {}
-func (*FindLocalBranchCommitAuthor) Descriptor() ([]byte, []int) { return fileDescriptor3, []int{11} }
+func (*FindLocalBranchCommitAuthor) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{11} }
func (m *FindLocalBranchCommitAuthor) GetName() []byte {
if m != nil {
@@ -336,41 +335,41 @@ var _ grpc.ClientConn
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4
-// Client API for Ref service
+// Client API for RefService service
-type RefClient interface {
+type RefServiceClient interface {
FindDefaultBranchName(ctx context.Context, in *FindDefaultBranchNameRequest, opts ...grpc.CallOption) (*FindDefaultBranchNameResponse, error)
- FindAllBranchNames(ctx context.Context, in *FindAllBranchNamesRequest, opts ...grpc.CallOption) (Ref_FindAllBranchNamesClient, error)
- FindAllTagNames(ctx context.Context, in *FindAllTagNamesRequest, opts ...grpc.CallOption) (Ref_FindAllTagNamesClient, error)
+ FindAllBranchNames(ctx context.Context, in *FindAllBranchNamesRequest, opts ...grpc.CallOption) (RefService_FindAllBranchNamesClient, error)
+ FindAllTagNames(ctx context.Context, in *FindAllTagNamesRequest, opts ...grpc.CallOption) (RefService_FindAllTagNamesClient, error)
// Find a Ref matching the given constraints. Response may be empty.
FindRefName(ctx context.Context, in *FindRefNameRequest, opts ...grpc.CallOption) (*FindRefNameResponse, error)
// Return a stream so we can divide the response in chunks of branches
- FindLocalBranches(ctx context.Context, in *FindLocalBranchesRequest, opts ...grpc.CallOption) (Ref_FindLocalBranchesClient, error)
+ FindLocalBranches(ctx context.Context, in *FindLocalBranchesRequest, opts ...grpc.CallOption) (RefService_FindLocalBranchesClient, error)
}
-type refClient struct {
+type refServiceClient struct {
cc *grpc.ClientConn
}
-func NewRefClient(cc *grpc.ClientConn) RefClient {
- return &refClient{cc}
+func NewRefServiceClient(cc *grpc.ClientConn) RefServiceClient {
+ return &refServiceClient{cc}
}
-func (c *refClient) FindDefaultBranchName(ctx context.Context, in *FindDefaultBranchNameRequest, opts ...grpc.CallOption) (*FindDefaultBranchNameResponse, error) {
+func (c *refServiceClient) FindDefaultBranchName(ctx context.Context, in *FindDefaultBranchNameRequest, opts ...grpc.CallOption) (*FindDefaultBranchNameResponse, error) {
out := new(FindDefaultBranchNameResponse)
- err := grpc.Invoke(ctx, "/gitaly.Ref/FindDefaultBranchName", in, out, c.cc, opts...)
+ err := grpc.Invoke(ctx, "/gitaly.RefService/FindDefaultBranchName", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
-func (c *refClient) FindAllBranchNames(ctx context.Context, in *FindAllBranchNamesRequest, opts ...grpc.CallOption) (Ref_FindAllBranchNamesClient, error) {
- stream, err := grpc.NewClientStream(ctx, &_Ref_serviceDesc.Streams[0], c.cc, "/gitaly.Ref/FindAllBranchNames", opts...)
+func (c *refServiceClient) FindAllBranchNames(ctx context.Context, in *FindAllBranchNamesRequest, opts ...grpc.CallOption) (RefService_FindAllBranchNamesClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_RefService_serviceDesc.Streams[0], c.cc, "/gitaly.RefService/FindAllBranchNames", opts...)
if err != nil {
return nil, err
}
- x := &refFindAllBranchNamesClient{stream}
+ x := &refServiceFindAllBranchNamesClient{stream}
if err := x.ClientStream.SendMsg(in); err != nil {
return nil, err
}
@@ -380,16 +379,16 @@ func (c *refClient) FindAllBranchNames(ctx context.Context, in *FindAllBranchNam
return x, nil
}
-type Ref_FindAllBranchNamesClient interface {
+type RefService_FindAllBranchNamesClient interface {
Recv() (*FindAllBranchNamesResponse, error)
grpc.ClientStream
}
-type refFindAllBranchNamesClient struct {
+type refServiceFindAllBranchNamesClient struct {
grpc.ClientStream
}
-func (x *refFindAllBranchNamesClient) Recv() (*FindAllBranchNamesResponse, error) {
+func (x *refServiceFindAllBranchNamesClient) Recv() (*FindAllBranchNamesResponse, error) {
m := new(FindAllBranchNamesResponse)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
@@ -397,12 +396,12 @@ func (x *refFindAllBranchNamesClient) Recv() (*FindAllBranchNamesResponse, error
return m, nil
}
-func (c *refClient) FindAllTagNames(ctx context.Context, in *FindAllTagNamesRequest, opts ...grpc.CallOption) (Ref_FindAllTagNamesClient, error) {
- stream, err := grpc.NewClientStream(ctx, &_Ref_serviceDesc.Streams[1], c.cc, "/gitaly.Ref/FindAllTagNames", opts...)
+func (c *refServiceClient) FindAllTagNames(ctx context.Context, in *FindAllTagNamesRequest, opts ...grpc.CallOption) (RefService_FindAllTagNamesClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_RefService_serviceDesc.Streams[1], c.cc, "/gitaly.RefService/FindAllTagNames", opts...)
if err != nil {
return nil, err
}
- x := &refFindAllTagNamesClient{stream}
+ x := &refServiceFindAllTagNamesClient{stream}
if err := x.ClientStream.SendMsg(in); err != nil {
return nil, err
}
@@ -412,16 +411,16 @@ func (c *refClient) FindAllTagNames(ctx context.Context, in *FindAllTagNamesRequ
return x, nil
}
-type Ref_FindAllTagNamesClient interface {
+type RefService_FindAllTagNamesClient interface {
Recv() (*FindAllTagNamesResponse, error)
grpc.ClientStream
}
-type refFindAllTagNamesClient struct {
+type refServiceFindAllTagNamesClient struct {
grpc.ClientStream
}
-func (x *refFindAllTagNamesClient) Recv() (*FindAllTagNamesResponse, error) {
+func (x *refServiceFindAllTagNamesClient) Recv() (*FindAllTagNamesResponse, error) {
m := new(FindAllTagNamesResponse)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
@@ -429,21 +428,21 @@ func (x *refFindAllTagNamesClient) Recv() (*FindAllTagNamesResponse, error) {
return m, nil
}
-func (c *refClient) FindRefName(ctx context.Context, in *FindRefNameRequest, opts ...grpc.CallOption) (*FindRefNameResponse, error) {
+func (c *refServiceClient) FindRefName(ctx context.Context, in *FindRefNameRequest, opts ...grpc.CallOption) (*FindRefNameResponse, error) {
out := new(FindRefNameResponse)
- err := grpc.Invoke(ctx, "/gitaly.Ref/FindRefName", in, out, c.cc, opts...)
+ err := grpc.Invoke(ctx, "/gitaly.RefService/FindRefName", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
-func (c *refClient) FindLocalBranches(ctx context.Context, in *FindLocalBranchesRequest, opts ...grpc.CallOption) (Ref_FindLocalBranchesClient, error) {
- stream, err := grpc.NewClientStream(ctx, &_Ref_serviceDesc.Streams[2], c.cc, "/gitaly.Ref/FindLocalBranches", opts...)
+func (c *refServiceClient) FindLocalBranches(ctx context.Context, in *FindLocalBranchesRequest, opts ...grpc.CallOption) (RefService_FindLocalBranchesClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_RefService_serviceDesc.Streams[2], c.cc, "/gitaly.RefService/FindLocalBranches", opts...)
if err != nil {
return nil, err
}
- x := &refFindLocalBranchesClient{stream}
+ x := &refServiceFindLocalBranchesClient{stream}
if err := x.ClientStream.SendMsg(in); err != nil {
return nil, err
}
@@ -453,16 +452,16 @@ func (c *refClient) FindLocalBranches(ctx context.Context, in *FindLocalBranches
return x, nil
}
-type Ref_FindLocalBranchesClient interface {
+type RefService_FindLocalBranchesClient interface {
Recv() (*FindLocalBranchesResponse, error)
grpc.ClientStream
}
-type refFindLocalBranchesClient struct {
+type refServiceFindLocalBranchesClient struct {
grpc.ClientStream
}
-func (x *refFindLocalBranchesClient) Recv() (*FindLocalBranchesResponse, error) {
+func (x *refServiceFindLocalBranchesClient) Recv() (*FindLocalBranchesResponse, error) {
m := new(FindLocalBranchesResponse)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
@@ -470,195 +469,195 @@ func (x *refFindLocalBranchesClient) Recv() (*FindLocalBranchesResponse, error)
return m, nil
}
-// Server API for Ref service
+// Server API for RefService service
-type RefServer interface {
+type RefServiceServer interface {
FindDefaultBranchName(context.Context, *FindDefaultBranchNameRequest) (*FindDefaultBranchNameResponse, error)
- FindAllBranchNames(*FindAllBranchNamesRequest, Ref_FindAllBranchNamesServer) error
- FindAllTagNames(*FindAllTagNamesRequest, Ref_FindAllTagNamesServer) error
+ FindAllBranchNames(*FindAllBranchNamesRequest, RefService_FindAllBranchNamesServer) error
+ FindAllTagNames(*FindAllTagNamesRequest, RefService_FindAllTagNamesServer) error
// Find a Ref matching the given constraints. Response may be empty.
FindRefName(context.Context, *FindRefNameRequest) (*FindRefNameResponse, error)
// Return a stream so we can divide the response in chunks of branches
- FindLocalBranches(*FindLocalBranchesRequest, Ref_FindLocalBranchesServer) error
+ FindLocalBranches(*FindLocalBranchesRequest, RefService_FindLocalBranchesServer) error
}
-func RegisterRefServer(s *grpc.Server, srv RefServer) {
- s.RegisterService(&_Ref_serviceDesc, srv)
+func RegisterRefServiceServer(s *grpc.Server, srv RefServiceServer) {
+ s.RegisterService(&_RefService_serviceDesc, srv)
}
-func _Ref_FindDefaultBranchName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _RefService_FindDefaultBranchName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(FindDefaultBranchNameRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
- return srv.(RefServer).FindDefaultBranchName(ctx, in)
+ return srv.(RefServiceServer).FindDefaultBranchName(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
- FullMethod: "/gitaly.Ref/FindDefaultBranchName",
+ FullMethod: "/gitaly.RefService/FindDefaultBranchName",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(RefServer).FindDefaultBranchName(ctx, req.(*FindDefaultBranchNameRequest))
+ return srv.(RefServiceServer).FindDefaultBranchName(ctx, req.(*FindDefaultBranchNameRequest))
}
return interceptor(ctx, in, info, handler)
}
-func _Ref_FindAllBranchNames_Handler(srv interface{}, stream grpc.ServerStream) error {
+func _RefService_FindAllBranchNames_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(FindAllBranchNamesRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
- return srv.(RefServer).FindAllBranchNames(m, &refFindAllBranchNamesServer{stream})
+ return srv.(RefServiceServer).FindAllBranchNames(m, &refServiceFindAllBranchNamesServer{stream})
}
-type Ref_FindAllBranchNamesServer interface {
+type RefService_FindAllBranchNamesServer interface {
Send(*FindAllBranchNamesResponse) error
grpc.ServerStream
}
-type refFindAllBranchNamesServer struct {
+type refServiceFindAllBranchNamesServer struct {
grpc.ServerStream
}
-func (x *refFindAllBranchNamesServer) Send(m *FindAllBranchNamesResponse) error {
+func (x *refServiceFindAllBranchNamesServer) Send(m *FindAllBranchNamesResponse) error {
return x.ServerStream.SendMsg(m)
}
-func _Ref_FindAllTagNames_Handler(srv interface{}, stream grpc.ServerStream) error {
+func _RefService_FindAllTagNames_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(FindAllTagNamesRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
- return srv.(RefServer).FindAllTagNames(m, &refFindAllTagNamesServer{stream})
+ return srv.(RefServiceServer).FindAllTagNames(m, &refServiceFindAllTagNamesServer{stream})
}
-type Ref_FindAllTagNamesServer interface {
+type RefService_FindAllTagNamesServer interface {
Send(*FindAllTagNamesResponse) error
grpc.ServerStream
}
-type refFindAllTagNamesServer struct {
+type refServiceFindAllTagNamesServer struct {
grpc.ServerStream
}
-func (x *refFindAllTagNamesServer) Send(m *FindAllTagNamesResponse) error {
+func (x *refServiceFindAllTagNamesServer) Send(m *FindAllTagNamesResponse) error {
return x.ServerStream.SendMsg(m)
}
-func _Ref_FindRefName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _RefService_FindRefName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(FindRefNameRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
- return srv.(RefServer).FindRefName(ctx, in)
+ return srv.(RefServiceServer).FindRefName(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
- FullMethod: "/gitaly.Ref/FindRefName",
+ FullMethod: "/gitaly.RefService/FindRefName",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(RefServer).FindRefName(ctx, req.(*FindRefNameRequest))
+ return srv.(RefServiceServer).FindRefName(ctx, req.(*FindRefNameRequest))
}
return interceptor(ctx, in, info, handler)
}
-func _Ref_FindLocalBranches_Handler(srv interface{}, stream grpc.ServerStream) error {
+func _RefService_FindLocalBranches_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(FindLocalBranchesRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
- return srv.(RefServer).FindLocalBranches(m, &refFindLocalBranchesServer{stream})
+ return srv.(RefServiceServer).FindLocalBranches(m, &refServiceFindLocalBranchesServer{stream})
}
-type Ref_FindLocalBranchesServer interface {
+type RefService_FindLocalBranchesServer interface {
Send(*FindLocalBranchesResponse) error
grpc.ServerStream
}
-type refFindLocalBranchesServer struct {
+type refServiceFindLocalBranchesServer struct {
grpc.ServerStream
}
-func (x *refFindLocalBranchesServer) Send(m *FindLocalBranchesResponse) error {
+func (x *refServiceFindLocalBranchesServer) Send(m *FindLocalBranchesResponse) error {
return x.ServerStream.SendMsg(m)
}
-var _Ref_serviceDesc = grpc.ServiceDesc{
- ServiceName: "gitaly.Ref",
- HandlerType: (*RefServer)(nil),
+var _RefService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "gitaly.RefService",
+ HandlerType: (*RefServiceServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "FindDefaultBranchName",
- Handler: _Ref_FindDefaultBranchName_Handler,
+ Handler: _RefService_FindDefaultBranchName_Handler,
},
{
MethodName: "FindRefName",
- Handler: _Ref_FindRefName_Handler,
+ Handler: _RefService_FindRefName_Handler,
},
},
Streams: []grpc.StreamDesc{
{
StreamName: "FindAllBranchNames",
- Handler: _Ref_FindAllBranchNames_Handler,
+ Handler: _RefService_FindAllBranchNames_Handler,
ServerStreams: true,
},
{
StreamName: "FindAllTagNames",
- Handler: _Ref_FindAllTagNames_Handler,
+ Handler: _RefService_FindAllTagNames_Handler,
ServerStreams: true,
},
{
StreamName: "FindLocalBranches",
- Handler: _Ref_FindLocalBranches_Handler,
+ Handler: _RefService_FindLocalBranches_Handler,
ServerStreams: true,
},
},
Metadata: "ref.proto",
}
-func init() { proto.RegisterFile("ref.proto", fileDescriptor3) }
-
-var fileDescriptor3 = []byte{
- // 615 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x51, 0x73, 0xd2, 0x4c,
- 0x14, 0x6d, 0x0a, 0xe5, 0x6b, 0x2f, 0xf9, 0x5a, 0x5c, 0x6b, 0x8d, 0x41, 0x85, 0x46, 0x3b, 0xe2,
- 0x4b, 0x70, 0xd2, 0xf1, 0xc9, 0x17, 0x29, 0xe0, 0xd4, 0x99, 0x8a, 0xce, 0x82, 0x8e, 0x0f, 0xce,
- 0x30, 0x0b, 0x6c, 0x20, 0x4e, 0xc2, 0x62, 0xb2, 0x8c, 0xf2, 0xe0, 0x2f, 0xf0, 0x87, 0xf9, 0xe6,
- 0x6f, 0x72, 0xd8, 0x4d, 0x68, 0xa0, 0x49, 0xea, 0x0c, 0x4f, 0xe1, 0xde, 0x3d, 0xe7, 0xde, 0xbb,
- 0xf7, 0xb0, 0x07, 0x0e, 0x7c, 0x6a, 0x9b, 0x33, 0x9f, 0x71, 0x86, 0x0a, 0x63, 0x87, 0x13, 0x77,
- 0xa1, 0xab, 0xc1, 0x84, 0xf8, 0x74, 0x24, 0xb3, 0x7a, 0x65, 0xcc, 0xd8, 0xd8, 0xa5, 0x75, 0x11,
- 0x0d, 0xe6, 0x76, 0x9d, 0x3b, 0x1e, 0x0d, 0x38, 0xf1, 0x66, 0x12, 0x60, 0x60, 0x78, 0xf8, 0xc6,
- 0x99, 0x8e, 0x5a, 0xd4, 0x26, 0x73, 0x97, 0x5f, 0xf8, 0x64, 0x3a, 0x9c, 0x74, 0x88, 0x47, 0x31,
- 0xfd, 0x36, 0xa7, 0x01, 0x47, 0x16, 0x80, 0x4f, 0x67, 0x2c, 0x70, 0x38, 0xf3, 0x17, 0x9a, 0x52,
- 0x55, 0x6a, 0x45, 0x0b, 0x99, 0xb2, 0x97, 0x89, 0x57, 0x27, 0x38, 0x86, 0x32, 0xce, 0xe1, 0x51,
- 0x4a, 0xcd, 0x60, 0xc6, 0xa6, 0x01, 0x45, 0x08, 0xf2, 0x53, 0xe2, 0x51, 0x51, 0x4e, 0xc5, 0xe2,
- 0xb7, 0xf1, 0x1e, 0x1e, 0x2c, 0x49, 0x0d, 0xd7, 0xbd, 0x26, 0x04, 0xdb, 0x4c, 0x61, 0x81, 0x9e,
- 0x54, 0x30, 0x1c, 0xe1, 0x18, 0xf6, 0x96, 0x6d, 0x03, 0x4d, 0xa9, 0xe6, 0x6a, 0x2a, 0x96, 0x81,
- 0x71, 0x05, 0x27, 0x21, 0xa7, 0x47, 0xc6, 0x5b, 0x4f, 0x50, 0x87, 0xfb, 0x37, 0xaa, 0x65, 0xb6,
- 0xff, 0x09, 0x68, 0x49, 0xc0, 0xd4, 0xde, 0x52, 0x02, 0x54, 0x86, 0x83, 0x21, 0xf3, 0x3c, 0x87,
- 0xf7, 0x9d, 0x91, 0xb6, 0x5b, 0x55, 0x6a, 0x07, 0x78, 0x5f, 0x26, 0xde, 0x8e, 0xd0, 0x09, 0x14,
- 0x66, 0x3e, 0xb5, 0x9d, 0x1f, 0x5a, 0x4e, 0x08, 0x10, 0x46, 0xc6, 0x73, 0xb8, 0xbb, 0xd6, 0x3e,
- 0x43, 0xad, 0xdf, 0x0a, 0x68, 0x4b, 0xec, 0x15, 0x1b, 0x92, 0x70, 0xbf, 0x5b, 0xed, 0x0a, 0xbd,
- 0x86, 0xff, 0x02, 0xe6, 0xf3, 0xfe, 0x60, 0x21, 0xc6, 0x3d, 0xb4, 0x9e, 0x45, 0x84, 0xb4, 0x36,
- 0x66, 0x97, 0xf9, 0xfc, 0x62, 0x81, 0x0b, 0x81, 0xf8, 0x1a, 0x2f, 0xa1, 0x20, 0x33, 0x68, 0x1f,
- 0xf2, 0x9d, 0xc6, 0xbb, 0x76, 0x69, 0x07, 0x1d, 0x41, 0xf1, 0xe3, 0x87, 0x56, 0xa3, 0xd7, 0x6e,
- 0xf5, 0x1b, 0xdd, 0x66, 0x49, 0x41, 0x25, 0x50, 0xa3, 0x44, 0xab, 0xdd, 0x6d, 0x96, 0x76, 0x8d,
- 0xcf, 0xf2, 0x7f, 0xb7, 0xd1, 0x21, 0xbc, 0xfa, 0x2b, 0xd8, 0x1f, 0x84, 0x39, 0xa1, 0x54, 0xd1,
- 0xaa, 0xa4, 0x8c, 0x15, 0x51, 0xf0, 0x8a, 0x60, 0xfc, 0xda, 0x95, 0xfa, 0x27, 0xa0, 0x92, 0x76,
- 0x9a, 0xad, 0xd9, 0x19, 0x1c, 0x86, 0x87, 0xc1, 0x7c, 0xf0, 0x95, 0x0e, 0x79, 0xa8, 0xdd, 0xff,
- 0x32, 0xdb, 0x95, 0x49, 0x74, 0x09, 0x61, 0xa2, 0x4f, 0xe6, 0x7c, 0xc2, 0x7c, 0x2d, 0x2f, 0xb6,
- 0xff, 0x24, 0x65, 0xea, 0xa6, 0xc0, 0x36, 0x04, 0x14, 0xab, 0xc3, 0x58, 0x84, 0x3a, 0x50, 0x0a,
- 0x2b, 0xc9, 0x0f, 0xa7, 0xbe, 0xb6, 0xf7, 0xef, 0xc5, 0x8e, 0x24, 0xab, 0x19, 0x71, 0x8d, 0xef,
- 0x50, 0xce, 0xc0, 0x27, 0x2e, 0xe4, 0x18, 0xf6, 0xa8, 0x47, 0x1c, 0x57, 0x2c, 0x43, 0xc5, 0x32,
- 0x40, 0x26, 0xe4, 0x47, 0x84, 0x53, 0x71, 0xff, 0xa2, 0xa5, 0x9b, 0xd2, 0xe1, 0xcc, 0xc8, 0xe1,
- 0xcc, 0x5e, 0xe4, 0x70, 0x58, 0xe0, 0xac, 0x3f, 0x39, 0xc8, 0x61, 0x6a, 0x23, 0x1b, 0xee, 0x25,
- 0xba, 0x12, 0x7a, 0x1a, 0xbf, 0x4f, 0x9a, 0x11, 0xea, 0x67, 0xb7, 0xa0, 0xa4, 0xb0, 0xc6, 0x0e,
- 0xea, 0xcb, 0x47, 0xbc, 0xee, 0x3b, 0xe8, 0x34, 0x4e, 0x4f, 0x34, 0x39, 0xdd, 0xc8, 0x82, 0x44,
- 0xe5, 0x5f, 0x28, 0xe8, 0x13, 0x1c, 0x6d, 0xd8, 0x0a, 0x7a, 0xbc, 0x41, 0xdd, 0x70, 0x2f, 0xbd,
- 0x92, 0x7a, 0x1e, 0xab, 0x7b, 0x09, 0xc5, 0xd8, 0xf3, 0x47, 0x7a, 0x9c, 0xb3, 0x6e, 0x49, 0x7a,
- 0x39, 0xf1, 0x6c, 0xb5, 0x82, 0x2f, 0x70, 0xe7, 0xc6, 0x9b, 0x42, 0xd5, 0xdb, 0x1e, 0xb4, 0x7e,
- 0x9a, 0x81, 0xb8, 0x9e, 0x73, 0x50, 0x10, 0x52, 0x9f, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0x2c,
- 0xc7, 0x33, 0x9b, 0xfd, 0x06, 0x00, 0x00,
+func init() { proto.RegisterFile("ref.proto", fileDescriptor5) }
+
+var fileDescriptor5 = []byte{
+ // 620 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0xc1, 0x6e, 0xd3, 0x40,
+ 0x10, 0xad, 0xdb, 0x34, 0xb4, 0x13, 0xd3, 0x86, 0xa5, 0x14, 0xe3, 0x02, 0x4d, 0x0d, 0x15, 0xe5,
+ 0xe2, 0x22, 0x57, 0x9c, 0xb8, 0x90, 0x26, 0x45, 0x45, 0x2a, 0x05, 0x6d, 0x02, 0xe2, 0x80, 0x14,
+ 0x6d, 0x9c, 0x75, 0x62, 0x64, 0x67, 0xc3, 0x7a, 0x03, 0xe4, 0xc0, 0x17, 0xf0, 0x61, 0x7c, 0x01,
+ 0xff, 0x83, 0xb2, 0x6b, 0xa7, 0x4e, 0x6a, 0xbb, 0x48, 0x39, 0x39, 0x33, 0xfb, 0xde, 0xcc, 0xec,
+ 0xbc, 0xec, 0x83, 0x4d, 0x4e, 0x3d, 0x7b, 0xc4, 0x99, 0x60, 0xa8, 0xdc, 0xf7, 0x05, 0x09, 0x26,
+ 0xa6, 0x1e, 0x0d, 0x08, 0xa7, 0x3d, 0x95, 0x35, 0xf7, 0xfb, 0x8c, 0xf5, 0x03, 0x7a, 0x2c, 0xa3,
+ 0xee, 0xd8, 0x3b, 0x16, 0x7e, 0x48, 0x23, 0x41, 0xc2, 0x91, 0x02, 0x58, 0x18, 0x1e, 0xbe, 0xf1,
+ 0x87, 0xbd, 0x26, 0xf5, 0xc8, 0x38, 0x10, 0xa7, 0x9c, 0x0c, 0xdd, 0xc1, 0x25, 0x09, 0x29, 0xa6,
+ 0xdf, 0xc6, 0x34, 0x12, 0xc8, 0x01, 0xe0, 0x74, 0xc4, 0x22, 0x5f, 0x30, 0x3e, 0x31, 0xb4, 0x9a,
+ 0x76, 0x54, 0x71, 0x90, 0xad, 0x7a, 0xd9, 0x78, 0x76, 0x82, 0x53, 0x28, 0xeb, 0x04, 0x1e, 0xe5,
+ 0xd4, 0x8c, 0x46, 0x6c, 0x18, 0x51, 0x84, 0xa0, 0x34, 0x24, 0x21, 0x95, 0xe5, 0x74, 0x2c, 0x7f,
+ 0x5b, 0xef, 0xe1, 0xc1, 0x94, 0x54, 0x0f, 0x82, 0x2b, 0x42, 0xb4, 0xcc, 0x14, 0x0e, 0x98, 0x59,
+ 0x05, 0xe3, 0x11, 0x76, 0x60, 0x7d, 0xda, 0x36, 0x32, 0xb4, 0xda, 0xda, 0x91, 0x8e, 0x55, 0x60,
+ 0x5d, 0xc0, 0x6e, 0xcc, 0x69, 0x93, 0xfe, 0xd2, 0x13, 0x1c, 0xc3, 0xfd, 0x6b, 0xd5, 0x0a, 0xdb,
+ 0xff, 0x02, 0x34, 0x25, 0x60, 0xea, 0x2d, 0x29, 0x01, 0xda, 0x83, 0x4d, 0x97, 0x85, 0xa1, 0x2f,
+ 0x3a, 0x7e, 0xcf, 0x58, 0xad, 0x69, 0x47, 0x9b, 0x78, 0x43, 0x25, 0xde, 0xf6, 0xd0, 0x2e, 0x94,
+ 0x47, 0x9c, 0x7a, 0xfe, 0x4f, 0x63, 0x4d, 0x0a, 0x10, 0x47, 0xd6, 0x73, 0xb8, 0x3b, 0xd7, 0xbe,
+ 0x40, 0xad, 0x3f, 0x1a, 0x18, 0x53, 0xec, 0x05, 0x73, 0x49, 0xbc, 0xdf, 0xa5, 0x76, 0x85, 0x5e,
+ 0xc3, 0xad, 0x88, 0x71, 0xd1, 0xe9, 0x4e, 0xe4, 0xb8, 0x5b, 0xce, 0xb3, 0x84, 0x90, 0xd7, 0xc6,
+ 0x6e, 0x31, 0x2e, 0x4e, 0x27, 0xb8, 0x1c, 0xc9, 0xaf, 0xf5, 0x12, 0xca, 0x2a, 0x83, 0x36, 0xa0,
+ 0x74, 0x59, 0x7f, 0x77, 0x56, 0x5d, 0x41, 0xdb, 0x50, 0xf9, 0xf8, 0xa1, 0x59, 0x6f, 0x9f, 0x35,
+ 0x3b, 0xf5, 0x56, 0xa3, 0xaa, 0xa1, 0x2a, 0xe8, 0x49, 0xa2, 0x79, 0xd6, 0x6a, 0x54, 0x57, 0xad,
+ 0xcf, 0xea, 0x7f, 0xb7, 0xd0, 0x21, 0xbe, 0xfa, 0x2b, 0xd8, 0xe8, 0xc6, 0x39, 0xa9, 0x54, 0xc5,
+ 0xd9, 0xcf, 0x19, 0x2b, 0xa1, 0xe0, 0x19, 0xc1, 0xfa, 0xbd, 0xaa, 0xf4, 0xcf, 0x40, 0x65, 0xed,
+ 0xb4, 0x58, 0xb3, 0x43, 0xd8, 0x8a, 0x0f, 0xa3, 0x71, 0xf7, 0x2b, 0x75, 0x45, 0xac, 0xdd, 0x6d,
+ 0x95, 0x6d, 0xa9, 0x24, 0x3a, 0x87, 0x38, 0xd1, 0x21, 0x63, 0x31, 0x60, 0xdc, 0x28, 0xc9, 0xed,
+ 0x3f, 0xc9, 0x99, 0xba, 0x21, 0xb1, 0x75, 0x09, 0xc5, 0xba, 0x9b, 0x8a, 0xd0, 0x25, 0x54, 0xe3,
+ 0x4a, 0xea, 0x23, 0x28, 0x37, 0xd6, 0xff, 0xbf, 0xd8, 0xb6, 0x62, 0x35, 0x12, 0xae, 0xf5, 0x03,
+ 0xf6, 0x0a, 0xf0, 0x99, 0x0b, 0xd9, 0x81, 0x75, 0x1a, 0x12, 0x3f, 0x90, 0xcb, 0xd0, 0xb1, 0x0a,
+ 0x90, 0x0d, 0xa5, 0x1e, 0x11, 0x54, 0xde, 0xbf, 0xe2, 0x98, 0xb6, 0x72, 0x38, 0x3b, 0x71, 0x38,
+ 0xbb, 0x9d, 0x38, 0x1c, 0x96, 0x38, 0xe7, 0xef, 0x1a, 0x00, 0xa6, 0x5e, 0x8b, 0xf2, 0xef, 0xbe,
+ 0x4b, 0x91, 0x07, 0xf7, 0x32, 0xcd, 0x09, 0x3d, 0x4d, 0x5f, 0x2b, 0xcf, 0x0f, 0xcd, 0xc3, 0x1b,
+ 0x50, 0x4a, 0x5f, 0x6b, 0x05, 0x75, 0xd4, 0x5b, 0x9e, 0xb7, 0x1f, 0x74, 0x90, 0xa6, 0x67, 0x7a,
+ 0x9d, 0x69, 0x15, 0x41, 0x92, 0xf2, 0x2f, 0x34, 0xf4, 0x09, 0xb6, 0x17, 0xdc, 0x05, 0x3d, 0x5e,
+ 0xa0, 0x2e, 0x98, 0x98, 0xb9, 0x9f, 0x7b, 0x9e, 0xaa, 0x7b, 0x0e, 0x95, 0x94, 0x0b, 0x20, 0x33,
+ 0xcd, 0x99, 0x77, 0x26, 0x73, 0x2f, 0xf3, 0x6c, 0xb6, 0x82, 0x2f, 0x70, 0xe7, 0xda, 0xd3, 0x42,
+ 0xb5, 0x9b, 0xde, 0xb5, 0x79, 0x50, 0x80, 0xb8, 0x9a, 0xb3, 0x5b, 0x96, 0x8a, 0x9f, 0xfc, 0x0b,
+ 0x00, 0x00, 0xff, 0xff, 0xaa, 0x36, 0x2a, 0x93, 0x04, 0x07, 0x00, 0x00,
}
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/repository-service.pb.go b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/repository-service.pb.go
new file mode 100644
index 0000000..2ddbb28
--- /dev/null
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/repository-service.pb.go
@@ -0,0 +1,144 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// source: repository-service.proto
+
+package gitaly
+
+import proto "github.com/golang/protobuf/proto"
+import fmt "fmt"
+import math "math"
+
+import (
+ context "golang.org/x/net/context"
+ grpc "google.golang.org/grpc"
+)
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = fmt.Errorf
+var _ = math.Inf
+
+type RepositoryExistsRequest struct {
+ Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
+}
+
+func (m *RepositoryExistsRequest) Reset() { *m = RepositoryExistsRequest{} }
+func (m *RepositoryExistsRequest) String() string { return proto.CompactTextString(m) }
+func (*RepositoryExistsRequest) ProtoMessage() {}
+func (*RepositoryExistsRequest) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{0} }
+
+func (m *RepositoryExistsRequest) GetRepository() *Repository {
+ if m != nil {
+ return m.Repository
+ }
+ return nil
+}
+
+type RepositoryExistsResponse struct {
+ Exists bool `protobuf:"varint,1,opt,name=exists" json:"exists,omitempty"`
+}
+
+func (m *RepositoryExistsResponse) Reset() { *m = RepositoryExistsResponse{} }
+func (m *RepositoryExistsResponse) String() string { return proto.CompactTextString(m) }
+func (*RepositoryExistsResponse) ProtoMessage() {}
+func (*RepositoryExistsResponse) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{1} }
+
+func (m *RepositoryExistsResponse) GetExists() bool {
+ if m != nil {
+ return m.Exists
+ }
+ return false
+}
+
+func init() {
+ proto.RegisterType((*RepositoryExistsRequest)(nil), "gitaly.RepositoryExistsRequest")
+ proto.RegisterType((*RepositoryExistsResponse)(nil), "gitaly.RepositoryExistsResponse")
+}
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ context.Context
+var _ grpc.ClientConn
+
+// This is a compile-time assertion to ensure that this generated file
+// is compatible with the grpc package it is being compiled against.
+const _ = grpc.SupportPackageIsVersion4
+
+// Client API for RepositoryService service
+
+type RepositoryServiceClient interface {
+ Exists(ctx context.Context, in *RepositoryExistsRequest, opts ...grpc.CallOption) (*RepositoryExistsResponse, error)
+}
+
+type repositoryServiceClient struct {
+ cc *grpc.ClientConn
+}
+
+func NewRepositoryServiceClient(cc *grpc.ClientConn) RepositoryServiceClient {
+ return &repositoryServiceClient{cc}
+}
+
+func (c *repositoryServiceClient) Exists(ctx context.Context, in *RepositoryExistsRequest, opts ...grpc.CallOption) (*RepositoryExistsResponse, error) {
+ out := new(RepositoryExistsResponse)
+ err := grpc.Invoke(ctx, "/gitaly.RepositoryService/Exists", in, out, c.cc, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
+// Server API for RepositoryService service
+
+type RepositoryServiceServer interface {
+ Exists(context.Context, *RepositoryExistsRequest) (*RepositoryExistsResponse, error)
+}
+
+func RegisterRepositoryServiceServer(s *grpc.Server, srv RepositoryServiceServer) {
+ s.RegisterService(&_RepositoryService_serviceDesc, srv)
+}
+
+func _RepositoryService_Exists_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(RepositoryExistsRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(RepositoryServiceServer).Exists(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/gitaly.RepositoryService/Exists",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(RepositoryServiceServer).Exists(ctx, req.(*RepositoryExistsRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
+var _RepositoryService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "gitaly.RepositoryService",
+ HandlerType: (*RepositoryServiceServer)(nil),
+ Methods: []grpc.MethodDesc{
+ {
+ MethodName: "Exists",
+ Handler: _RepositoryService_Exists_Handler,
+ },
+ },
+ Streams: []grpc.StreamDesc{},
+ Metadata: "repository-service.proto",
+}
+
+func init() { proto.RegisterFile("repository-service.proto", fileDescriptor6) }
+
+var fileDescriptor6 = []byte{
+ // 172 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x28, 0x4a, 0x2d, 0xc8,
+ 0x2f, 0xce, 0x2c, 0xc9, 0x2f, 0xaa, 0xd4, 0x2d, 0x4e, 0x2d, 0x2a, 0xcb, 0x4c, 0x4e, 0xd5, 0x2b,
+ 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x4b, 0xcf, 0x2c, 0x49, 0xcc, 0xa9, 0x94, 0xe2, 0x29, 0xce,
+ 0x48, 0x2c, 0x4a, 0x4d, 0x81, 0x88, 0x2a, 0xf9, 0x72, 0x89, 0x07, 0xc1, 0x75, 0xb8, 0x56, 0x64,
+ 0x16, 0x97, 0x14, 0x07, 0xa5, 0x16, 0x96, 0xa6, 0x16, 0x97, 0x08, 0x19, 0x71, 0x71, 0x21, 0x0c,
+ 0x93, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x36, 0x12, 0xd2, 0x83, 0x98, 0xa2, 0x87, 0xd0, 0x14, 0x84,
+ 0xa4, 0x4a, 0xc9, 0x88, 0x4b, 0x02, 0xd3, 0xb8, 0xe2, 0x82, 0xfc, 0xbc, 0xe2, 0x54, 0x21, 0x31,
+ 0x2e, 0xb6, 0x54, 0xb0, 0x08, 0xd8, 0x2c, 0x8e, 0x20, 0x28, 0xcf, 0x28, 0x89, 0x4b, 0x10, 0xa1,
+ 0x27, 0x18, 0xe2, 0x66, 0x21, 0x5f, 0x2e, 0x36, 0x88, 0x76, 0x21, 0x79, 0x4c, 0x2b, 0x51, 0xdc,
+ 0x29, 0xa5, 0x80, 0x5b, 0x01, 0xc4, 0x66, 0x25, 0x86, 0x24, 0x36, 0xb0, 0x6f, 0x8d, 0x01, 0x01,
+ 0x00, 0x00, 0xff, 0xff, 0x7e, 0xc1, 0x7d, 0x44, 0x1f, 0x01, 0x00, 0x00,
+}
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/shared.pb.go b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/shared.pb.go
index 48c6564..3df4fdc 100644
--- a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/shared.pb.go
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/shared.pb.go
@@ -1,12 +1,12 @@
-// Code generated by protoc-gen-go.
+// Code generated by protoc-gen-go. DO NOT EDIT.
// source: shared.proto
-// DO NOT EDIT!
package gitaly
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
+import google_protobuf "github.com/golang/protobuf/ptypes/timestamp"
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
@@ -14,7 +14,6 @@ var _ = fmt.Errorf
var _ = math.Inf
type Repository struct {
- Path string `protobuf:"bytes,1,opt,name=path" json:"path,omitempty"`
StorageName string `protobuf:"bytes,2,opt,name=storage_name,json=storageName" json:"storage_name,omitempty"`
RelativePath string `protobuf:"bytes,3,opt,name=relative_path,json=relativePath" json:"relative_path,omitempty"`
}
@@ -22,29 +21,110 @@ type Repository struct {
func (m *Repository) Reset() { *m = Repository{} }
func (m *Repository) String() string { return proto.CompactTextString(m) }
func (*Repository) ProtoMessage() {}
-func (*Repository) Descriptor() ([]byte, []int) { return fileDescriptor4, []int{0} }
+func (*Repository) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{0} }
-func (m *Repository) GetPath() string {
+func (m *Repository) GetStorageName() string {
if m != nil {
- return m.Path
+ return m.StorageName
}
return ""
}
-func (m *Repository) GetStorageName() string {
+func (m *Repository) GetRelativePath() string {
if m != nil {
- return m.StorageName
+ return m.RelativePath
}
return ""
}
-func (m *Repository) GetRelativePath() string {
+type GitCommit struct {
+ Id string `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
+ Subject []byte `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"`
+ Body []byte `protobuf:"bytes,3,opt,name=body,proto3" json:"body,omitempty"`
+ Author *CommitAuthor `protobuf:"bytes,4,opt,name=author" json:"author,omitempty"`
+ Committer *CommitAuthor `protobuf:"bytes,5,opt,name=committer" json:"committer,omitempty"`
+ ParentIds []string `protobuf:"bytes,6,rep,name=parent_ids,json=parentIds" json:"parent_ids,omitempty"`
+}
+
+func (m *GitCommit) Reset() { *m = GitCommit{} }
+func (m *GitCommit) String() string { return proto.CompactTextString(m) }
+func (*GitCommit) ProtoMessage() {}
+func (*GitCommit) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{1} }
+
+func (m *GitCommit) GetId() string {
if m != nil {
- return m.RelativePath
+ return m.Id
}
return ""
}
+func (m *GitCommit) GetSubject() []byte {
+ if m != nil {
+ return m.Subject
+ }
+ return nil
+}
+
+func (m *GitCommit) GetBody() []byte {
+ if m != nil {
+ return m.Body
+ }
+ return nil
+}
+
+func (m *GitCommit) GetAuthor() *CommitAuthor {
+ if m != nil {
+ return m.Author
+ }
+ return nil
+}
+
+func (m *GitCommit) GetCommitter() *CommitAuthor {
+ if m != nil {
+ return m.Committer
+ }
+ return nil
+}
+
+func (m *GitCommit) GetParentIds() []string {
+ if m != nil {
+ return m.ParentIds
+ }
+ return nil
+}
+
+type CommitAuthor struct {
+ Name []byte `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
+ Email []byte `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"`
+ Date *google_protobuf.Timestamp `protobuf:"bytes,3,opt,name=date" json:"date,omitempty"`
+}
+
+func (m *CommitAuthor) Reset() { *m = CommitAuthor{} }
+func (m *CommitAuthor) String() string { return proto.CompactTextString(m) }
+func (*CommitAuthor) ProtoMessage() {}
+func (*CommitAuthor) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{2} }
+
+func (m *CommitAuthor) GetName() []byte {
+ if m != nil {
+ return m.Name
+ }
+ return nil
+}
+
+func (m *CommitAuthor) GetEmail() []byte {
+ if m != nil {
+ return m.Email
+ }
+ return nil
+}
+
+func (m *CommitAuthor) GetDate() *google_protobuf.Timestamp {
+ if m != nil {
+ return m.Date
+ }
+ return nil
+}
+
type ExitStatus struct {
Value int32 `protobuf:"varint,1,opt,name=value" json:"value,omitempty"`
}
@@ -52,7 +132,7 @@ type ExitStatus struct {
func (m *ExitStatus) Reset() { *m = ExitStatus{} }
func (m *ExitStatus) String() string { return proto.CompactTextString(m) }
func (*ExitStatus) ProtoMessage() {}
-func (*ExitStatus) Descriptor() ([]byte, []int) { return fileDescriptor4, []int{1} }
+func (*ExitStatus) Descriptor() ([]byte, []int) { return fileDescriptor7, []int{3} }
func (m *ExitStatus) GetValue() int32 {
if m != nil {
@@ -63,22 +143,34 @@ func (m *ExitStatus) GetValue() int32 {
func init() {
proto.RegisterType((*Repository)(nil), "gitaly.Repository")
+ proto.RegisterType((*GitCommit)(nil), "gitaly.GitCommit")
+ proto.RegisterType((*CommitAuthor)(nil), "gitaly.CommitAuthor")
proto.RegisterType((*ExitStatus)(nil), "gitaly.ExitStatus")
}
-func init() { proto.RegisterFile("shared.proto", fileDescriptor4) }
-
-var fileDescriptor4 = []byte{
- // 161 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x34, 0x8e, 0xb1, 0xca, 0xc2, 0x40,
- 0x10, 0x84, 0xc9, 0xff, 0x9b, 0x80, 0x6b, 0x6c, 0x16, 0x8b, 0x94, 0x1a, 0x1b, 0x2b, 0x1b, 0x9f,
- 0xc1, 0x56, 0xe4, 0x7c, 0x80, 0xb0, 0xe2, 0x92, 0x3b, 0xb8, 0x78, 0xc7, 0xdd, 0x26, 0x98, 0xb7,
- 0x17, 0x56, 0xed, 0x76, 0xbf, 0x99, 0x61, 0x06, 0xea, 0x6c, 0x29, 0xf1, 0xe3, 0x18, 0x53, 0x90,
- 0x80, 0x55, 0xef, 0x84, 0xfc, 0xdc, 0x5a, 0x00, 0xc3, 0x31, 0x64, 0x27, 0x21, 0xcd, 0x88, 0xb0,
- 0x88, 0x24, 0xb6, 0x29, 0xb6, 0xc5, 0x61, 0x69, 0xf4, 0xc6, 0x1d, 0xd4, 0x59, 0x42, 0xa2, 0x9e,
- 0xbb, 0x27, 0x0d, 0xdc, 0xfc, 0xa9, 0xb6, 0xfa, 0xb2, 0x0b, 0x0d, 0x8c, 0x7b, 0x58, 0x27, 0xf6,
- 0x24, 0x6e, 0xe2, 0x4e, 0xf3, 0xff, 0xea, 0xa9, 0x7f, 0xf0, 0x4a, 0x62, 0xdb, 0x16, 0xe0, 0xfc,
- 0x72, 0x72, 0x13, 0x92, 0x31, 0xe3, 0x06, 0xca, 0x89, 0xfc, 0xc8, 0x5a, 0x55, 0x9a, 0xcf, 0x73,
- 0xaf, 0x74, 0xdc, 0xe9, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xbd, 0xf7, 0x56, 0x73, 0xac, 0x00, 0x00,
- 0x00,
+func init() { proto.RegisterFile("shared.proto", fileDescriptor7) }
+
+var fileDescriptor7 = []byte{
+ // 335 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x51, 0xc1, 0x4a, 0xc3, 0x40,
+ 0x10, 0x25, 0x69, 0x1a, 0xcd, 0x34, 0x8a, 0x2c, 0x3d, 0x84, 0x82, 0x58, 0xe3, 0xa5, 0x07, 0x49,
+ 0xa1, 0x7e, 0x81, 0x88, 0x88, 0x1e, 0x44, 0x56, 0xef, 0x75, 0xd2, 0xac, 0xc9, 0x4a, 0xd2, 0x0d,
+ 0xbb, 0x93, 0x62, 0x7f, 0xd1, 0xaf, 0x92, 0xec, 0x36, 0xe8, 0xc9, 0xdb, 0xce, 0x9b, 0xf7, 0x66,
+ 0xe6, 0xed, 0x83, 0xd8, 0x54, 0xa8, 0x45, 0x91, 0xb5, 0x5a, 0x91, 0x62, 0x61, 0x29, 0x09, 0xeb,
+ 0xfd, 0xec, 0xa2, 0x54, 0xaa, 0xac, 0xc5, 0xd2, 0xa2, 0x79, 0xf7, 0xb1, 0x24, 0xd9, 0x08, 0x43,
+ 0xd8, 0xb4, 0x8e, 0x98, 0xbe, 0x03, 0x70, 0xd1, 0x2a, 0x23, 0x49, 0xe9, 0x3d, 0xbb, 0x84, 0xd8,
+ 0x90, 0xd2, 0x58, 0x8a, 0xf5, 0x16, 0x1b, 0x91, 0xf8, 0x73, 0x6f, 0x11, 0xf1, 0xc9, 0x01, 0x7b,
+ 0xc6, 0x46, 0xb0, 0x2b, 0x38, 0xd1, 0xa2, 0x46, 0x92, 0x3b, 0xb1, 0x6e, 0x91, 0xaa, 0x64, 0x64,
+ 0x39, 0xf1, 0x00, 0xbe, 0x20, 0x55, 0x4f, 0xc1, 0xb1, 0x77, 0xe6, 0xf3, 0xa0, 0xef, 0xa7, 0xdf,
+ 0x1e, 0x44, 0x0f, 0x92, 0xee, 0x54, 0xd3, 0x48, 0x62, 0xa7, 0xe0, 0xcb, 0x22, 0xf1, 0xac, 0xc6,
+ 0x97, 0x05, 0x4b, 0xe0, 0xc8, 0x74, 0xf9, 0xa7, 0xd8, 0x90, 0x5d, 0x16, 0xf3, 0xa1, 0x64, 0x0c,
+ 0x82, 0x5c, 0x15, 0x7b, 0x3b, 0x3f, 0xe6, 0xf6, 0xcd, 0xae, 0x21, 0xc4, 0x8e, 0x2a, 0xa5, 0x93,
+ 0x60, 0xee, 0x2d, 0x26, 0xab, 0x69, 0xe6, 0x7c, 0x66, 0x6e, 0xfa, 0xad, 0xed, 0xf1, 0x03, 0x87,
+ 0xad, 0x20, 0xda, 0x58, 0x9c, 0x84, 0x4e, 0xc6, 0xff, 0x08, 0x7e, 0x69, 0xec, 0x1c, 0xa0, 0x45,
+ 0x2d, 0xb6, 0xb4, 0x96, 0x85, 0x49, 0xc2, 0xf9, 0x68, 0x11, 0xf1, 0xc8, 0x21, 0x8f, 0x85, 0x49,
+ 0x2b, 0x88, 0xff, 0x2a, 0xfb, 0x23, 0xed, 0x47, 0x79, 0xee, 0xc8, 0xfe, 0xcd, 0xa6, 0x30, 0x16,
+ 0x0d, 0xca, 0xfa, 0x60, 0xc8, 0x15, 0x2c, 0x83, 0xa0, 0x40, 0x12, 0xd6, 0xce, 0x64, 0x35, 0xcb,
+ 0x5c, 0x30, 0xd9, 0x10, 0x4c, 0xf6, 0x36, 0x04, 0xc3, 0x2d, 0x2f, 0x4d, 0x01, 0xee, 0xbf, 0x24,
+ 0xbd, 0x12, 0x52, 0x67, 0xfa, 0x99, 0x3b, 0xac, 0x3b, 0xb7, 0x68, 0xcc, 0x5d, 0x91, 0x87, 0x56,
+ 0x7d, 0xf3, 0x13, 0x00, 0x00, 0xff, 0xff, 0x0a, 0x87, 0xe3, 0xb7, 0xfc, 0x01, 0x00, 0x00,
}
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/smarthttp.pb.go b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/smarthttp.pb.go
index 494118d..ce46918 100644
--- a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/smarthttp.pb.go
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/smarthttp.pb.go
@@ -1,6 +1,5 @@
-// Code generated by protoc-gen-go.
+// Code generated by protoc-gen-go. DO NOT EDIT.
// source: smarthttp.proto
-// DO NOT EDIT!
package gitaly
@@ -25,7 +24,7 @@ type InfoRefsRequest struct {
func (m *InfoRefsRequest) Reset() { *m = InfoRefsRequest{} }
func (m *InfoRefsRequest) String() string { return proto.CompactTextString(m) }
func (*InfoRefsRequest) ProtoMessage() {}
-func (*InfoRefsRequest) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{0} }
+func (*InfoRefsRequest) Descriptor() ([]byte, []int) { return fileDescriptor8, []int{0} }
func (m *InfoRefsRequest) GetRepository() *Repository {
if m != nil {
@@ -41,7 +40,7 @@ type InfoRefsResponse struct {
func (m *InfoRefsResponse) Reset() { *m = InfoRefsResponse{} }
func (m *InfoRefsResponse) String() string { return proto.CompactTextString(m) }
func (*InfoRefsResponse) ProtoMessage() {}
-func (*InfoRefsResponse) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{1} }
+func (*InfoRefsResponse) Descriptor() ([]byte, []int) { return fileDescriptor8, []int{1} }
func (m *InfoRefsResponse) GetData() []byte {
if m != nil {
@@ -60,7 +59,7 @@ type PostUploadPackRequest struct {
func (m *PostUploadPackRequest) Reset() { *m = PostUploadPackRequest{} }
func (m *PostUploadPackRequest) String() string { return proto.CompactTextString(m) }
func (*PostUploadPackRequest) ProtoMessage() {}
-func (*PostUploadPackRequest) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{2} }
+func (*PostUploadPackRequest) Descriptor() ([]byte, []int) { return fileDescriptor8, []int{2} }
func (m *PostUploadPackRequest) GetRepository() *Repository {
if m != nil {
@@ -84,7 +83,7 @@ type PostUploadPackResponse struct {
func (m *PostUploadPackResponse) Reset() { *m = PostUploadPackResponse{} }
func (m *PostUploadPackResponse) String() string { return proto.CompactTextString(m) }
func (*PostUploadPackResponse) ProtoMessage() {}
-func (*PostUploadPackResponse) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{3} }
+func (*PostUploadPackResponse) Descriptor() ([]byte, []int) { return fileDescriptor8, []int{3} }
func (m *PostUploadPackResponse) GetData() []byte {
if m != nil {
@@ -98,15 +97,16 @@ type PostReceivePackRequest struct {
Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
// Raw data to be copied to stdin of 'git receive-pack'
Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
- // gl_id becomes env variable GL_ID, used by the Git {pre,post}-receive
- // hooks. Should only be present in the first message of the stream.
- GlId string `protobuf:"bytes,3,opt,name=gl_id,json=glId" json:"gl_id,omitempty"`
+ // gl_id and gl_repository becomes env variables, used by the Git {pre,post}-receive
+ // hooks. They should only be present in the first message of the stream.
+ GlId string `protobuf:"bytes,3,opt,name=gl_id,json=glId" json:"gl_id,omitempty"`
+ GlRepository string `protobuf:"bytes,4,opt,name=gl_repository,json=glRepository" json:"gl_repository,omitempty"`
}
func (m *PostReceivePackRequest) Reset() { *m = PostReceivePackRequest{} }
func (m *PostReceivePackRequest) String() string { return proto.CompactTextString(m) }
func (*PostReceivePackRequest) ProtoMessage() {}
-func (*PostReceivePackRequest) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{4} }
+func (*PostReceivePackRequest) Descriptor() ([]byte, []int) { return fileDescriptor8, []int{4} }
func (m *PostReceivePackRequest) GetRepository() *Repository {
if m != nil {
@@ -129,6 +129,13 @@ func (m *PostReceivePackRequest) GetGlId() string {
return ""
}
+func (m *PostReceivePackRequest) GetGlRepository() string {
+ if m != nil {
+ return m.GlRepository
+ }
+ return ""
+}
+
type PostReceivePackResponse struct {
// Raw data from stdout of 'git receive-pack'
Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
@@ -137,7 +144,7 @@ type PostReceivePackResponse struct {
func (m *PostReceivePackResponse) Reset() { *m = PostReceivePackResponse{} }
func (m *PostReceivePackResponse) String() string { return proto.CompactTextString(m) }
func (*PostReceivePackResponse) ProtoMessage() {}
-func (*PostReceivePackResponse) Descriptor() ([]byte, []int) { return fileDescriptor5, []int{5} }
+func (*PostReceivePackResponse) Descriptor() ([]byte, []int) { return fileDescriptor8, []int{5} }
func (m *PostReceivePackResponse) GetData() []byte {
if m != nil {
@@ -163,33 +170,33 @@ var _ grpc.ClientConn
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4
-// Client API for SmartHTTP service
+// Client API for SmartHTTPService service
-type SmartHTTPClient interface {
+type SmartHTTPServiceClient interface {
// The response body for GET /info/refs?service=git-upload-pack
- InfoRefsUploadPack(ctx context.Context, in *InfoRefsRequest, opts ...grpc.CallOption) (SmartHTTP_InfoRefsUploadPackClient, error)
+ InfoRefsUploadPack(ctx context.Context, in *InfoRefsRequest, opts ...grpc.CallOption) (SmartHTTPService_InfoRefsUploadPackClient, error)
// The response body for GET /info/refs?service=git-receive-pack
- InfoRefsReceivePack(ctx context.Context, in *InfoRefsRequest, opts ...grpc.CallOption) (SmartHTTP_InfoRefsReceivePackClient, error)
+ InfoRefsReceivePack(ctx context.Context, in *InfoRefsRequest, opts ...grpc.CallOption) (SmartHTTPService_InfoRefsReceivePackClient, error)
// Request and response body for POST /upload-pack
- PostUploadPack(ctx context.Context, opts ...grpc.CallOption) (SmartHTTP_PostUploadPackClient, error)
+ PostUploadPack(ctx context.Context, opts ...grpc.CallOption) (SmartHTTPService_PostUploadPackClient, error)
// Request and response body for POST /receive-pack
- PostReceivePack(ctx context.Context, opts ...grpc.CallOption) (SmartHTTP_PostReceivePackClient, error)
+ PostReceivePack(ctx context.Context, opts ...grpc.CallOption) (SmartHTTPService_PostReceivePackClient, error)
}
-type smartHTTPClient struct {
+type smartHTTPServiceClient struct {
cc *grpc.ClientConn
}
-func NewSmartHTTPClient(cc *grpc.ClientConn) SmartHTTPClient {
- return &smartHTTPClient{cc}
+func NewSmartHTTPServiceClient(cc *grpc.ClientConn) SmartHTTPServiceClient {
+ return &smartHTTPServiceClient{cc}
}
-func (c *smartHTTPClient) InfoRefsUploadPack(ctx context.Context, in *InfoRefsRequest, opts ...grpc.CallOption) (SmartHTTP_InfoRefsUploadPackClient, error) {
- stream, err := grpc.NewClientStream(ctx, &_SmartHTTP_serviceDesc.Streams[0], c.cc, "/gitaly.SmartHTTP/InfoRefsUploadPack", opts...)
+func (c *smartHTTPServiceClient) InfoRefsUploadPack(ctx context.Context, in *InfoRefsRequest, opts ...grpc.CallOption) (SmartHTTPService_InfoRefsUploadPackClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_SmartHTTPService_serviceDesc.Streams[0], c.cc, "/gitaly.SmartHTTPService/InfoRefsUploadPack", opts...)
if err != nil {
return nil, err
}
- x := &smartHTTPInfoRefsUploadPackClient{stream}
+ x := &smartHTTPServiceInfoRefsUploadPackClient{stream}
if err := x.ClientStream.SendMsg(in); err != nil {
return nil, err
}
@@ -199,16 +206,16 @@ func (c *smartHTTPClient) InfoRefsUploadPack(ctx context.Context, in *InfoRefsRe
return x, nil
}
-type SmartHTTP_InfoRefsUploadPackClient interface {
+type SmartHTTPService_InfoRefsUploadPackClient interface {
Recv() (*InfoRefsResponse, error)
grpc.ClientStream
}
-type smartHTTPInfoRefsUploadPackClient struct {
+type smartHTTPServiceInfoRefsUploadPackClient struct {
grpc.ClientStream
}
-func (x *smartHTTPInfoRefsUploadPackClient) Recv() (*InfoRefsResponse, error) {
+func (x *smartHTTPServiceInfoRefsUploadPackClient) Recv() (*InfoRefsResponse, error) {
m := new(InfoRefsResponse)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
@@ -216,12 +223,12 @@ func (x *smartHTTPInfoRefsUploadPackClient) Recv() (*InfoRefsResponse, error) {
return m, nil
}
-func (c *smartHTTPClient) InfoRefsReceivePack(ctx context.Context, in *InfoRefsRequest, opts ...grpc.CallOption) (SmartHTTP_InfoRefsReceivePackClient, error) {
- stream, err := grpc.NewClientStream(ctx, &_SmartHTTP_serviceDesc.Streams[1], c.cc, "/gitaly.SmartHTTP/InfoRefsReceivePack", opts...)
+func (c *smartHTTPServiceClient) InfoRefsReceivePack(ctx context.Context, in *InfoRefsRequest, opts ...grpc.CallOption) (SmartHTTPService_InfoRefsReceivePackClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_SmartHTTPService_serviceDesc.Streams[1], c.cc, "/gitaly.SmartHTTPService/InfoRefsReceivePack", opts...)
if err != nil {
return nil, err
}
- x := &smartHTTPInfoRefsReceivePackClient{stream}
+ x := &smartHTTPServiceInfoRefsReceivePackClient{stream}
if err := x.ClientStream.SendMsg(in); err != nil {
return nil, err
}
@@ -231,16 +238,16 @@ func (c *smartHTTPClient) InfoRefsReceivePack(ctx context.Context, in *InfoRefsR
return x, nil
}
-type SmartHTTP_InfoRefsReceivePackClient interface {
+type SmartHTTPService_InfoRefsReceivePackClient interface {
Recv() (*InfoRefsResponse, error)
grpc.ClientStream
}
-type smartHTTPInfoRefsReceivePackClient struct {
+type smartHTTPServiceInfoRefsReceivePackClient struct {
grpc.ClientStream
}
-func (x *smartHTTPInfoRefsReceivePackClient) Recv() (*InfoRefsResponse, error) {
+func (x *smartHTTPServiceInfoRefsReceivePackClient) Recv() (*InfoRefsResponse, error) {
m := new(InfoRefsResponse)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
@@ -248,30 +255,30 @@ func (x *smartHTTPInfoRefsReceivePackClient) Recv() (*InfoRefsResponse, error) {
return m, nil
}
-func (c *smartHTTPClient) PostUploadPack(ctx context.Context, opts ...grpc.CallOption) (SmartHTTP_PostUploadPackClient, error) {
- stream, err := grpc.NewClientStream(ctx, &_SmartHTTP_serviceDesc.Streams[2], c.cc, "/gitaly.SmartHTTP/PostUploadPack", opts...)
+func (c *smartHTTPServiceClient) PostUploadPack(ctx context.Context, opts ...grpc.CallOption) (SmartHTTPService_PostUploadPackClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_SmartHTTPService_serviceDesc.Streams[2], c.cc, "/gitaly.SmartHTTPService/PostUploadPack", opts...)
if err != nil {
return nil, err
}
- x := &smartHTTPPostUploadPackClient{stream}
+ x := &smartHTTPServicePostUploadPackClient{stream}
return x, nil
}
-type SmartHTTP_PostUploadPackClient interface {
+type SmartHTTPService_PostUploadPackClient interface {
Send(*PostUploadPackRequest) error
Recv() (*PostUploadPackResponse, error)
grpc.ClientStream
}
-type smartHTTPPostUploadPackClient struct {
+type smartHTTPServicePostUploadPackClient struct {
grpc.ClientStream
}
-func (x *smartHTTPPostUploadPackClient) Send(m *PostUploadPackRequest) error {
+func (x *smartHTTPServicePostUploadPackClient) Send(m *PostUploadPackRequest) error {
return x.ClientStream.SendMsg(m)
}
-func (x *smartHTTPPostUploadPackClient) Recv() (*PostUploadPackResponse, error) {
+func (x *smartHTTPServicePostUploadPackClient) Recv() (*PostUploadPackResponse, error) {
m := new(PostUploadPackResponse)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
@@ -279,30 +286,30 @@ func (x *smartHTTPPostUploadPackClient) Recv() (*PostUploadPackResponse, error)
return m, nil
}
-func (c *smartHTTPClient) PostReceivePack(ctx context.Context, opts ...grpc.CallOption) (SmartHTTP_PostReceivePackClient, error) {
- stream, err := grpc.NewClientStream(ctx, &_SmartHTTP_serviceDesc.Streams[3], c.cc, "/gitaly.SmartHTTP/PostReceivePack", opts...)
+func (c *smartHTTPServiceClient) PostReceivePack(ctx context.Context, opts ...grpc.CallOption) (SmartHTTPService_PostReceivePackClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_SmartHTTPService_serviceDesc.Streams[3], c.cc, "/gitaly.SmartHTTPService/PostReceivePack", opts...)
if err != nil {
return nil, err
}
- x := &smartHTTPPostReceivePackClient{stream}
+ x := &smartHTTPServicePostReceivePackClient{stream}
return x, nil
}
-type SmartHTTP_PostReceivePackClient interface {
+type SmartHTTPService_PostReceivePackClient interface {
Send(*PostReceivePackRequest) error
Recv() (*PostReceivePackResponse, error)
grpc.ClientStream
}
-type smartHTTPPostReceivePackClient struct {
+type smartHTTPServicePostReceivePackClient struct {
grpc.ClientStream
}
-func (x *smartHTTPPostReceivePackClient) Send(m *PostReceivePackRequest) error {
+func (x *smartHTTPServicePostReceivePackClient) Send(m *PostReceivePackRequest) error {
return x.ClientStream.SendMsg(m)
}
-func (x *smartHTTPPostReceivePackClient) Recv() (*PostReceivePackResponse, error) {
+func (x *smartHTTPServicePostReceivePackClient) Recv() (*PostReceivePackResponse, error) {
m := new(PostReceivePackResponse)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
@@ -310,84 +317,84 @@ func (x *smartHTTPPostReceivePackClient) Recv() (*PostReceivePackResponse, error
return m, nil
}
-// Server API for SmartHTTP service
+// Server API for SmartHTTPService service
-type SmartHTTPServer interface {
+type SmartHTTPServiceServer interface {
// The response body for GET /info/refs?service=git-upload-pack
- InfoRefsUploadPack(*InfoRefsRequest, SmartHTTP_InfoRefsUploadPackServer) error
+ InfoRefsUploadPack(*InfoRefsRequest, SmartHTTPService_InfoRefsUploadPackServer) error
// The response body for GET /info/refs?service=git-receive-pack
- InfoRefsReceivePack(*InfoRefsRequest, SmartHTTP_InfoRefsReceivePackServer) error
+ InfoRefsReceivePack(*InfoRefsRequest, SmartHTTPService_InfoRefsReceivePackServer) error
// Request and response body for POST /upload-pack
- PostUploadPack(SmartHTTP_PostUploadPackServer) error
+ PostUploadPack(SmartHTTPService_PostUploadPackServer) error
// Request and response body for POST /receive-pack
- PostReceivePack(SmartHTTP_PostReceivePackServer) error
+ PostReceivePack(SmartHTTPService_PostReceivePackServer) error
}
-func RegisterSmartHTTPServer(s *grpc.Server, srv SmartHTTPServer) {
- s.RegisterService(&_SmartHTTP_serviceDesc, srv)
+func RegisterSmartHTTPServiceServer(s *grpc.Server, srv SmartHTTPServiceServer) {
+ s.RegisterService(&_SmartHTTPService_serviceDesc, srv)
}
-func _SmartHTTP_InfoRefsUploadPack_Handler(srv interface{}, stream grpc.ServerStream) error {
+func _SmartHTTPService_InfoRefsUploadPack_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(InfoRefsRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
- return srv.(SmartHTTPServer).InfoRefsUploadPack(m, &smartHTTPInfoRefsUploadPackServer{stream})
+ return srv.(SmartHTTPServiceServer).InfoRefsUploadPack(m, &smartHTTPServiceInfoRefsUploadPackServer{stream})
}
-type SmartHTTP_InfoRefsUploadPackServer interface {
+type SmartHTTPService_InfoRefsUploadPackServer interface {
Send(*InfoRefsResponse) error
grpc.ServerStream
}
-type smartHTTPInfoRefsUploadPackServer struct {
+type smartHTTPServiceInfoRefsUploadPackServer struct {
grpc.ServerStream
}
-func (x *smartHTTPInfoRefsUploadPackServer) Send(m *InfoRefsResponse) error {
+func (x *smartHTTPServiceInfoRefsUploadPackServer) Send(m *InfoRefsResponse) error {
return x.ServerStream.SendMsg(m)
}
-func _SmartHTTP_InfoRefsReceivePack_Handler(srv interface{}, stream grpc.ServerStream) error {
+func _SmartHTTPService_InfoRefsReceivePack_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(InfoRefsRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
- return srv.(SmartHTTPServer).InfoRefsReceivePack(m, &smartHTTPInfoRefsReceivePackServer{stream})
+ return srv.(SmartHTTPServiceServer).InfoRefsReceivePack(m, &smartHTTPServiceInfoRefsReceivePackServer{stream})
}
-type SmartHTTP_InfoRefsReceivePackServer interface {
+type SmartHTTPService_InfoRefsReceivePackServer interface {
Send(*InfoRefsResponse) error
grpc.ServerStream
}
-type smartHTTPInfoRefsReceivePackServer struct {
+type smartHTTPServiceInfoRefsReceivePackServer struct {
grpc.ServerStream
}
-func (x *smartHTTPInfoRefsReceivePackServer) Send(m *InfoRefsResponse) error {
+func (x *smartHTTPServiceInfoRefsReceivePackServer) Send(m *InfoRefsResponse) error {
return x.ServerStream.SendMsg(m)
}
-func _SmartHTTP_PostUploadPack_Handler(srv interface{}, stream grpc.ServerStream) error {
- return srv.(SmartHTTPServer).PostUploadPack(&smartHTTPPostUploadPackServer{stream})
+func _SmartHTTPService_PostUploadPack_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(SmartHTTPServiceServer).PostUploadPack(&smartHTTPServicePostUploadPackServer{stream})
}
-type SmartHTTP_PostUploadPackServer interface {
+type SmartHTTPService_PostUploadPackServer interface {
Send(*PostUploadPackResponse) error
Recv() (*PostUploadPackRequest, error)
grpc.ServerStream
}
-type smartHTTPPostUploadPackServer struct {
+type smartHTTPServicePostUploadPackServer struct {
grpc.ServerStream
}
-func (x *smartHTTPPostUploadPackServer) Send(m *PostUploadPackResponse) error {
+func (x *smartHTTPServicePostUploadPackServer) Send(m *PostUploadPackResponse) error {
return x.ServerStream.SendMsg(m)
}
-func (x *smartHTTPPostUploadPackServer) Recv() (*PostUploadPackRequest, error) {
+func (x *smartHTTPServicePostUploadPackServer) Recv() (*PostUploadPackRequest, error) {
m := new(PostUploadPackRequest)
if err := x.ServerStream.RecvMsg(m); err != nil {
return nil, err
@@ -395,25 +402,25 @@ func (x *smartHTTPPostUploadPackServer) Recv() (*PostUploadPackRequest, error) {
return m, nil
}
-func _SmartHTTP_PostReceivePack_Handler(srv interface{}, stream grpc.ServerStream) error {
- return srv.(SmartHTTPServer).PostReceivePack(&smartHTTPPostReceivePackServer{stream})
+func _SmartHTTPService_PostReceivePack_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(SmartHTTPServiceServer).PostReceivePack(&smartHTTPServicePostReceivePackServer{stream})
}
-type SmartHTTP_PostReceivePackServer interface {
+type SmartHTTPService_PostReceivePackServer interface {
Send(*PostReceivePackResponse) error
Recv() (*PostReceivePackRequest, error)
grpc.ServerStream
}
-type smartHTTPPostReceivePackServer struct {
+type smartHTTPServicePostReceivePackServer struct {
grpc.ServerStream
}
-func (x *smartHTTPPostReceivePackServer) Send(m *PostReceivePackResponse) error {
+func (x *smartHTTPServicePostReceivePackServer) Send(m *PostReceivePackResponse) error {
return x.ServerStream.SendMsg(m)
}
-func (x *smartHTTPPostReceivePackServer) Recv() (*PostReceivePackRequest, error) {
+func (x *smartHTTPServicePostReceivePackServer) Recv() (*PostReceivePackRequest, error) {
m := new(PostReceivePackRequest)
if err := x.ServerStream.RecvMsg(m); err != nil {
return nil, err
@@ -421,30 +428,30 @@ func (x *smartHTTPPostReceivePackServer) Recv() (*PostReceivePackRequest, error)
return m, nil
}
-var _SmartHTTP_serviceDesc = grpc.ServiceDesc{
- ServiceName: "gitaly.SmartHTTP",
- HandlerType: (*SmartHTTPServer)(nil),
+var _SmartHTTPService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "gitaly.SmartHTTPService",
+ HandlerType: (*SmartHTTPServiceServer)(nil),
Methods: []grpc.MethodDesc{},
Streams: []grpc.StreamDesc{
{
StreamName: "InfoRefsUploadPack",
- Handler: _SmartHTTP_InfoRefsUploadPack_Handler,
+ Handler: _SmartHTTPService_InfoRefsUploadPack_Handler,
ServerStreams: true,
},
{
StreamName: "InfoRefsReceivePack",
- Handler: _SmartHTTP_InfoRefsReceivePack_Handler,
+ Handler: _SmartHTTPService_InfoRefsReceivePack_Handler,
ServerStreams: true,
},
{
StreamName: "PostUploadPack",
- Handler: _SmartHTTP_PostUploadPack_Handler,
+ Handler: _SmartHTTPService_PostUploadPack_Handler,
ServerStreams: true,
ClientStreams: true,
},
{
StreamName: "PostReceivePack",
- Handler: _SmartHTTP_PostReceivePack_Handler,
+ Handler: _SmartHTTPService_PostReceivePack_Handler,
ServerStreams: true,
ClientStreams: true,
},
@@ -452,27 +459,29 @@ var _SmartHTTP_serviceDesc = grpc.ServiceDesc{
Metadata: "smarthttp.proto",
}
-func init() { proto.RegisterFile("smarthttp.proto", fileDescriptor5) }
+func init() { proto.RegisterFile("smarthttp.proto", fileDescriptor8) }
-var fileDescriptor5 = []byte{
- // 304 bytes of a gzipped FileDescriptorProto
+var fileDescriptor8 = []byte{
+ // 327 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x53, 0x4d, 0x4b, 0xc3, 0x40,
- 0x14, 0x74, 0x6b, 0x2d, 0xf4, 0x59, 0xac, 0xbc, 0xa2, 0x0d, 0x01, 0xb5, 0xe4, 0x20, 0x39, 0x68,
- 0x28, 0xf1, 0x37, 0x08, 0x16, 0x3d, 0x84, 0xb5, 0x05, 0x6f, 0x65, 0x6d, 0xb6, 0x69, 0x30, 0x76,
- 0xe3, 0xee, 0x56, 0xe8, 0x2f, 0xf5, 0xef, 0x88, 0x09, 0xf9, 0x68, 0x62, 0x3c, 0x28, 0xde, 0xc2,
- 0x9b, 0xf7, 0x66, 0x26, 0x33, 0x2c, 0xf4, 0xd5, 0x2b, 0x93, 0x7a, 0xa5, 0x75, 0xec, 0xc4, 0x52,
- 0x68, 0x81, 0x9d, 0x20, 0xd4, 0x2c, 0xda, 0x9a, 0x3d, 0xb5, 0x62, 0x92, 0xfb, 0xe9, 0xd4, 0xba,
- 0x85, 0xfe, 0x64, 0xbd, 0x14, 0x94, 0x2f, 0x15, 0xe5, 0x6f, 0x1b, 0xae, 0x34, 0xba, 0x00, 0x92,
- 0xc7, 0x42, 0x85, 0x5a, 0xc8, 0xad, 0x41, 0x46, 0xc4, 0x3e, 0x74, 0xd1, 0x49, 0xaf, 0x1d, 0x9a,
- 0x23, 0xb4, 0xb4, 0x65, 0x5d, 0xc2, 0x71, 0x41, 0xa3, 0x62, 0xb1, 0x56, 0x1c, 0x11, 0xda, 0x3e,
- 0xd3, 0x2c, 0x61, 0xe8, 0xd1, 0xe4, 0xdb, 0x9a, 0xc3, 0x89, 0x27, 0x94, 0x9e, 0xc5, 0x91, 0x60,
- 0xbe, 0xc7, 0x16, 0x2f, 0x7f, 0x10, 0xcd, 0x05, 0x5a, 0x25, 0x81, 0x2b, 0x38, 0xad, 0x0a, 0xfc,
- 0x60, 0x67, 0x93, 0x6e, 0x53, 0xbe, 0xe0, 0xe1, 0x3b, 0xff, 0x07, 0x3f, 0x38, 0x80, 0x83, 0x20,
- 0x9a, 0x87, 0xbe, 0xb1, 0x3f, 0x22, 0x76, 0x97, 0xb6, 0x83, 0x68, 0xe2, 0x5b, 0xd7, 0x30, 0xac,
- 0xc9, 0x36, 0xbb, 0x74, 0x3f, 0x5a, 0xd0, 0x7d, 0xfc, 0x6a, 0xf3, 0x6e, 0x3a, 0xf5, 0xf0, 0x1e,
- 0x30, 0x8b, 0xba, 0xf8, 0x4b, 0x1c, 0x66, 0xde, 0x2a, 0x6d, 0x9a, 0x46, 0x1d, 0x48, 0xa5, 0xac,
- 0xbd, 0x31, 0xc1, 0x07, 0x18, 0x14, 0xf3, 0xdc, 0xcd, 0x6f, 0xd9, 0x66, 0x70, 0xb4, 0x1b, 0x3e,
- 0x9e, 0x65, 0xfb, 0xdf, 0xb6, 0x6e, 0x9e, 0x37, 0xc1, 0x19, 0xa9, 0x4d, 0xc6, 0x04, 0x9f, 0xa0,
- 0x5f, 0x89, 0x0b, 0x77, 0x0e, 0xeb, 0xf5, 0x99, 0x17, 0x8d, 0x78, 0x99, 0xf9, 0xb9, 0x93, 0x3c,
- 0x82, 0x9b, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x16, 0x3e, 0x9b, 0xd1, 0x2d, 0x03, 0x00, 0x00,
+ 0x10, 0x75, 0x6b, 0x2d, 0x38, 0x56, 0x5b, 0xa6, 0x68, 0x4b, 0x40, 0x2d, 0x11, 0xa4, 0x07, 0x2d,
+ 0xa5, 0xfe, 0x06, 0xc1, 0xa2, 0x87, 0xb2, 0x6d, 0xc1, 0x5b, 0x59, 0x93, 0x6d, 0x1a, 0x5c, 0xbb,
+ 0x71, 0x77, 0x2d, 0xf4, 0xaf, 0xf8, 0xe3, 0xfc, 0x2d, 0x62, 0x42, 0x3e, 0x9a, 0x18, 0x0f, 0x8a,
+ 0xb7, 0x30, 0x6f, 0xe6, 0xbd, 0x37, 0xf3, 0xb2, 0xd0, 0xd0, 0x2f, 0x4c, 0x99, 0xa5, 0x31, 0x41,
+ 0x3f, 0x50, 0xd2, 0x48, 0xac, 0x79, 0xbe, 0x61, 0x62, 0x63, 0xd5, 0xf5, 0x92, 0x29, 0xee, 0x46,
+ 0x55, 0xfb, 0x16, 0x1a, 0xa3, 0xd5, 0x42, 0x52, 0xbe, 0xd0, 0x94, 0xbf, 0xbe, 0x71, 0x6d, 0x70,
+ 0x08, 0xa0, 0x78, 0x20, 0xb5, 0x6f, 0xa4, 0xda, 0x74, 0x48, 0x97, 0xf4, 0x0e, 0x86, 0xd8, 0x8f,
+ 0xa6, 0xfb, 0x34, 0x41, 0x68, 0xa6, 0xcb, 0xbe, 0x84, 0x66, 0x4a, 0xa3, 0x03, 0xb9, 0xd2, 0x1c,
+ 0x11, 0xaa, 0x2e, 0x33, 0x2c, 0x64, 0xa8, 0xd3, 0xf0, 0xdb, 0x9e, 0xc3, 0xf1, 0x58, 0x6a, 0x33,
+ 0x0b, 0x84, 0x64, 0xee, 0x98, 0x39, 0xcf, 0x7f, 0x10, 0x4d, 0x04, 0x2a, 0x19, 0x81, 0x2b, 0x38,
+ 0xc9, 0x0b, 0xfc, 0x60, 0xe7, 0x9d, 0x44, 0xed, 0x94, 0x3b, 0xdc, 0x5f, 0xf3, 0x7f, 0x30, 0x84,
+ 0x2d, 0xd8, 0xf3, 0xc4, 0xdc, 0x77, 0x3b, 0xbb, 0x5d, 0xd2, 0xdb, 0xa7, 0x55, 0x4f, 0x8c, 0x5c,
+ 0xbc, 0x80, 0x43, 0x4f, 0xcc, 0x33, 0xfc, 0xd5, 0x10, 0xac, 0x7b, 0x22, 0x65, 0xb6, 0xaf, 0xa1,
+ 0x5d, 0xf0, 0x56, 0xbe, 0xcb, 0xf0, 0xa3, 0x02, 0xcd, 0xc9, 0x57, 0xe6, 0x77, 0xd3, 0xe9, 0x78,
+ 0xc2, 0xd5, 0xda, 0x77, 0x38, 0xde, 0x03, 0xc6, 0xb9, 0xa4, 0x27, 0xc1, 0x76, 0xbc, 0x47, 0x2e,
+ 0x7a, 0xab, 0x53, 0x04, 0x22, 0x45, 0x7b, 0x67, 0x40, 0xf0, 0x01, 0x5a, 0x69, 0x3d, 0x31, 0xf5,
+ 0x5b, 0xb6, 0x19, 0x1c, 0x6d, 0x27, 0x85, 0xa7, 0x71, 0xff, 0xb7, 0xbf, 0x88, 0x75, 0x56, 0x06,
+ 0xc7, 0xa4, 0x3d, 0x32, 0x20, 0xf8, 0x08, 0x8d, 0xdc, 0xd5, 0x70, 0x6b, 0xb0, 0x18, 0xb5, 0x75,
+ 0x5e, 0x8a, 0x67, 0x99, 0x9f, 0x6a, 0xe1, 0x8b, 0xb9, 0xf9, 0x0c, 0x00, 0x00, 0xff, 0xff, 0xbe,
+ 0x10, 0x08, 0x81, 0x5a, 0x03, 0x00, 0x00,
}
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/ssh.pb.go b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/ssh.pb.go
index 842b88e..3d92861 100644
--- a/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/ssh.pb.go
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly-proto/go/ssh.pb.go
@@ -1,6 +1,5 @@
-// Code generated by protoc-gen-go.
+// Code generated by protoc-gen-go. DO NOT EDIT.
// source: ssh.proto
-// DO NOT EDIT!
package gitaly
@@ -28,7 +27,7 @@ type SSHUploadPackRequest struct {
func (m *SSHUploadPackRequest) Reset() { *m = SSHUploadPackRequest{} }
func (m *SSHUploadPackRequest) String() string { return proto.CompactTextString(m) }
func (*SSHUploadPackRequest) ProtoMessage() {}
-func (*SSHUploadPackRequest) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{0} }
+func (*SSHUploadPackRequest) Descriptor() ([]byte, []int) { return fileDescriptor9, []int{0} }
func (m *SSHUploadPackRequest) GetRepository() *Repository {
if m != nil {
@@ -57,7 +56,7 @@ type SSHUploadPackResponse struct {
func (m *SSHUploadPackResponse) Reset() { *m = SSHUploadPackResponse{} }
func (m *SSHUploadPackResponse) String() string { return proto.CompactTextString(m) }
func (*SSHUploadPackResponse) ProtoMessage() {}
-func (*SSHUploadPackResponse) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{1} }
+func (*SSHUploadPackResponse) Descriptor() ([]byte, []int) { return fileDescriptor9, []int{1} }
func (m *SSHUploadPackResponse) GetStdout() []byte {
if m != nil {
@@ -85,14 +84,16 @@ type SSHReceivePackRequest struct {
Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
// A chunk of raw data to be copied to 'git upload-pack' standard input
Stdin []byte `protobuf:"bytes,2,opt,name=stdin,proto3" json:"stdin,omitempty"`
- // Contents of GL_ID environment variable for 'git receive-pack'
- GlId string `protobuf:"bytes,3,opt,name=gl_id,json=glId" json:"gl_id,omitempty"`
+ // Contents of GL_ID and GL_REPOSITORY environment variables for
+ // 'git receive-pack'
+ GlId string `protobuf:"bytes,3,opt,name=gl_id,json=glId" json:"gl_id,omitempty"`
+ GlRepository string `protobuf:"bytes,4,opt,name=gl_repository,json=glRepository" json:"gl_repository,omitempty"`
}
func (m *SSHReceivePackRequest) Reset() { *m = SSHReceivePackRequest{} }
func (m *SSHReceivePackRequest) String() string { return proto.CompactTextString(m) }
func (*SSHReceivePackRequest) ProtoMessage() {}
-func (*SSHReceivePackRequest) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{2} }
+func (*SSHReceivePackRequest) Descriptor() ([]byte, []int) { return fileDescriptor9, []int{2} }
func (m *SSHReceivePackRequest) GetRepository() *Repository {
if m != nil {
@@ -115,6 +116,13 @@ func (m *SSHReceivePackRequest) GetGlId() string {
return ""
}
+func (m *SSHReceivePackRequest) GetGlRepository() string {
+ if m != nil {
+ return m.GlRepository
+ }
+ return ""
+}
+
type SSHReceivePackResponse struct {
// A chunk of raw data from 'git receive-pack' standard output
Stdout []byte `protobuf:"bytes,1,opt,name=stdout,proto3" json:"stdout,omitempty"`
@@ -128,7 +136,7 @@ type SSHReceivePackResponse struct {
func (m *SSHReceivePackResponse) Reset() { *m = SSHReceivePackResponse{} }
func (m *SSHReceivePackResponse) String() string { return proto.CompactTextString(m) }
func (*SSHReceivePackResponse) ProtoMessage() {}
-func (*SSHReceivePackResponse) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{3} }
+func (*SSHReceivePackResponse) Descriptor() ([]byte, []int) { return fileDescriptor9, []int{3} }
func (m *SSHReceivePackResponse) GetStdout() []byte {
if m != nil {
@@ -166,47 +174,47 @@ var _ grpc.ClientConn
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4
-// Client API for SSH service
+// Client API for SSHService service
-type SSHClient interface {
+type SSHServiceClient interface {
// To forward 'git upload-pack' to Gitaly for SSH sessions
- SSHUploadPack(ctx context.Context, opts ...grpc.CallOption) (SSH_SSHUploadPackClient, error)
+ SSHUploadPack(ctx context.Context, opts ...grpc.CallOption) (SSHService_SSHUploadPackClient, error)
// To forward 'git receive-pack' to Gitaly for SSH sessions
- SSHReceivePack(ctx context.Context, opts ...grpc.CallOption) (SSH_SSHReceivePackClient, error)
+ SSHReceivePack(ctx context.Context, opts ...grpc.CallOption) (SSHService_SSHReceivePackClient, error)
}
-type sSHClient struct {
+type sSHServiceClient struct {
cc *grpc.ClientConn
}
-func NewSSHClient(cc *grpc.ClientConn) SSHClient {
- return &sSHClient{cc}
+func NewSSHServiceClient(cc *grpc.ClientConn) SSHServiceClient {
+ return &sSHServiceClient{cc}
}
-func (c *sSHClient) SSHUploadPack(ctx context.Context, opts ...grpc.CallOption) (SSH_SSHUploadPackClient, error) {
- stream, err := grpc.NewClientStream(ctx, &_SSH_serviceDesc.Streams[0], c.cc, "/gitaly.SSH/SSHUploadPack", opts...)
+func (c *sSHServiceClient) SSHUploadPack(ctx context.Context, opts ...grpc.CallOption) (SSHService_SSHUploadPackClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_SSHService_serviceDesc.Streams[0], c.cc, "/gitaly.SSHService/SSHUploadPack", opts...)
if err != nil {
return nil, err
}
- x := &sSHSSHUploadPackClient{stream}
+ x := &sSHServiceSSHUploadPackClient{stream}
return x, nil
}
-type SSH_SSHUploadPackClient interface {
+type SSHService_SSHUploadPackClient interface {
Send(*SSHUploadPackRequest) error
Recv() (*SSHUploadPackResponse, error)
grpc.ClientStream
}
-type sSHSSHUploadPackClient struct {
+type sSHServiceSSHUploadPackClient struct {
grpc.ClientStream
}
-func (x *sSHSSHUploadPackClient) Send(m *SSHUploadPackRequest) error {
+func (x *sSHServiceSSHUploadPackClient) Send(m *SSHUploadPackRequest) error {
return x.ClientStream.SendMsg(m)
}
-func (x *sSHSSHUploadPackClient) Recv() (*SSHUploadPackResponse, error) {
+func (x *sSHServiceSSHUploadPackClient) Recv() (*SSHUploadPackResponse, error) {
m := new(SSHUploadPackResponse)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
@@ -214,30 +222,30 @@ func (x *sSHSSHUploadPackClient) Recv() (*SSHUploadPackResponse, error) {
return m, nil
}
-func (c *sSHClient) SSHReceivePack(ctx context.Context, opts ...grpc.CallOption) (SSH_SSHReceivePackClient, error) {
- stream, err := grpc.NewClientStream(ctx, &_SSH_serviceDesc.Streams[1], c.cc, "/gitaly.SSH/SSHReceivePack", opts...)
+func (c *sSHServiceClient) SSHReceivePack(ctx context.Context, opts ...grpc.CallOption) (SSHService_SSHReceivePackClient, error) {
+ stream, err := grpc.NewClientStream(ctx, &_SSHService_serviceDesc.Streams[1], c.cc, "/gitaly.SSHService/SSHReceivePack", opts...)
if err != nil {
return nil, err
}
- x := &sSHSSHReceivePackClient{stream}
+ x := &sSHServiceSSHReceivePackClient{stream}
return x, nil
}
-type SSH_SSHReceivePackClient interface {
+type SSHService_SSHReceivePackClient interface {
Send(*SSHReceivePackRequest) error
Recv() (*SSHReceivePackResponse, error)
grpc.ClientStream
}
-type sSHSSHReceivePackClient struct {
+type sSHServiceSSHReceivePackClient struct {
grpc.ClientStream
}
-func (x *sSHSSHReceivePackClient) Send(m *SSHReceivePackRequest) error {
+func (x *sSHServiceSSHReceivePackClient) Send(m *SSHReceivePackRequest) error {
return x.ClientStream.SendMsg(m)
}
-func (x *sSHSSHReceivePackClient) Recv() (*SSHReceivePackResponse, error) {
+func (x *sSHServiceSSHReceivePackClient) Recv() (*SSHReceivePackResponse, error) {
m := new(SSHReceivePackResponse)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
@@ -245,38 +253,38 @@ func (x *sSHSSHReceivePackClient) Recv() (*SSHReceivePackResponse, error) {
return m, nil
}
-// Server API for SSH service
+// Server API for SSHService service
-type SSHServer interface {
+type SSHServiceServer interface {
// To forward 'git upload-pack' to Gitaly for SSH sessions
- SSHUploadPack(SSH_SSHUploadPackServer) error
+ SSHUploadPack(SSHService_SSHUploadPackServer) error
// To forward 'git receive-pack' to Gitaly for SSH sessions
- SSHReceivePack(SSH_SSHReceivePackServer) error
+ SSHReceivePack(SSHService_SSHReceivePackServer) error
}
-func RegisterSSHServer(s *grpc.Server, srv SSHServer) {
- s.RegisterService(&_SSH_serviceDesc, srv)
+func RegisterSSHServiceServer(s *grpc.Server, srv SSHServiceServer) {
+ s.RegisterService(&_SSHService_serviceDesc, srv)
}
-func _SSH_SSHUploadPack_Handler(srv interface{}, stream grpc.ServerStream) error {
- return srv.(SSHServer).SSHUploadPack(&sSHSSHUploadPackServer{stream})
+func _SSHService_SSHUploadPack_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(SSHServiceServer).SSHUploadPack(&sSHServiceSSHUploadPackServer{stream})
}
-type SSH_SSHUploadPackServer interface {
+type SSHService_SSHUploadPackServer interface {
Send(*SSHUploadPackResponse) error
Recv() (*SSHUploadPackRequest, error)
grpc.ServerStream
}
-type sSHSSHUploadPackServer struct {
+type sSHServiceSSHUploadPackServer struct {
grpc.ServerStream
}
-func (x *sSHSSHUploadPackServer) Send(m *SSHUploadPackResponse) error {
+func (x *sSHServiceSSHUploadPackServer) Send(m *SSHUploadPackResponse) error {
return x.ServerStream.SendMsg(m)
}
-func (x *sSHSSHUploadPackServer) Recv() (*SSHUploadPackRequest, error) {
+func (x *sSHServiceSSHUploadPackServer) Recv() (*SSHUploadPackRequest, error) {
m := new(SSHUploadPackRequest)
if err := x.ServerStream.RecvMsg(m); err != nil {
return nil, err
@@ -284,25 +292,25 @@ func (x *sSHSSHUploadPackServer) Recv() (*SSHUploadPackRequest, error) {
return m, nil
}
-func _SSH_SSHReceivePack_Handler(srv interface{}, stream grpc.ServerStream) error {
- return srv.(SSHServer).SSHReceivePack(&sSHSSHReceivePackServer{stream})
+func _SSHService_SSHReceivePack_Handler(srv interface{}, stream grpc.ServerStream) error {
+ return srv.(SSHServiceServer).SSHReceivePack(&sSHServiceSSHReceivePackServer{stream})
}
-type SSH_SSHReceivePackServer interface {
+type SSHService_SSHReceivePackServer interface {
Send(*SSHReceivePackResponse) error
Recv() (*SSHReceivePackRequest, error)
grpc.ServerStream
}
-type sSHSSHReceivePackServer struct {
+type sSHServiceSSHReceivePackServer struct {
grpc.ServerStream
}
-func (x *sSHSSHReceivePackServer) Send(m *SSHReceivePackResponse) error {
+func (x *sSHServiceSSHReceivePackServer) Send(m *SSHReceivePackResponse) error {
return x.ServerStream.SendMsg(m)
}
-func (x *sSHSSHReceivePackServer) Recv() (*SSHReceivePackRequest, error) {
+func (x *sSHServiceSSHReceivePackServer) Recv() (*SSHReceivePackRequest, error) {
m := new(SSHReceivePackRequest)
if err := x.ServerStream.RecvMsg(m); err != nil {
return nil, err
@@ -310,20 +318,20 @@ func (x *sSHSSHReceivePackServer) Recv() (*SSHReceivePackRequest, error) {
return m, nil
}
-var _SSH_serviceDesc = grpc.ServiceDesc{
- ServiceName: "gitaly.SSH",
- HandlerType: (*SSHServer)(nil),
+var _SSHService_serviceDesc = grpc.ServiceDesc{
+ ServiceName: "gitaly.SSHService",
+ HandlerType: (*SSHServiceServer)(nil),
Methods: []grpc.MethodDesc{},
Streams: []grpc.StreamDesc{
{
StreamName: "SSHUploadPack",
- Handler: _SSH_SSHUploadPack_Handler,
+ Handler: _SSHService_SSHUploadPack_Handler,
ServerStreams: true,
ClientStreams: true,
},
{
StreamName: "SSHReceivePack",
- Handler: _SSH_SSHReceivePack_Handler,
+ Handler: _SSHService_SSHReceivePack_Handler,
ServerStreams: true,
ClientStreams: true,
},
@@ -331,26 +339,28 @@ var _SSH_serviceDesc = grpc.ServiceDesc{
Metadata: "ssh.proto",
}
-func init() { proto.RegisterFile("ssh.proto", fileDescriptor6) }
-
-var fileDescriptor6 = []byte{
- // 284 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x52, 0xcd, 0x4a, 0xc3, 0x40,
- 0x10, 0x76, 0xad, 0x0d, 0x74, 0x1a, 0x3d, 0xac, 0xb5, 0x84, 0xa0, 0x52, 0x72, 0xca, 0x29, 0x48,
- 0xfa, 0x0c, 0x42, 0xbd, 0xc9, 0x86, 0x9e, 0x6b, 0xec, 0x2e, 0xe9, 0x62, 0xe8, 0xc6, 0x9d, 0x49,
- 0x69, 0x41, 0xdf, 0xc9, 0x47, 0x14, 0x92, 0x58, 0x92, 0x6a, 0x8f, 0xf6, 0xb6, 0x33, 0xdf, 0xce,
- 0xf7, 0x33, 0xbb, 0x30, 0x40, 0x5c, 0x45, 0x85, 0x35, 0x64, 0xb8, 0x93, 0x69, 0x4a, 0xf3, 0x9d,
- 0xef, 0xe2, 0x2a, 0xb5, 0x4a, 0xd6, 0xdd, 0xe0, 0x05, 0x46, 0x49, 0x32, 0x9b, 0x17, 0xb9, 0x49,
- 0xe5, 0x73, 0xba, 0x7c, 0x13, 0xea, 0xbd, 0x54, 0x48, 0x3c, 0x06, 0xb0, 0xaa, 0x30, 0xa8, 0xc9,
- 0xd8, 0x9d, 0xc7, 0x26, 0x2c, 0x1c, 0xc6, 0x3c, 0xaa, 0x29, 0x22, 0xb1, 0x47, 0x44, 0xeb, 0x16,
- 0x1f, 0x41, 0x1f, 0x49, 0xea, 0xb5, 0x77, 0x3e, 0x61, 0xa1, 0x2b, 0xea, 0x22, 0xf8, 0x80, 0x9b,
- 0x03, 0x05, 0x2c, 0xcc, 0x1a, 0x15, 0x1f, 0x83, 0x83, 0x24, 0x4d, 0x49, 0x15, 0xbd, 0x2b, 0x9a,
- 0xaa, 0xe9, 0x2b, 0x6b, 0x1b, 0x9e, 0xa6, 0xe2, 0x53, 0x18, 0xaa, 0xad, 0xa6, 0x05, 0x52, 0x4a,
- 0x25, 0x7a, 0xbd, 0xae, 0xa7, 0xc7, 0xad, 0xa6, 0xa4, 0x42, 0x04, 0xa8, 0xfd, 0x39, 0xd8, 0x54,
- 0xea, 0x42, 0x2d, 0x95, 0xde, 0xa8, 0x7f, 0x09, 0xc8, 0xaf, 0xa1, 0x9f, 0xe5, 0x0b, 0x2d, 0x2b,
- 0x47, 0x03, 0x71, 0x91, 0xe5, 0x4f, 0x32, 0xf8, 0x84, 0xf1, 0xa1, 0xee, 0x09, 0x63, 0xc7, 0x5f,
- 0x0c, 0x7a, 0x49, 0x32, 0xe3, 0x02, 0x2e, 0x3b, 0xcb, 0xe7, 0xb7, 0x3f, 0x83, 0x7f, 0xbd, 0xba,
- 0x7f, 0x77, 0x04, 0xad, 0xad, 0x07, 0x67, 0x21, 0x7b, 0x60, 0x7c, 0x0e, 0x57, 0xdd, 0x68, 0xbc,
- 0x3d, 0xf6, 0x7b, 0xd5, 0xfe, 0xfd, 0x31, 0xb8, 0x4d, 0xfb, 0xea, 0x54, 0x1f, 0x72, 0xfa, 0x1d,
- 0x00, 0x00, 0xff, 0xff, 0x71, 0xde, 0xae, 0x4f, 0xb3, 0x02, 0x00, 0x00,
+func init() { proto.RegisterFile("ssh.proto", fileDescriptor9) }
+
+var fileDescriptor9 = []byte{
+ // 307 bytes of a gzipped FileDescriptorProto
+ 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x52, 0xcf, 0x4e, 0x32, 0x31,
+ 0x10, 0xff, 0xfa, 0x09, 0x24, 0x0c, 0x8b, 0x87, 0x11, 0x09, 0x21, 0x6a, 0xc8, 0x7a, 0xe1, 0x44,
+ 0x0c, 0x3c, 0x83, 0x09, 0xde, 0x4c, 0x1b, 0xce, 0xb8, 0xd2, 0xc9, 0xd2, 0xd8, 0xd0, 0xb5, 0x2d,
+ 0x04, 0x12, 0x7d, 0x12, 0x1f, 0xc4, 0xd7, 0x33, 0xe9, 0xae, 0xb8, 0x8b, 0x72, 0xd4, 0xdb, 0xce,
+ 0xfc, 0x76, 0x7e, 0x7f, 0x3a, 0x03, 0x4d, 0xe7, 0x96, 0xa3, 0xcc, 0x1a, 0x6f, 0xb0, 0x91, 0x2a,
+ 0x9f, 0xe8, 0x5d, 0x3f, 0x72, 0xcb, 0xc4, 0x92, 0xcc, 0xbb, 0xf1, 0x03, 0x74, 0x84, 0x98, 0xce,
+ 0x32, 0x6d, 0x12, 0x79, 0x9f, 0x2c, 0x9e, 0x38, 0x3d, 0xaf, 0xc9, 0x79, 0x1c, 0x03, 0x58, 0xca,
+ 0x8c, 0x53, 0xde, 0xd8, 0x5d, 0x8f, 0x0d, 0xd8, 0xb0, 0x35, 0xc6, 0x51, 0x4e, 0x31, 0xe2, 0x7b,
+ 0x84, 0x97, 0xfe, 0xc2, 0x0e, 0xd4, 0x9d, 0x97, 0x6a, 0xd5, 0xfb, 0x3f, 0x60, 0xc3, 0x88, 0xe7,
+ 0x45, 0xfc, 0x02, 0xe7, 0x07, 0x0a, 0x2e, 0x33, 0x2b, 0x47, 0xd8, 0x85, 0x86, 0xf3, 0xd2, 0xac,
+ 0x7d, 0xa0, 0x8f, 0x78, 0x51, 0x15, 0x7d, 0xb2, 0xb6, 0xe0, 0x29, 0x2a, 0x9c, 0x40, 0x8b, 0xb6,
+ 0xca, 0xcf, 0x9d, 0x4f, 0xfc, 0xda, 0xf5, 0x4e, 0xaa, 0x9e, 0x6e, 0xb7, 0xca, 0x8b, 0x80, 0x70,
+ 0xa0, 0xfd, 0x77, 0xfc, 0xc6, 0x82, 0x3c, 0xa7, 0x05, 0xa9, 0x0d, 0xfd, 0x4a, 0x42, 0x3c, 0x83,
+ 0x7a, 0xaa, 0xe7, 0x4a, 0x06, 0x4b, 0x4d, 0x5e, 0x4b, 0xf5, 0x9d, 0xc4, 0x6b, 0x68, 0xa7, 0x7a,
+ 0x5e, 0x52, 0xa8, 0x05, 0x30, 0x4a, 0xf5, 0x17, 0x77, 0xfc, 0x0a, 0xdd, 0x43, 0x73, 0x7f, 0xf8,
+ 0x38, 0xe3, 0x77, 0x06, 0x20, 0xc4, 0x54, 0x90, 0xdd, 0xa8, 0x05, 0x21, 0x87, 0x76, 0x65, 0x53,
+ 0x78, 0xf1, 0x39, 0xff, 0xd3, 0x89, 0xf4, 0x2f, 0x8f, 0xa0, 0x79, 0x82, 0xf8, 0xdf, 0x90, 0xdd,
+ 0x30, 0x9c, 0xc1, 0x69, 0x35, 0x21, 0x96, 0xc7, 0xbe, 0xaf, 0xa5, 0x7f, 0x75, 0x0c, 0x2e, 0xd3,
+ 0x3e, 0x36, 0xc2, 0xf5, 0x4e, 0x3e, 0x02, 0x00, 0x00, 0xff, 0xff, 0x79, 0x5b, 0x32, 0x2b, 0xe0,
+ 0x02, 0x00, 0x00,
}
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly/LICENSE b/go/vendor/gitlab.com/gitlab-org/gitaly/LICENSE
new file mode 100644
index 0000000..197e66a
--- /dev/null
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016-2017 GitLab B.V.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly/NOTICE b/go/vendor/gitlab.com/gitlab-org/gitaly/NOTICE
new file mode 100644
index 0000000..77d1396
--- /dev/null
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly/NOTICE
@@ -0,0 +1,2233 @@
+The following components are included in Gitaly:
+
+LICENSE - go
+Copyright (c) 2009 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+PATENTS - go
+Additional IP Rights Grant (Patents)
+
+"This implementation" means the copyrightable works distributed by
+Google as part of the Go project.
+
+Google hereby grants to You a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable (except as stated in this section)
+patent license to make, have made, use, offer to sell, sell, import,
+transfer and otherwise run, modify and propagate the contents of this
+implementation of Go, where such license applies only to those patent
+claims, both currently owned or controlled by Google and acquired in
+the future, licensable by Google that are necessarily infringed by this
+implementation of Go. This grant does not include claims that would be
+infringed only as a consequence of further modification of this
+implementation. If you or your agent or exclusive licensee institute or
+order or agree to the institution of patent litigation against any
+entity (including a cross-claim or counterclaim in a lawsuit) alleging
+that this implementation of Go or any code incorporated within this
+implementation of Go constitutes direct or contributory patent
+infringement, or inducement of patent infringement, then any patent
+rights granted to you under this License for this implementation of Go
+shall terminate as of the date such litigation is filed.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly
+The MIT License (MIT)
+
+Copyright (c) 2016-2017 GitLab B.V.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/internal/middleware/panichandler
+Copyright (c) 2016 Masahiro Sano
+
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+COPYING - gitlab.com/gitlab-org/gitaly/vendor/github.com/BurntSushi/toml
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ Version 2, December 2004
+
+ Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
+
+ Everyone is permitted to copy and distribute verbatim or modified
+ copies of this license document, and changing it is allowed as long
+ as the name is changed.
+
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/github.com/Sirupsen/logrus
+The MIT License (MIT)
+
+Copyright (c) 2014 Simon Eskildsen
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/github.com/beorn7/perks
+Copyright (C) 2013 Blake Mizerany
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/github.com/certifi/gocertifi
+This Source Code Form is subject to the terms of the Mozilla Public License,
+v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain
+one at http://mozilla.org/MPL/2.0/.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/github.com/davecgh/go-spew
+ISC License
+
+Copyright (c) 2012-2016 Dave Collins <dave@davec.name>
+
+Permission to use, copy, modify, and distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/github.com/getsentry/raven-go
+Copyright (c) 2013 Apollic Software, LLC. All rights reserved.
+Copyright (c) 2015 Functional Software, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Apollic Software, LLC nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/github.com/golang/protobuf
+Go support for Protocol Buffers - Google's data interchange format
+
+Copyright 2010 The Go Authors. All rights reserved.
+https://github.com/golang/protobuf
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/github.com/grpc-ecosystem/go-grpc-middleware
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/github.com/grpc-ecosystem/go-grpc-prometheus
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/github.com/kelseyhightower/envconfig
+Copyright (c) 2013 Kelsey Hightower
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/github.com/matttproud/golang_protobuf_extensions
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "{}"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright {yyyy} {name of copyright owner}
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+NOTICE - gitlab.com/gitlab-org/gitaly/vendor/github.com/matttproud/golang_protobuf_extensions
+Copyright 2012 Matt T. Proud (matt.proud@gmail.com)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/github.com/pmezard/go-difflib
+Copyright (c) 2013, Patrick Mezard
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+ The names of its contributors may not be used to endorse or promote
+products derived from this software without specific prior written
+permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/github.com/prometheus/client_golang
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+NOTICE - gitlab.com/gitlab-org/gitaly/vendor/github.com/prometheus/client_golang
+Prometheus instrumentation library for Go applications
+Copyright 2012-2015 The Prometheus Authors
+
+This product includes software developed at
+SoundCloud Ltd. (http://soundcloud.com/).
+
+
+The following components are included in this product:
+
+perks - a fork of https://github.com/bmizerany/perks
+https://github.com/beorn7/perks
+Copyright 2013-2015 Blake Mizerany, Björn Rabenstein
+See https://github.com/beorn7/perks/blob/master/README.md for license details.
+
+Go support for Protocol Buffers - Google's data interchange format
+http://github.com/golang/protobuf/
+Copyright 2010 The Go Authors
+See source code for license details.
+
+Support for streaming Protocol Buffer messages for the Go language (golang).
+https://github.com/matttproud/golang_protobuf_extensions
+Copyright 2013 Matt T. Proud
+Licensed under the Apache License, Version 2.0
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/github.com/prometheus/client_model
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+NOTICE - gitlab.com/gitlab-org/gitaly/vendor/github.com/prometheus/client_model
+Data model artifacts for Prometheus.
+Copyright 2012-2015 The Prometheus Authors
+
+This product includes software developed at
+SoundCloud Ltd. (http://soundcloud.com/).
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/github.com/prometheus/common
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+NOTICE - gitlab.com/gitlab-org/gitaly/vendor/github.com/prometheus/common
+Common libraries shared by Prometheus Go components.
+Copyright 2015 The Prometheus Authors
+
+This product includes software developed at
+SoundCloud Ltd. (http://soundcloud.com/).
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/github.com/prometheus/procfs
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+NOTICE - gitlab.com/gitlab-org/gitaly/vendor/github.com/prometheus/procfs
+procfs provides functions to retrieve system, kernel and process
+metrics from the pseudo-filesystem proc.
+
+Copyright 2014-2015 The Prometheus Authors
+
+This product includes software developed at
+SoundCloud Ltd. (http://soundcloud.com/).
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/github.com/stretchr/testify
+Copyright (c) 2012 - 2013 Mat Ryer and Tyler Bunnell
+
+Please consider promoting this project if you find it useful.
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without restriction,
+including without limitation the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of the Software,
+and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
+OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
+OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/gitlab.com/gitlab-org/gitaly-proto
+The MIT License (MIT)
+
+Copyright (c) 2016-2017 GitLab B.V.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/golang.org/x/net
+Copyright (c) 2009 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+PATENTS - gitlab.com/gitlab-org/gitaly/vendor/golang.org/x/net
+Additional IP Rights Grant (Patents)
+
+"This implementation" means the copyrightable works distributed by
+Google as part of the Go project.
+
+Google hereby grants to You a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable (except as stated in this section)
+patent license to make, have made, use, offer to sell, sell, import,
+transfer and otherwise run, modify and propagate the contents of this
+implementation of Go, where such license applies only to those patent
+claims, both currently owned or controlled by Google and acquired in
+the future, licensable by Google that are necessarily infringed by this
+implementation of Go. This grant does not include claims that would be
+infringed only as a consequence of further modification of this
+implementation. If you or your agent or exclusive licensee institute or
+order or agree to the institution of patent litigation against any
+entity (including a cross-claim or counterclaim in a lawsuit) alleging
+that this implementation of Go or any code incorporated within this
+implementation of Go constitutes direct or contributory patent
+infringement, or inducement of patent infringement, then any patent
+rights granted to you under this License for this implementation of Go
+shall terminate as of the date such litigation is filed.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/golang.org/x/sys
+Copyright (c) 2009 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+PATENTS - gitlab.com/gitlab-org/gitaly/vendor/golang.org/x/sys
+Additional IP Rights Grant (Patents)
+
+"This implementation" means the copyrightable works distributed by
+Google as part of the Go project.
+
+Google hereby grants to You a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable (except as stated in this section)
+patent license to make, have made, use, offer to sell, sell, import,
+transfer and otherwise run, modify and propagate the contents of this
+implementation of Go, where such license applies only to those patent
+claims, both currently owned or controlled by Google and acquired in
+the future, licensable by Google that are necessarily infringed by this
+implementation of Go. This grant does not include claims that would be
+infringed only as a consequence of further modification of this
+implementation. If you or your agent or exclusive licensee institute or
+order or agree to the institution of patent litigation against any
+entity (including a cross-claim or counterclaim in a lawsuit) alleging
+that this implementation of Go or any code incorporated within this
+implementation of Go constitutes direct or contributory patent
+infringement, or inducement of patent infringement, then any patent
+rights granted to you under this License for this implementation of Go
+shall terminate as of the date such litigation is filed.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/golang.org/x/text
+Copyright (c) 2009 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+PATENTS - gitlab.com/gitlab-org/gitaly/vendor/golang.org/x/text
+Additional IP Rights Grant (Patents)
+
+"This implementation" means the copyrightable works distributed by
+Google as part of the Go project.
+
+Google hereby grants to You a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable (except as stated in this section)
+patent license to make, have made, use, offer to sell, sell, import,
+transfer and otherwise run, modify and propagate the contents of this
+implementation of Go, where such license applies only to those patent
+claims, both currently owned or controlled by Google and acquired in
+the future, licensable by Google that are necessarily infringed by this
+implementation of Go. This grant does not include claims that would be
+infringed only as a consequence of further modification of this
+implementation. If you or your agent or exclusive licensee institute or
+order or agree to the institution of patent litigation against any
+entity (including a cross-claim or counterclaim in a lawsuit) alleging
+that this implementation of Go or any code incorporated within this
+implementation of Go constitutes direct or contributory patent
+infringement, or inducement of patent infringement, then any patent
+rights granted to you under this License for this implementation of Go
+shall terminate as of the date such litigation is filed.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/google.golang.org/genproto
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LICENSE - gitlab.com/gitlab-org/gitaly/vendor/google.golang.org/grpc
+Copyright 2014, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+PATENTS - gitlab.com/gitlab-org/gitaly/vendor/google.golang.org/grpc
+Additional IP Rights Grant (Patents)
+
+"This implementation" means the copyrightable works distributed by
+Google as part of the gRPC project.
+
+Google hereby grants to You a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable (except as stated in this section)
+patent license to make, have made, use, offer to sell, sell, import,
+transfer and otherwise run, modify and propagate the contents of this
+implementation of gRPC, where such license applies only to those patent
+claims, both currently owned or controlled by Google and acquired in
+the future, licensable by Google that are necessarily infringed by this
+implementation of gRPC. This grant does not include claims that would be
+infringed only as a consequence of further modification of this
+implementation. If you or your agent or exclusive licensee institute or
+order or agree to the institution of patent litigation against any
+entity (including a cross-claim or counterclaim in a lawsuit) alleging
+that this implementation of gRPC or any code incorporated within this
+implementation of gRPC constitutes direct or contributory patent
+infringement, or inducement of patent infringement, then any patent
+rights granted to you under this License for this implementation of gRPC
+shall terminate as of the date such litigation is filed.
+
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly/auth/rpccredentials.go b/go/vendor/gitlab.com/gitlab-org/gitaly/auth/rpccredentials.go
new file mode 100644
index 0000000..cbe94c2
--- /dev/null
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly/auth/rpccredentials.go
@@ -0,0 +1,25 @@
+package gitalyauth
+
+import (
+ "encoding/base64"
+
+ "golang.org/x/net/context"
+ "google.golang.org/grpc/credentials"
+)
+
+// RPCCredentials can be used with grpc.WithPerRPCCredentials to create a
+// grpc.DialOption that inserts the supplied token for authentication
+// with a Gitaly server.
+func RPCCredentials(token string) credentials.PerRPCCredentials {
+ return &rpcCredentials{token: base64.StdEncoding.EncodeToString([]byte(token))}
+}
+
+type rpcCredentials struct {
+ token string
+}
+
+func (*rpcCredentials) RequireTransportSecurity() bool { return false }
+
+func (rc *rpcCredentials) GetRequestMetadata(context.Context, ...string) (map[string]string, error) {
+ return map[string]string{"authorization": "Bearer " + rc.token}, nil
+}
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly/client/dial.go b/go/vendor/gitlab.com/gitlab-org/gitaly/client/dial.go
new file mode 100644
index 0000000..87e288d
--- /dev/null
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly/client/dial.go
@@ -0,0 +1,61 @@
+package client
+
+import (
+ "fmt"
+ "net"
+ "net/url"
+ "strings"
+ "time"
+
+ "google.golang.org/grpc"
+)
+
+// DefaultDialOpts hold the default DialOptions for connection to Gitaly over UNIX-socket
+var DefaultDialOpts = []grpc.DialOption{
+ grpc.WithInsecure(),
+}
+
+// Dial gitaly
+func Dial(rawAddress string, connOpts []grpc.DialOption) (*grpc.ClientConn, error) {
+ network, addr, err := parseAddress(rawAddress)
+ if err != nil {
+ return nil, err
+ }
+
+ connOpts = append(connOpts,
+ grpc.WithDialer(func(a string, _ time.Duration) (net.Conn, error) {
+ return net.Dial(network, a)
+ }))
+ conn, err := grpc.Dial(addr, connOpts...)
+ if err != nil {
+ return nil, err
+ }
+
+ return conn, nil
+}
+
+func parseAddress(rawAddress string) (network, addr string, err error) {
+ // Parsing unix:// URL's with url.Parse does not give the result we want
+ // so we do it manually.
+ for _, prefix := range []string{"unix://", "unix:"} {
+ if strings.HasPrefix(rawAddress, prefix) {
+ return "unix", strings.TrimPrefix(rawAddress, prefix), nil
+ }
+ }
+
+ u, err := url.Parse(rawAddress)
+ if err != nil {
+ return "", "", err
+ }
+
+ if u.Scheme != "tcp" {
+ return "", "", fmt.Errorf("unknown scheme: %q", rawAddress)
+ }
+ if u.Host == "" {
+ return "", "", fmt.Errorf("network tcp requires host: %q", rawAddress)
+ }
+ if u.Path != "" {
+ return "", "", fmt.Errorf("network tcp should have no path: %q", rawAddress)
+ }
+ return "tcp", u.Host, nil
+}
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly/client/receive_pack.go b/go/vendor/gitlab.com/gitlab-org/gitaly/client/receive_pack.go
new file mode 100644
index 0000000..39ba7ae
--- /dev/null
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly/client/receive_pack.go
@@ -0,0 +1,40 @@
+package client
+
+import (
+ "io"
+
+ "google.golang.org/grpc"
+
+ "golang.org/x/net/context"
+
+ pb "gitlab.com/gitlab-org/gitaly-proto/go"
+ pbhelper "gitlab.com/gitlab-org/gitaly-proto/go/helper"
+)
+
+// ReceivePack proxies an SSH git-receive-pack (git push) session to Gitaly
+func ReceivePack(ctx context.Context, conn *grpc.ClientConn, stdin io.Reader, stdout, stderr io.Writer, req *pb.SSHReceivePackRequest) (int32, error) {
+ ctx2, cancel := context.WithCancel(ctx)
+ defer cancel()
+
+ ssh := pb.NewSSHClient(conn)
+ stream, err := ssh.SSHReceivePack(ctx2)
+ if err != nil {
+ return 0, err
+ }
+
+ if err = stream.Send(req); err != nil {
+ return 0, err
+ }
+
+ inWriter := pbhelper.NewSendWriter(func(p []byte) error {
+ return stream.Send(&pb.SSHReceivePackRequest{Stdin: p})
+ })
+
+ return streamHandler(func() (stdoutStderrResponse, error) {
+ return stream.Recv()
+ }, func(errC chan error) {
+ _, errRecv := io.Copy(inWriter, stdin)
+ stream.CloseSend()
+ errC <- errRecv
+ }, stdout, stderr)
+}
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly/client/std_stream.go b/go/vendor/gitlab.com/gitlab-org/gitaly/client/std_stream.go
new file mode 100644
index 0000000..83d2589
--- /dev/null
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly/client/std_stream.go
@@ -0,0 +1,66 @@
+package client
+
+import (
+ "fmt"
+ "io"
+
+ pb "gitlab.com/gitlab-org/gitaly-proto/go"
+)
+
+type stdoutStderrResponse interface {
+ GetExitStatus() *pb.ExitStatus
+ GetStderr() []byte
+ GetStdout() []byte
+}
+
+func streamHandler(recv func() (stdoutStderrResponse, error), send func(chan error), stdout, stderr io.Writer) (int32, error) {
+ var (
+ exitStatus int32
+ err error
+ resp stdoutStderrResponse
+ )
+
+ errC := make(chan error, 1)
+
+ go send(errC)
+
+ for {
+ resp, err = recv()
+ if err != nil {
+ break
+ }
+ if resp.GetExitStatus() != nil {
+ exitStatus = resp.GetExitStatus().GetValue()
+ }
+
+ if len(resp.GetStderr()) > 0 {
+ if _, err = stderr.Write(resp.GetStderr()); err != nil {
+ break
+ }
+ }
+
+ if len(resp.GetStdout()) > 0 {
+ if _, err = stdout.Write(resp.GetStdout()); err != nil {
+ break
+ }
+ }
+ }
+ if err == io.EOF {
+ err = nil
+ }
+
+ if err != nil {
+ return exitStatus, err
+ }
+
+ select {
+ case errSend := <-errC:
+ if errSend != nil {
+ // This should not happen
+ errSend = fmt.Errorf("stdin send error: %v", errSend)
+ }
+ return exitStatus, errSend
+ default:
+ return exitStatus, nil
+ }
+}
diff --git a/go/vendor/gitlab.com/gitlab-org/gitaly/client/upload_pack.go b/go/vendor/gitlab.com/gitlab-org/gitaly/client/upload_pack.go
new file mode 100644
index 0000000..eb0fc7d
--- /dev/null
+++ b/go/vendor/gitlab.com/gitlab-org/gitaly/client/upload_pack.go
@@ -0,0 +1,40 @@
+package client
+
+import (
+ "io"
+
+ "google.golang.org/grpc"
+
+ "golang.org/x/net/context"
+
+ pb "gitlab.com/gitlab-org/gitaly-proto/go"
+ pbhelper "gitlab.com/gitlab-org/gitaly-proto/go/helper"
+)
+
+// UploadPack proxies an SSH git-upload-pack (git fetch) session to Gitaly
+func UploadPack(ctx context.Context, conn *grpc.ClientConn, stdin io.Reader, stdout, stderr io.Writer, req *pb.SSHUploadPackRequest) (int32, error) {
+ ctx2, cancel := context.WithCancel(ctx)
+ defer cancel()
+
+ ssh := pb.NewSSHClient(conn)
+ stream, err := ssh.SSHUploadPack(ctx2)
+ if err != nil {
+ return 0, err
+ }
+
+ if err = stream.Send(req); err != nil {
+ return 0, err
+ }
+
+ inWriter := pbhelper.NewSendWriter(func(p []byte) error {
+ return stream.Send(&pb.SSHUploadPackRequest{Stdin: p})
+ })
+
+ return streamHandler(func() (stdoutStderrResponse, error) {
+ return stream.Recv()
+ }, func(errC chan error) {
+ _, errRecv := io.Copy(inWriter, stdin)
+ stream.CloseSend()
+ errC <- errRecv
+ }, stdout, stderr)
+}
diff --git a/go/vendor/vendor.json b/go/vendor/vendor.json
index 271e9bd..0cbbe90 100644
--- a/go/vendor/vendor.json
+++ b/go/vendor/vendor.json
@@ -21,13 +21,29 @@
"revisionTime": "2017-03-31T03:19:02Z"
},
{
- "checksumSHA1": "EE3twlbq1QkQ5J9dor9QFDR5LX4=",
+ "checksumSHA1": "FPNHA80Wu9QTcNcjbuw0kdLOg5Q=",
"path": "gitlab.com/gitlab-org/gitaly-proto/go",
- "revision": "52f77b23166e640a932e50223472d761404afb42",
- "revisionTime": "2017-03-29T16:52:58Z",
+ "revision": "e73c809c669748d0f49e257a249c4c12b59f7968",
+ "revisionTime": "2017-07-07T12:10:40Z",
"tree": true,
- "version": "v0.5.0",
- "versionExact": "v0.5.0"
+ "version": "v0.14.0",
+ "versionExact": "v0.14.0"
+ },
+ {
+ "checksumSHA1": "dUHJbKas746n5fLzlwxHb6FOCxs=",
+ "path": "gitlab.com/gitlab-org/gitaly/auth",
+ "revision": "e4f8d3d14cc3fe673cb511fb4d0189b68a158ccd",
+ "revisionTime": "2017-06-30T12:58:40Z",
+ "version": "v0.14.0",
+ "versionExact": "v0.14.0"
+ },
+ {
+ "checksumSHA1": "Z/BteCm3WErBI8bBmSN9gD+3EbU=",
+ "path": "gitlab.com/gitlab-org/gitaly/client",
+ "revision": "e4f8d3d14cc3fe673cb511fb4d0189b68a158ccd",
+ "revisionTime": "2017-06-30T12:58:40Z",
+ "version": "v0.14.0",
+ "versionExact": "v0.14.0"
},
{
"checksumSHA1": "Y+HGqEkYM15ir+J93MEaHdyFy0c=",
diff --git a/lib/gitlab_access_status.rb b/lib/gitlab_access_status.rb
index 6a906f1..a6a274c 100644
--- a/lib/gitlab_access_status.rb
+++ b/lib/gitlab_access_status.rb
@@ -1,18 +1,19 @@
require 'json'
class GitAccessStatus
- attr_reader :message, :gl_repository, :repository_path
+ attr_reader :message, :gl_repository, :repository_path, :gitaly
- def initialize(status, message, gl_repository, repository_path)
+ def initialize(status, message, gl_repository, repository_path, gitaly)
@status = status
@message = message
@gl_repository = gl_repository
@repository_path = repository_path
+ @gitaly = gitaly
end
def self.create_from_json(json)
values = JSON.parse(json)
- self.new(values["status"], values["message"], values["gl_repository"], values["repository_path"])
+ self.new(values["status"], values["message"], values["gl_repository"], values["repository_path"], values["gitaly"])
end
def allowed?
diff --git a/lib/gitlab_shell.rb b/lib/gitlab_shell.rb
index e7d0254..262f9f7 100644
--- a/lib/gitlab_shell.rb
+++ b/lib/gitlab_shell.rb
@@ -99,6 +99,7 @@ class GitlabShell
self.repo_path = status.repository_path
@gl_repository = status.gl_repository
+ @gitaly = status.gitaly
end
def process_cmd(args)
@@ -115,15 +116,16 @@ class GitlabShell
executable = @command
args = [repo_path]
- if GITALY_MIGRATED_COMMANDS.has_key?(executable)
+ if GITALY_MIGRATED_COMMANDS.has_key?(executable) && @gitaly
executable = GITALY_MIGRATED_COMMANDS[executable]
- gitaly_address = '' # would be returned by gitlab-rails internal API
+ gitaly_address = @gitaly['address']
# The entire gitaly_request hash should be built in gitlab-ce and passed
# on as-is. For now we build a fake one on the spot.
gitaly_request = JSON.dump({
- 'repository' => { 'path' => repo_path },
+ 'repository' => @gitaly['repository'],
+ 'gl_repository' => @gl_repository,
'gl_id' => @key_id,
})
@@ -153,6 +155,9 @@ class GitlabShell
'GL_PROTOCOL' => GL_PROTOCOL,
'GL_REPOSITORY' => @gl_repository
}
+ if @gitaly && @gitaly.include?('token')
+ env['GITALY_TOKEN'] = @gitaly['token']
+ end
if git_trace_available?
env.merge!({
diff --git a/spec/gitlab_access_spec.rb b/spec/gitlab_access_spec.rb
index 2df880b..f91a8a5 100644
--- a/spec/gitlab_access_spec.rb
+++ b/spec/gitlab_access_spec.rb
@@ -7,7 +7,7 @@ describe GitlabAccess do
let(:repo_path) { File.join(repository_path, repo_name) + ".git" }
let(:api) do
double(GitlabNet).tap do |api|
- api.stub(check_access: GitAccessStatus.new(true, 'ok', 'project-1', '/home/git/repositories'))
+ api.stub(check_access: GitAccessStatus.new(true, 'ok', 'project-1', '/home/git/repositories', nil))
end
end
subject do
@@ -38,7 +38,7 @@ describe GitlabAccess do
context "access is denied" do
before do
- api.stub(check_access: GitAccessStatus.new(false, 'denied', nil, nil))
+ api.stub(check_access: GitAccessStatus.new(false, 'denied', nil, nil, nil))
end
it "returns false" do
diff --git a/spec/gitlab_shell_spec.rb b/spec/gitlab_shell_spec.rb
index e0d1af6..29093ac 100644
--- a/spec/gitlab_shell_spec.rb
+++ b/spec/gitlab_shell_spec.rb
@@ -19,10 +19,12 @@ describe GitlabShell do
end
end
+ let(:gitaly_check_access) { GitAccessStatus.new(true, 'ok', gl_repository, repo_path, { 'repository' => { 'relative_path' => repo_name, 'storage_name' => 'default'} , 'address' => 'unix:gitaly.socket' })}
+
let(:api) do
double(GitlabNet).tap do |api|
api.stub(discover: { 'name' => 'John Doe' })
- api.stub(check_access: GitAccessStatus.new(true, 'ok', gl_repository, repo_path))
+ api.stub(check_access: GitAccessStatus.new(true, 'ok', gl_repository, repo_path, nil))
api.stub(two_factor_recovery_codes: {
'success' => true,
'recovery_codes' => ['f67c514de60c4953', '41278385fc00c1e0']
@@ -128,7 +130,7 @@ describe GitlabShell do
end
describe :exec do
- let(:gitaly_message) { JSON.dump({ 'repository' => { 'path' => repo_path }, 'gl_id' => key_id }) }
+ let(:gitaly_message) { JSON.dump({ 'repository' => { 'relative_path' => repo_name, 'storage_name' => 'default' }, 'gl_repository' => gl_repository , 'gl_id' => key_id}) }
context 'git-upload-pack' do
let(:ssh_cmd) { "git-upload-pack gitlab-ci.git" }
@@ -139,12 +141,40 @@ describe GitlabShell do
end
it "should execute the command" do
- subject.should_receive(:exec_cmd).with(File.join(ROOT_PATH, "bin/gitaly-upload-pack"), '', gitaly_message)
+ subject.should_receive(:exec_cmd).with('git-upload-pack', repo_path)
+ end
+
+ it "should log the command execution" do
+ message = "gitlab-shell: executing git command "
+ message << "<git-upload-pack #{repo_path}> "
+ message << "for user with key #{key_id}."
+ $logger.should_receive(:info).with(message)
+ end
+
+ it "should use usernames if configured to do so" do
+ GitlabConfig.any_instance.stub(audit_usernames: true)
+ $logger.should_receive(:info).with(/for John Doe/)
+ end
+ end
+
+ context 'gitaly-upload-pack' do
+ let(:ssh_cmd) { "git-upload-pack gitlab-ci.git" }
+ before {
+ api.stub(check_access: gitaly_check_access)
+ }
+ after { subject.exec(ssh_cmd) }
+
+ it "should process the command" do
+ subject.should_receive(:process_cmd).with(%W(git-upload-pack gitlab-ci.git))
+ end
+
+ it "should execute the command" do
+ subject.should_receive(:exec_cmd).with(File.join(ROOT_PATH, "bin/gitaly-upload-pack"), 'unix:gitaly.socket', gitaly_message)
end
it "should log the command execution" do
message = "gitlab-shell: executing git command "
- message << "<gitaly-upload-pack #{gitaly_message}> "
+ message << "<gitaly-upload-pack unix:gitaly.socket #{gitaly_message}> "
message << "for user with key #{key_id}."
$logger.should_receive(:info).with(message)
end
@@ -164,17 +194,45 @@ describe GitlabShell do
end
it "should execute the command" do
- subject.should_receive(:exec_cmd).with(File.join(ROOT_PATH, "bin/gitaly-receive-pack"), '', gitaly_message)
+ subject.should_receive(:exec_cmd).with('git-receive-pack', repo_path)
end
it "should log the command execution" do
message = "gitlab-shell: executing git command "
- message << "<gitaly-receive-pack #{gitaly_message}> "
+ message << "<git-receive-pack #{repo_path}> "
message << "for user with key #{key_id}."
$logger.should_receive(:info).with(message)
end
end
+ context 'gitaly-receive-pack' do
+ let(:ssh_cmd) { "git-receive-pack gitlab-ci.git" }
+ before {
+ api.stub(check_access: gitaly_check_access)
+ }
+ after { subject.exec(ssh_cmd) }
+
+ it "should process the command" do
+ subject.should_receive(:process_cmd).with(%W(git-receive-pack gitlab-ci.git))
+ end
+
+ it "should execute the command" do
+ subject.should_receive(:exec_cmd).with(File.join(ROOT_PATH, "bin/gitaly-receive-pack"), 'unix:gitaly.socket', gitaly_message)
+ end
+
+ it "should log the command execution" do
+ message = "gitlab-shell: executing git command "
+ message << "<gitaly-receive-pack unix:gitaly.socket #{gitaly_message}> "
+ message << "for user with key #{key_id}."
+ $logger.should_receive(:info).with(message)
+ end
+
+ it "should use usernames if configured to do so" do
+ GitlabConfig.any_instance.stub(audit_usernames: true)
+ $logger.should_receive(:info).with(/for John Doe/)
+ end
+ end
+
context 'arbitrary command' do
let(:ssh_cmd) { 'arbitrary command' }
after { subject.exec(ssh_cmd) }
@@ -268,7 +326,7 @@ describe GitlabShell do
end
it "should disallow access and log the attempt if check_access returns false status" do
- api.stub(check_access: GitAccessStatus.new(false, 'denied', nil, nil))
+ api.stub(check_access: GitAccessStatus.new(false, 'denied', nil, nil, nil))
message = "gitlab-shell: Access denied for git command <git-upload-pack gitlab-ci.git> "
message << "by user with key #{key_id}."
$logger.should_receive(:warn).with(message)