Commit 9f4a72a4 authored by Nick Thomas's avatar Nick Thomas

Merge branch '149-show-all-refs' into 'master'

Respect the ShowAllRefs flag in git upload-pack and info-refs

Closes #149

See merge request gitlab-org/gitlab-workhorse!203
parents 2ee8ec83 ba8d951b
...@@ -15,6 +15,7 @@ import ( ...@@ -15,6 +15,7 @@ import (
"time" "time"
"gitlab.com/gitlab-org/gitlab-workhorse/internal/api" "gitlab.com/gitlab-org/gitlab-workhorse/internal/api"
"gitlab.com/gitlab-org/gitlab-workhorse/internal/git"
"gitlab.com/gitlab-org/gitlab-workhorse/internal/gitaly" "gitlab.com/gitlab-org/gitlab-workhorse/internal/gitaly"
"gitlab.com/gitlab-org/gitlab-workhorse/internal/testhelper" "gitlab.com/gitlab-org/gitlab-workhorse/internal/testhelper"
...@@ -60,6 +61,10 @@ func TestGetInfoRefsProxiedToGitalySuccessfully(t *testing.T) { ...@@ -60,6 +61,10 @@ func TestGetInfoRefsProxiedToGitalySuccessfully(t *testing.T) {
apiResponse := gitOkBody(t) apiResponse := gitOkBody(t)
apiResponse.GitalyServer.Address = gitalyAddress apiResponse.GitalyServer.Address = gitalyAddress
for _, showAllRefs := range []bool{true, false} {
t.Run(fmt.Sprintf("ShowAllRefs=%v", showAllRefs), func(t *testing.T) {
apiResponse.ShowAllRefs = showAllRefs
ts := testAuthServer(nil, 200, apiResponse) ts := testAuthServer(nil, 200, apiResponse)
defer ts.Close() defer ts.Close()
...@@ -69,8 +74,16 @@ func TestGetInfoRefsProxiedToGitalySuccessfully(t *testing.T) { ...@@ -69,8 +74,16 @@ func TestGetInfoRefsProxiedToGitalySuccessfully(t *testing.T) {
resource := "/gitlab-org/gitlab-test.git/info/refs?service=git-upload-pack" resource := "/gitlab-org/gitlab-test.git/info/refs?service=git-upload-pack"
_, body := httpGet(t, ws.URL+resource) _, body := httpGet(t, ws.URL+resource)
expectedContent := string(testhelper.GitalyInfoRefsResponseMock) expectedContent := "\n\000" + string(testhelper.GitalyInfoRefsResponseMock) + "\000"
if showAllRefs {
expectedContent = git.GitConfigShowAllRefs + expectedContent
}
assert.Equal(t, expectedContent, body, "GET %q: response body", resource) assert.Equal(t, expectedContent, body, "GET %q: response body", resource)
})
}
} }
func TestGetInfoRefsProxiedToGitalyInterruptedStream(t *testing.T) { func TestGetInfoRefsProxiedToGitalyInterruptedStream(t *testing.T) {
...@@ -182,11 +195,20 @@ func TestPostReceivePackProxiedToGitalyInterrupted(t *testing.T) { ...@@ -182,11 +195,20 @@ func TestPostReceivePackProxiedToGitalyInterrupted(t *testing.T) {
} }
func TestPostUploadPackProxiedToGitalySuccessfully(t *testing.T) { func TestPostUploadPackProxiedToGitalySuccessfully(t *testing.T) {
for i, tc := range []struct {
showAllRefs bool
code codes.Code
}{
{true, codes.OK},
{true, codes.Unavailable},
{false, codes.OK},
{false, codes.Unavailable},
} {
t.Run(fmt.Sprintf("Case %d", i), func(t *testing.T) {
apiResponse := gitOkBody(t) apiResponse := gitOkBody(t)
apiResponse.ShowAllRefs = tc.showAllRefs
for _, code := range []codes.Code{codes.OK, codes.Unavailable} { gitalyServer, socketPath := startGitalyServer(t, tc.code)
func() {
gitalyServer, socketPath := startGitalyServer(t, code)
defer gitalyServer.Stop() defer gitalyServer.Stop()
apiResponse.GitalyServer.Address = "unix://" + socketPath apiResponse.GitalyServer.Address = "unix://" + socketPath
...@@ -204,16 +226,23 @@ func TestPostUploadPackProxiedToGitalySuccessfully(t *testing.T) { ...@@ -204,16 +226,23 @@ func TestPostUploadPackProxiedToGitalySuccessfully(t *testing.T) {
testhelper.GitalyUploadPackResponseMock, testhelper.GitalyUploadPackResponseMock,
) )
expectedBody := strings.Join([]string{ expectedBodyParts := []string{
apiResponse.Repository.StorageName, apiResponse.Repository.StorageName,
apiResponse.Repository.RelativePath, apiResponse.Repository.RelativePath,
string(testhelper.GitalyUploadPackResponseMock), }
}, "\000") if tc.showAllRefs {
expectedBodyParts = append(expectedBodyParts, git.GitConfigShowAllRefs+"\n")
} else {
expectedBodyParts = append(expectedBodyParts, "\n")
}
expectedBodyParts = append(expectedBodyParts, string(testhelper.GitalyUploadPackResponseMock))
expectedBody := strings.Join(expectedBodyParts, "\000")
assert.Equal(t, 200, resp.StatusCode, "POST %q", resource) assert.Equal(t, 200, resp.StatusCode, "POST %q", resource)
assert.Equal(t, expectedBody, body, "POST %q: response body", resource) assert.Equal(t, expectedBody, body, "POST %q: response body", resource)
testhelper.AssertResponseHeader(t, resp, "Content-Type", "application/x-git-upload-pack-result") testhelper.AssertResponseHeader(t, resp, "Content-Type", "application/x-git-upload-pack-result")
}() })
} }
} }
......
...@@ -114,6 +114,8 @@ type Response struct { ...@@ -114,6 +114,8 @@ type Response struct {
// Repository object for making gRPC requests to Gitaly. This will // Repository object for making gRPC requests to Gitaly. This will
// eventually replace the RepoPath field. // eventually replace the RepoPath field.
Repository pb.Repository Repository pb.Repository
// For git-http, does the requestor have the right to view all refs?
ShowAllRefs bool
} }
// singleJoiningSlash is taken from reverseproxy.go:NewSingleHostReverseProxy // singleJoiningSlash is taken from reverseproxy.go:NewSingleHostReverseProxy
......
...@@ -20,6 +20,12 @@ import ( ...@@ -20,6 +20,12 @@ import (
"gitlab.com/gitlab-org/gitlab-workhorse/internal/helper" "gitlab.com/gitlab-org/gitlab-workhorse/internal/helper"
) )
const (
// We have to use a negative transfer.hideRefs since this is the only way
// to undo an already set parameter: https://www.spinics.net/lists/git/msg256772.html
GitConfigShowAllRefs = "transfer.hideRefs=!refs"
)
func ReceivePack(a *api.API) http.Handler { func ReceivePack(a *api.API) http.Handler {
return postRPCHandler(a, "handleReceivePack", handleReceivePack) return postRPCHandler(a, "handleReceivePack", handleReceivePack)
} }
...@@ -28,6 +34,16 @@ func UploadPack(a *api.API) http.Handler { ...@@ -28,6 +34,16 @@ func UploadPack(a *api.API) http.Handler {
return postRPCHandler(a, "handleUploadPack", handleUploadPack) return postRPCHandler(a, "handleUploadPack", handleUploadPack)
} }
func gitConfigOptions(a *api.Response) []string {
var out []string
if a.ShowAllRefs {
out = append(out, GitConfigShowAllRefs)
}
return out
}
func postRPCHandler(a *api.API, name string, handler func(*GitHttpResponseWriter, *http.Request, *api.Response) error) http.Handler { func postRPCHandler(a *api.API, name string, handler func(*GitHttpResponseWriter, *http.Request, *api.Response) error) http.Handler {
return repoPreAuthorizeHandler(a, func(rw http.ResponseWriter, r *http.Request, ar *api.Response) { return repoPreAuthorizeHandler(a, func(rw http.ResponseWriter, r *http.Request, ar *api.Response) {
cr := &countReadCloser{ReadCloser: r.Body} cr := &countReadCloser{ReadCloser: r.Body}
......
...@@ -77,7 +77,7 @@ func handleGetInfoRefsWithGitaly(ctx context.Context, w http.ResponseWriter, a * ...@@ -77,7 +77,7 @@ func handleGetInfoRefsWithGitaly(ctx context.Context, w http.ResponseWriter, a *
return fmt.Errorf("GetInfoRefsHandler: %v", err) return fmt.Errorf("GetInfoRefsHandler: %v", err)
} }
infoRefsResponseReader, err := smarthttp.InfoRefsResponseReader(ctx, &a.Repository, rpc) infoRefsResponseReader, err := smarthttp.InfoRefsResponseReader(ctx, &a.Repository, rpc, gitConfigOptions(a))
if err != nil { if err != nil {
return fmt.Errorf("GetInfoRefsHandler: %v", err) return fmt.Errorf("GetInfoRefsHandler: %v", err)
} }
......
...@@ -65,7 +65,7 @@ func handleUploadPackWithGitaly(ctx context.Context, a *api.Response, clientRequ ...@@ -65,7 +65,7 @@ func handleUploadPackWithGitaly(ctx context.Context, a *api.Response, clientRequ
return fmt.Errorf("smarthttp.UploadPack: %v", err) return fmt.Errorf("smarthttp.UploadPack: %v", err)
} }
if err := smarthttp.UploadPack(ctx, &a.Repository, clientRequest, clientResponse); err != nil { if err := smarthttp.UploadPack(ctx, &a.Repository, clientRequest, clientResponse, gitConfigOptions(a)); err != nil {
return fmt.Errorf("smarthttp.UploadPack: %v", err) return fmt.Errorf("smarthttp.UploadPack: %v", err)
} }
......
...@@ -13,8 +13,8 @@ type SmartHTTPClient struct { ...@@ -13,8 +13,8 @@ type SmartHTTPClient struct {
pb.SmartHTTPServiceClient pb.SmartHTTPServiceClient
} }
func (client *SmartHTTPClient) InfoRefsResponseReader(ctx context.Context, repo *pb.Repository, rpc string) (io.Reader, error) { func (client *SmartHTTPClient) InfoRefsResponseReader(ctx context.Context, repo *pb.Repository, rpc string, gitConfigOptions []string) (io.Reader, error) {
rpcRequest := &pb.InfoRefsRequest{Repository: repo} rpcRequest := &pb.InfoRefsRequest{Repository: repo, GitConfigOptions: gitConfigOptions}
switch rpc { switch rpc {
case "git-upload-pack": case "git-upload-pack":
...@@ -86,7 +86,7 @@ func (client *SmartHTTPClient) ReceivePack(ctx context.Context, repo *pb.Reposit ...@@ -86,7 +86,7 @@ func (client *SmartHTTPClient) ReceivePack(ctx context.Context, repo *pb.Reposit
return nil return nil
} }
func (client *SmartHTTPClient) UploadPack(ctx context.Context, repo *pb.Repository, clientRequest io.Reader, clientResponse io.Writer) error { func (client *SmartHTTPClient) UploadPack(ctx context.Context, repo *pb.Repository, clientRequest io.Reader, clientResponse io.Writer, gitConfigOptions []string) error {
stream, err := client.PostUploadPack(ctx) stream, err := client.PostUploadPack(ctx)
if err != nil { if err != nil {
return err return err
...@@ -94,6 +94,7 @@ func (client *SmartHTTPClient) UploadPack(ctx context.Context, repo *pb.Reposito ...@@ -94,6 +94,7 @@ func (client *SmartHTTPClient) UploadPack(ctx context.Context, repo *pb.Reposito
rpcRequest := &pb.PostUploadPackRequest{ rpcRequest := &pb.PostUploadPackRequest{
Repository: repo, Repository: repo,
GitConfigOptions: gitConfigOptions,
} }
if err := stream.Send(rpcRequest); err != nil { if err := stream.Send(rpcRequest); err != nil {
......
...@@ -53,7 +53,14 @@ func (s *GitalyTestServer) InfoRefsUploadPack(in *pb.InfoRefsRequest, stream pb. ...@@ -53,7 +53,14 @@ func (s *GitalyTestServer) InfoRefsUploadPack(in *pb.InfoRefsRequest, stream pb.
return err return err
} }
nSends, err := sendBytes([]byte(GitalyInfoRefsResponseMock), 100, func(p []byte) error { fmt.Printf("Result: %+v", in)
data := []byte(strings.Join([]string{
strings.Join(in.GitConfigOptions, "\n") + "\n",
GitalyInfoRefsResponseMock,
}, "\000") + "\000")
nSends, err := sendBytes(data, 100, func(p []byte) error {
return stream.Send(&pb.InfoRefsResponse{Data: p}) return stream.Send(&pb.InfoRefsResponse{Data: p})
}) })
if err != nil { if err != nil {
...@@ -147,6 +154,7 @@ func (s *GitalyTestServer) PostUploadPack(stream pb.SmartHTTPService_PostUploadP ...@@ -147,6 +154,7 @@ func (s *GitalyTestServer) PostUploadPack(stream pb.SmartHTTPService_PostUploadP
data := []byte(strings.Join([]string{ data := []byte(strings.Join([]string{
repo.GetStorageName(), repo.GetStorageName(),
repo.GetRelativePath(), repo.GetRelativePath(),
strings.Join(req.GitConfigOptions, "\n") + "\n",
}, "\000") + "\000") }, "\000") + "\000")
// The body of the request starts in the second message // The body of the request starts in the second message
...@@ -307,6 +315,10 @@ func (s *GitalyTestServer) Exists(context.Context, *pb.RepositoryExistsRequest) ...@@ -307,6 +315,10 @@ func (s *GitalyTestServer) Exists(context.Context, *pb.RepositoryExistsRequest)
return nil, nil return nil, nil
} }
func (s *GitalyTestServer) HasLocalBranches(ctx context.Context, in *pb.HasLocalBranchesRequest) (*pb.HasLocalBranchesResponse, error) {
return nil, nil
}
func (s *GitalyTestServer) CommitDelta(in *pb.CommitDeltaRequest, stream pb.DiffService_CommitDeltaServer) error { func (s *GitalyTestServer) CommitDelta(in *pb.CommitDeltaRequest, stream pb.DiffService_CommitDeltaServer) error {
return nil return nil
} }
...@@ -319,6 +331,10 @@ func (s *GitalyTestServer) CommitPatch(in *pb.CommitPatchRequest, stream pb.Diff ...@@ -319,6 +331,10 @@ func (s *GitalyTestServer) CommitPatch(in *pb.CommitPatchRequest, stream pb.Diff
return nil return nil
} }
func (s *GitalyTestServer) GetBlobs(in *pb.GetBlobsRequest, stream pb.BlobService_GetBlobsServer) error {
return nil
}
// sendBytes returns the number of times the 'sender' function was called and an error. // sendBytes returns the number of times the 'sender' function was called and an error.
func sendBytes(data []byte, chunkSize int, sender func([]byte) error) (int, error) { func sendBytes(data []byte, chunkSize int, sender func([]byte) error) (int, error) {
i := 0 i := 0
......
...@@ -17,10 +17,13 @@ It is generated from these files: ...@@ -17,10 +17,13 @@ It is generated from these files:
shared.proto shared.proto
smarthttp.proto smarthttp.proto
ssh.proto ssh.proto
wiki.proto
It has these top-level messages: It has these top-level messages:
GetBlobRequest GetBlobRequest
GetBlobResponse GetBlobResponse
GetBlobsRequest
GetBlobsResponse
CommitStatsRequest CommitStatsRequest
CommitStatsResponse CommitStatsResponse
CommitIsAncestorRequest CommitIsAncestorRequest
...@@ -79,6 +82,9 @@ It has these top-level messages: ...@@ -79,6 +82,9 @@ It has these top-level messages:
UserDeleteTagResponse UserDeleteTagResponse
UserCreateTagRequest UserCreateTagRequest
UserCreateTagResponse UserCreateTagResponse
UserMergeBranchRequest
UserMergeBranchResponse
OperationBranchUpdate
FindDefaultBranchNameRequest FindDefaultBranchNameRequest
FindDefaultBranchNameResponse FindDefaultBranchNameResponse
FindAllBranchNamesRequest FindAllBranchNamesRequest
...@@ -121,6 +127,8 @@ It has these top-level messages: ...@@ -121,6 +127,8 @@ It has these top-level messages:
CreateRepositoryResponse CreateRepositoryResponse
GetArchiveRequest GetArchiveRequest
GetArchiveResponse GetArchiveResponse
HasLocalBranchesRequest
HasLocalBranchesResponse
Repository Repository
GitCommit GitCommit
CommitAuthor CommitAuthor
...@@ -138,6 +146,9 @@ It has these top-level messages: ...@@ -138,6 +146,9 @@ It has these top-level messages:
SSHUploadPackResponse SSHUploadPackResponse
SSHReceivePackRequest SSHReceivePackRequest
SSHReceivePackResponse SSHReceivePackResponse
WikiPageVersion
WikiGetPageVersionsRequest
WikiGetPageVersionsResponse
*/ */
package gitaly package gitaly
...@@ -230,9 +241,80 @@ func (m *GetBlobResponse) GetOid() string { ...@@ -230,9 +241,80 @@ func (m *GetBlobResponse) GetOid() string {
return "" return ""
} }
type GetBlobsRequest struct {
Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
// Object IDs (SHA1) of the blobs we want to get
Oids []string `protobuf:"bytes,2,rep,name=oids" json:"oids,omitempty"`
// Maximum number of bytes we want to receive. Use '-1' to get the full blobs no matter how big.
Limit int64 `protobuf:"varint,3,opt,name=limit" json:"limit,omitempty"`
}
func (m *GetBlobsRequest) Reset() { *m = GetBlobsRequest{} }
func (m *GetBlobsRequest) String() string { return proto.CompactTextString(m) }
func (*GetBlobsRequest) ProtoMessage() {}
func (*GetBlobsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
func (m *GetBlobsRequest) GetRepository() *Repository {
if m != nil {
return m.Repository
}
return nil
}
func (m *GetBlobsRequest) GetOids() []string {
if m != nil {
return m.Oids
}
return nil
}
func (m *GetBlobsRequest) GetLimit() int64 {
if m != nil {
return m.Limit
}
return 0
}
type GetBlobsResponse struct {
// Blob size; present only on the first message per blob
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 current blob. Only present on the first message per blob. Empty if no blob was found.
Oid string `protobuf:"bytes,3,opt,name=oid" json:"oid,omitempty"`
}
func (m *GetBlobsResponse) Reset() { *m = GetBlobsResponse{} }
func (m *GetBlobsResponse) String() string { return proto.CompactTextString(m) }
func (*GetBlobsResponse) ProtoMessage() {}
func (*GetBlobsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }
func (m *GetBlobsResponse) GetSize() int64 {
if m != nil {
return m.Size
}
return 0
}
func (m *GetBlobsResponse) GetData() []byte {
if m != nil {
return m.Data
}
return nil
}
func (m *GetBlobsResponse) GetOid() string {
if m != nil {
return m.Oid
}
return ""
}
func init() { func init() {
proto.RegisterType((*GetBlobRequest)(nil), "gitaly.GetBlobRequest") proto.RegisterType((*GetBlobRequest)(nil), "gitaly.GetBlobRequest")
proto.RegisterType((*GetBlobResponse)(nil), "gitaly.GetBlobResponse") proto.RegisterType((*GetBlobResponse)(nil), "gitaly.GetBlobResponse")
proto.RegisterType((*GetBlobsRequest)(nil), "gitaly.GetBlobsRequest")
proto.RegisterType((*GetBlobsResponse)(nil), "gitaly.GetBlobsResponse")
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.
...@@ -250,6 +332,11 @@ type BlobServiceClient interface { ...@@ -250,6 +332,11 @@ type BlobServiceClient interface {
// ID. We use a stream to return a chunked arbitrarily large binary // ID. We use a stream to return a chunked arbitrarily large binary
// response // response
GetBlob(ctx context.Context, in *GetBlobRequest, opts ...grpc.CallOption) (BlobService_GetBlobClient, error) GetBlob(ctx context.Context, in *GetBlobRequest, opts ...grpc.CallOption) (BlobService_GetBlobClient, error)
// GetBlobsBySHA returns the contents of a blob objects referenced by their object
// ID. We use a stream to return a chunked arbitrarily large binary response.
// The blobs are sent in a continous stream, the caller is responsible for spliting
// them up into multiple blobs by their object IDs.
GetBlobs(ctx context.Context, in *GetBlobsRequest, opts ...grpc.CallOption) (BlobService_GetBlobsClient, error)
} }
type blobServiceClient struct { type blobServiceClient struct {
...@@ -292,6 +379,38 @@ func (x *blobServiceGetBlobClient) Recv() (*GetBlobResponse, error) { ...@@ -292,6 +379,38 @@ func (x *blobServiceGetBlobClient) Recv() (*GetBlobResponse, error) {
return m, nil return m, nil
} }
func (c *blobServiceClient) GetBlobs(ctx context.Context, in *GetBlobsRequest, opts ...grpc.CallOption) (BlobService_GetBlobsClient, error) {
stream, err := grpc.NewClientStream(ctx, &_BlobService_serviceDesc.Streams[1], c.cc, "/gitaly.BlobService/GetBlobs", opts...)
if err != nil {
return nil, err
}
x := &blobServiceGetBlobsClient{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_GetBlobsClient interface {
Recv() (*GetBlobsResponse, error)
grpc.ClientStream
}
type blobServiceGetBlobsClient struct {
grpc.ClientStream
}
func (x *blobServiceGetBlobsClient) Recv() (*GetBlobsResponse, error) {
m := new(GetBlobsResponse)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
// Server API for BlobService service // Server API for BlobService service
type BlobServiceServer interface { type BlobServiceServer interface {
...@@ -299,6 +418,11 @@ type BlobServiceServer interface { ...@@ -299,6 +418,11 @@ type BlobServiceServer interface {
// ID. We use a stream to return a chunked arbitrarily large binary // ID. We use a stream to return a chunked arbitrarily large binary
// response // response
GetBlob(*GetBlobRequest, BlobService_GetBlobServer) error GetBlob(*GetBlobRequest, BlobService_GetBlobServer) error
// GetBlobsBySHA returns the contents of a blob objects referenced by their object
// ID. We use a stream to return a chunked arbitrarily large binary response.
// The blobs are sent in a continous stream, the caller is responsible for spliting
// them up into multiple blobs by their object IDs.
GetBlobs(*GetBlobsRequest, BlobService_GetBlobsServer) error
} }
func RegisterBlobServiceServer(s *grpc.Server, srv BlobServiceServer) { func RegisterBlobServiceServer(s *grpc.Server, srv BlobServiceServer) {
...@@ -326,6 +450,27 @@ func (x *blobServiceGetBlobServer) Send(m *GetBlobResponse) error { ...@@ -326,6 +450,27 @@ func (x *blobServiceGetBlobServer) Send(m *GetBlobResponse) error {
return x.ServerStream.SendMsg(m) return x.ServerStream.SendMsg(m)
} }
func _BlobService_GetBlobs_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(GetBlobsRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
return srv.(BlobServiceServer).GetBlobs(m, &blobServiceGetBlobsServer{stream})
}
type BlobService_GetBlobsServer interface {
Send(*GetBlobsResponse) error
grpc.ServerStream
}
type blobServiceGetBlobsServer struct {
grpc.ServerStream
}
func (x *blobServiceGetBlobsServer) Send(m *GetBlobsResponse) error {
return x.ServerStream.SendMsg(m)
}
var _BlobService_serviceDesc = grpc.ServiceDesc{ var _BlobService_serviceDesc = grpc.ServiceDesc{
ServiceName: "gitaly.BlobService", ServiceName: "gitaly.BlobService",
HandlerType: (*BlobServiceServer)(nil), HandlerType: (*BlobServiceServer)(nil),
...@@ -336,6 +481,11 @@ var _BlobService_serviceDesc = grpc.ServiceDesc{ ...@@ -336,6 +481,11 @@ var _BlobService_serviceDesc = grpc.ServiceDesc{
Handler: _BlobService_GetBlob_Handler, Handler: _BlobService_GetBlob_Handler,
ServerStreams: true, ServerStreams: true,
}, },
{
StreamName: "GetBlobs",
Handler: _BlobService_GetBlobs_Handler,
ServerStreams: true,
},
}, },
Metadata: "blob.proto", Metadata: "blob.proto",
} }
...@@ -343,19 +493,22 @@ var _BlobService_serviceDesc = grpc.ServiceDesc{ ...@@ -343,19 +493,22 @@ var _BlobService_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("blob.proto", fileDescriptor0) } func init() { proto.RegisterFile("blob.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{ var fileDescriptor0 = []byte{
// 217 bytes of a gzipped FileDescriptorProto // 266 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x90, 0x31, 0x4b, 0xc7, 0x30, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x92, 0x31, 0x4f, 0xc3, 0x30,
0x10, 0xc5, 0x8d, 0xd1, 0xbf, 0x78, 0x2d, 0x2a, 0x87, 0x68, 0xe9, 0x54, 0x3a, 0x75, 0x2a, 0x52, 0x10, 0x85, 0x71, 0x5d, 0x0a, 0xbd, 0x56, 0x50, 0x9d, 0x10, 0x58, 0x99, 0xa2, 0x4c, 0x99, 0x22,
0x77, 0x07, 0x17, 0x07, 0x71, 0x89, 0x9f, 0x20, 0xb1, 0x87, 0x06, 0xa2, 0x57, 0x93, 0x28, 0xd4, 0x14, 0x76, 0x24, 0x58, 0x18, 0x60, 0x32, 0xbf, 0x20, 0x21, 0x27, 0xb0, 0x64, 0xb8, 0x60, 0x1b,
0x4f, 0x2f, 0x4d, 0x6c, 0x51, 0xdc, 0x5e, 0x5e, 0x92, 0xf7, 0x7b, 0x77, 0x00, 0xc6, 0xb1, 0xe9, 0xa4, 0xf2, 0x2b, 0xf8, 0xc9, 0x28, 0x0e, 0x49, 0x81, 0x8a, 0xa9, 0xdb, 0xcb, 0xbb, 0xcb, 0x7b,
0x27, 0xcf, 0x91, 0x71, 0xf7, 0x6c, 0xa3, 0x76, 0x73, 0x5d, 0x86, 0x17, 0xed, 0x69, 0xcc, 0x6e, 0x9f, 0x6c, 0x03, 0xd4, 0x96, 0xeb, 0xa2, 0x75, 0x1c, 0x18, 0x67, 0x8f, 0x26, 0x54, 0x76, 0x9d,
0xeb, 0xe0, 0xe4, 0x8e, 0xe2, 0xad, 0x63, 0xa3, 0xe8, 0xfd, 0x83, 0x42, 0xc4, 0x01, 0xc0, 0xd3, 0x2c, 0xfd, 0x53, 0xe5, 0xa8, 0xe9, 0xdd, 0xcc, 0xc2, 0xd1, 0x0d, 0x85, 0x6b, 0xcb, 0xb5, 0xa6,
0xc4, 0xc1, 0x46, 0xf6, 0x73, 0x25, 0x1a, 0xd1, 0x15, 0x03, 0xf6, 0xf9, 0x73, 0xaf, 0xb6, 0x1b, 0xd7, 0x37, 0xf2, 0x01, 0x4b, 0x00, 0x47, 0x2d, 0x7b, 0x13, 0xd8, 0xad, 0x95, 0x48, 0x45, 0xbe,
0xf5, 0xeb, 0x15, 0x9e, 0x81, 0x64, 0x3b, 0x56, 0xfb, 0x8d, 0xe8, 0x8e, 0xd5, 0x22, 0xf1, 0x1c, 0x28, 0xb1, 0xe8, 0x7f, 0x2e, 0xf4, 0x38, 0xd1, 0x3f, 0xb6, 0x70, 0x05, 0x92, 0x4d, 0xa3, 0x26,
0x0e, 0x9d, 0x7d, 0xb5, 0xb1, 0x92, 0x8d, 0xe8, 0xa4, 0xca, 0x87, 0xf6, 0x1e, 0x4e, 0x37, 0x5a, 0xa9, 0xc8, 0xe7, 0xba, 0x93, 0x78, 0x02, 0xfb, 0xd6, 0x3c, 0x9b, 0xa0, 0x64, 0x2a, 0x72, 0xa9,
0x98, 0xf8, 0x2d, 0x10, 0x22, 0x1c, 0x04, 0xfb, 0x45, 0x09, 0x24, 0x55, 0xd2, 0x8b, 0x37, 0xea, 0xfb, 0x8f, 0xec, 0x16, 0x8e, 0xc7, 0x36, 0xdf, 0xf2, 0x8b, 0x27, 0x44, 0x98, 0x7a, 0xf3, 0x41,
0xa8, 0x53, 0x5e, 0xa9, 0x92, 0x5e, 0x11, 0x72, 0x43, 0x0c, 0x0f, 0x50, 0x2c, 0x49, 0x8f, 0xe4, 0xb1, 0x48, 0xea, 0xa8, 0x3b, 0xaf, 0xa9, 0x42, 0x15, 0xf3, 0x96, 0x3a, 0xea, 0xa1, 0x42, 0x8e,
0x3f, 0xed, 0x13, 0xe1, 0x0d, 0x1c, 0xfd, 0x64, 0xe3, 0xc5, 0x5a, 0xf7, 0xef, 0x68, 0xf5, 0xe5, 0x15, 0x19, 0x8f, 0x61, 0x7e, 0x17, 0x76, 0x84, 0x29, 0x9b, 0xc6, 0xab, 0x49, 0x2a, 0xf3, 0xb9,
0x3f, 0x3f, 0x97, 0x68, 0xf7, 0xae, 0x84, 0xd9, 0xa5, 0x85, 0x5c, 0x7f, 0x07, 0x00, 0x00, 0xff, 0x8e, 0xfa, 0x1f, 0xfa, 0x3b, 0x58, 0x6d, 0x0a, 0x77, 0xc5, 0x2f, 0x3f, 0x05, 0x2c, 0xba, 0xac,
0xff, 0xab, 0x77, 0x1a, 0x6d, 0x34, 0x01, 0x00, 0x00, 0x7b, 0x72, 0xef, 0xe6, 0x81, 0xf0, 0x12, 0x0e, 0xbe, 0xd3, 0xf1, 0x74, 0x40, 0xfe, 0x7d, 0x35,
0xc9, 0xd9, 0x96, 0xdf, 0x53, 0x64, 0x7b, 0xe7, 0x02, 0xaf, 0xe0, 0x70, 0xa0, 0xc3, 0xbf, 0x8b,
0xc3, 0x01, 0x25, 0x6a, 0x7b, 0xb0, 0x89, 0xa8, 0x67, 0xf1, 0x4d, 0x5c, 0x7c, 0x05, 0x00, 0x00,
0xff, 0xff, 0x99, 0x07, 0x5e, 0x8d, 0x37, 0x02, 0x00, 0x00,
} }
...@@ -259,6 +259,128 @@ func (m *UserCreateTagResponse) GetPreReceiveError() string { ...@@ -259,6 +259,128 @@ func (m *UserCreateTagResponse) GetPreReceiveError() string {
return "" return ""
} }
type UserMergeBranchRequest struct {
// First message
Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
User *User `protobuf:"bytes,2,opt,name=user" json:"user,omitempty"`
CommitId string `protobuf:"bytes,3,opt,name=commit_id,json=commitId" json:"commit_id,omitempty"`
Branch []byte `protobuf:"bytes,4,opt,name=branch,proto3" json:"branch,omitempty"`
Message []byte `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
// Second message
// Tell the server to apply the merge to the branch
Apply bool `protobuf:"varint,6,opt,name=apply" json:"apply,omitempty"`
}
func (m *UserMergeBranchRequest) Reset() { *m = UserMergeBranchRequest{} }
func (m *UserMergeBranchRequest) String() string { return proto.CompactTextString(m) }
func (*UserMergeBranchRequest) ProtoMessage() {}
func (*UserMergeBranchRequest) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{8} }
func (m *UserMergeBranchRequest) GetRepository() *Repository {
if m != nil {
return m.Repository
}
return nil
}
func (m *UserMergeBranchRequest) GetUser() *User {
if m != nil {
return m.User
}
return nil
}
func (m *UserMergeBranchRequest) GetCommitId() string {
if m != nil {
return m.CommitId
}
return ""
}
func (m *UserMergeBranchRequest) GetBranch() []byte {
if m != nil {
return m.Branch
}
return nil
}
func (m *UserMergeBranchRequest) GetMessage() []byte {
if m != nil {
return m.Message
}
return nil
}
func (m *UserMergeBranchRequest) GetApply() bool {
if m != nil {
return m.Apply
}
return false
}
type UserMergeBranchResponse struct {
// First message
// The merge commit the branch will be updated to. The caller can still abort the merge.
CommitId string `protobuf:"bytes,1,opt,name=commit_id,json=commitId" json:"commit_id,omitempty"`
// Second message
// If set, the merge has been applied to the branch.
BranchUpdate *OperationBranchUpdate `protobuf:"bytes,3,opt,name=branch_update,json=branchUpdate" json:"branch_update,omitempty"`
}
func (m *UserMergeBranchResponse) Reset() { *m = UserMergeBranchResponse{} }
func (m *UserMergeBranchResponse) String() string { return proto.CompactTextString(m) }
func (*UserMergeBranchResponse) ProtoMessage() {}
func (*UserMergeBranchResponse) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{9} }
func (m *UserMergeBranchResponse) GetCommitId() string {
if m != nil {
return m.CommitId
}
return ""
}
func (m *UserMergeBranchResponse) GetBranchUpdate() *OperationBranchUpdate {
if m != nil {
return m.BranchUpdate
}
return nil
}
type OperationBranchUpdate struct {
// If this string is non-empty the branch has been updated.
CommitId string `protobuf:"bytes,1,opt,name=commit_id,json=commitId" json:"commit_id,omitempty"`
// Used for cache invalidation in GitLab
RepoCreated bool `protobuf:"varint,2,opt,name=repo_created,json=repoCreated" json:"repo_created,omitempty"`
// Used for cache invalidation in GitLab
BranchCreated bool `protobuf:"varint,3,opt,name=branch_created,json=branchCreated" json:"branch_created,omitempty"`
}
func (m *OperationBranchUpdate) Reset() { *m = OperationBranchUpdate{} }
func (m *OperationBranchUpdate) String() string { return proto.CompactTextString(m) }
func (*OperationBranchUpdate) ProtoMessage() {}
func (*OperationBranchUpdate) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{10} }
func (m *OperationBranchUpdate) GetCommitId() string {
if m != nil {
return m.CommitId
}
return ""
}
func (m *OperationBranchUpdate) GetRepoCreated() bool {
if m != nil {
return m.RepoCreated
}
return false
}
func (m *OperationBranchUpdate) GetBranchCreated() bool {
if m != nil {
return m.BranchCreated
}
return false
}
func init() { func init() {
proto.RegisterType((*UserCreateBranchRequest)(nil), "gitaly.UserCreateBranchRequest") proto.RegisterType((*UserCreateBranchRequest)(nil), "gitaly.UserCreateBranchRequest")
proto.RegisterType((*UserCreateBranchResponse)(nil), "gitaly.UserCreateBranchResponse") proto.RegisterType((*UserCreateBranchResponse)(nil), "gitaly.UserCreateBranchResponse")
...@@ -268,6 +390,9 @@ func init() { ...@@ -268,6 +390,9 @@ func init() {
proto.RegisterType((*UserDeleteTagResponse)(nil), "gitaly.UserDeleteTagResponse") proto.RegisterType((*UserDeleteTagResponse)(nil), "gitaly.UserDeleteTagResponse")
proto.RegisterType((*UserCreateTagRequest)(nil), "gitaly.UserCreateTagRequest") proto.RegisterType((*UserCreateTagRequest)(nil), "gitaly.UserCreateTagRequest")
proto.RegisterType((*UserCreateTagResponse)(nil), "gitaly.UserCreateTagResponse") proto.RegisterType((*UserCreateTagResponse)(nil), "gitaly.UserCreateTagResponse")
proto.RegisterType((*UserMergeBranchRequest)(nil), "gitaly.UserMergeBranchRequest")
proto.RegisterType((*UserMergeBranchResponse)(nil), "gitaly.UserMergeBranchResponse")
proto.RegisterType((*OperationBranchUpdate)(nil), "gitaly.OperationBranchUpdate")
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.
...@@ -285,6 +410,7 @@ type OperationServiceClient interface { ...@@ -285,6 +410,7 @@ type OperationServiceClient interface {
UserDeleteBranch(ctx context.Context, in *UserDeleteBranchRequest, opts ...grpc.CallOption) (*UserDeleteBranchResponse, error) UserDeleteBranch(ctx context.Context, in *UserDeleteBranchRequest, opts ...grpc.CallOption) (*UserDeleteBranchResponse, error)
UserCreateTag(ctx context.Context, in *UserCreateTagRequest, opts ...grpc.CallOption) (*UserCreateTagResponse, error) UserCreateTag(ctx context.Context, in *UserCreateTagRequest, opts ...grpc.CallOption) (*UserCreateTagResponse, error)
UserDeleteTag(ctx context.Context, in *UserDeleteTagRequest, opts ...grpc.CallOption) (*UserDeleteTagResponse, error) UserDeleteTag(ctx context.Context, in *UserDeleteTagRequest, opts ...grpc.CallOption) (*UserDeleteTagResponse, error)
UserMergeBranch(ctx context.Context, opts ...grpc.CallOption) (OperationService_UserMergeBranchClient, error)
} }
type operationServiceClient struct { type operationServiceClient struct {
...@@ -331,6 +457,37 @@ func (c *operationServiceClient) UserDeleteTag(ctx context.Context, in *UserDele ...@@ -331,6 +457,37 @@ func (c *operationServiceClient) UserDeleteTag(ctx context.Context, in *UserDele
return out, nil return out, nil
} }
func (c *operationServiceClient) UserMergeBranch(ctx context.Context, opts ...grpc.CallOption) (OperationService_UserMergeBranchClient, error) {
stream, err := grpc.NewClientStream(ctx, &_OperationService_serviceDesc.Streams[0], c.cc, "/gitaly.OperationService/UserMergeBranch", opts...)
if err != nil {
return nil, err
}
x := &operationServiceUserMergeBranchClient{stream}
return x, nil
}
type OperationService_UserMergeBranchClient interface {
Send(*UserMergeBranchRequest) error
Recv() (*UserMergeBranchResponse, error)
grpc.ClientStream
}
type operationServiceUserMergeBranchClient struct {
grpc.ClientStream
}
func (x *operationServiceUserMergeBranchClient) Send(m *UserMergeBranchRequest) error {
return x.ClientStream.SendMsg(m)
}
func (x *operationServiceUserMergeBranchClient) Recv() (*UserMergeBranchResponse, error) {
m := new(UserMergeBranchResponse)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
// Server API for OperationService service // Server API for OperationService service
type OperationServiceServer interface { type OperationServiceServer interface {
...@@ -338,6 +495,7 @@ type OperationServiceServer interface { ...@@ -338,6 +495,7 @@ type OperationServiceServer interface {
UserDeleteBranch(context.Context, *UserDeleteBranchRequest) (*UserDeleteBranchResponse, error) UserDeleteBranch(context.Context, *UserDeleteBranchRequest) (*UserDeleteBranchResponse, error)
UserCreateTag(context.Context, *UserCreateTagRequest) (*UserCreateTagResponse, error) UserCreateTag(context.Context, *UserCreateTagRequest) (*UserCreateTagResponse, error)
UserDeleteTag(context.Context, *UserDeleteTagRequest) (*UserDeleteTagResponse, error) UserDeleteTag(context.Context, *UserDeleteTagRequest) (*UserDeleteTagResponse, error)
UserMergeBranch(OperationService_UserMergeBranchServer) error
} }
func RegisterOperationServiceServer(s *grpc.Server, srv OperationServiceServer) { func RegisterOperationServiceServer(s *grpc.Server, srv OperationServiceServer) {
...@@ -416,6 +574,32 @@ func _OperationService_UserDeleteTag_Handler(srv interface{}, ctx context.Contex ...@@ -416,6 +574,32 @@ func _OperationService_UserDeleteTag_Handler(srv interface{}, ctx context.Contex
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
func _OperationService_UserMergeBranch_Handler(srv interface{}, stream grpc.ServerStream) error {
return srv.(OperationServiceServer).UserMergeBranch(&operationServiceUserMergeBranchServer{stream})
}
type OperationService_UserMergeBranchServer interface {
Send(*UserMergeBranchResponse) error
Recv() (*UserMergeBranchRequest, error)
grpc.ServerStream
}
type operationServiceUserMergeBranchServer struct {
grpc.ServerStream
}
func (x *operationServiceUserMergeBranchServer) Send(m *UserMergeBranchResponse) error {
return x.ServerStream.SendMsg(m)
}
func (x *operationServiceUserMergeBranchServer) Recv() (*UserMergeBranchRequest, error) {
m := new(UserMergeBranchRequest)
if err := x.ServerStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
var _OperationService_serviceDesc = grpc.ServiceDesc{ var _OperationService_serviceDesc = grpc.ServiceDesc{
ServiceName: "gitaly.OperationService", ServiceName: "gitaly.OperationService",
HandlerType: (*OperationServiceServer)(nil), HandlerType: (*OperationServiceServer)(nil),
...@@ -437,42 +621,59 @@ var _OperationService_serviceDesc = grpc.ServiceDesc{ ...@@ -437,42 +621,59 @@ var _OperationService_serviceDesc = grpc.ServiceDesc{
Handler: _OperationService_UserDeleteTag_Handler, Handler: _OperationService_UserDeleteTag_Handler,
}, },
}, },
Streams: []grpc.StreamDesc{}, Streams: []grpc.StreamDesc{
{
StreamName: "UserMergeBranch",
Handler: _OperationService_UserMergeBranch_Handler,
ServerStreams: true,
ClientStreams: true,
},
},
Metadata: "operations.proto", Metadata: "operations.proto",
} }
func init() { proto.RegisterFile("operations.proto", fileDescriptor6) } func init() { proto.RegisterFile("operations.proto", fileDescriptor6) }
var fileDescriptor6 = []byte{ var fileDescriptor6 = []byte{
// 472 bytes of a gzipped FileDescriptorProto // 637 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x54, 0xcd, 0x6e, 0xd3, 0x40, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0xc1, 0x6e, 0xd3, 0x40,
0x10, 0x8e, 0x9b, 0xe2, 0x96, 0x49, 0x68, 0xc3, 0x8a, 0x1f, 0x13, 0x51, 0xd5, 0xda, 0x03, 0x54, 0x10, 0xad, 0xe3, 0x34, 0x4d, 0x27, 0x69, 0x12, 0x56, 0x6d, 0x31, 0x81, 0x90, 0x60, 0x09, 0x88,
0x1c, 0x72, 0x08, 0x6f, 0x40, 0x81, 0x63, 0x41, 0x0b, 0x88, 0xa3, 0xb5, 0x0d, 0x23, 0x77, 0xa5, 0x38, 0x44, 0x28, 0xfc, 0x41, 0x0b, 0x48, 0x20, 0x51, 0x90, 0xa1, 0x82, 0x9b, 0xb5, 0x89, 0x47,
0xc6, 0x6b, 0x66, 0x37, 0x11, 0xe1, 0x05, 0xb8, 0xf2, 0x2a, 0xbc, 0x06, 0xcf, 0xc1, 0x83, 0x20, 0xae, 0xa5, 0xc4, 0x36, 0xbb, 0x9b, 0x88, 0x70, 0x40, 0xdc, 0xb8, 0xf2, 0x2b, 0xfc, 0x00, 0x1f,
0x7b, 0xd7, 0x89, 0xed, 0x38, 0x12, 0x82, 0x03, 0x3d, 0xee, 0x37, 0xa3, 0x6f, 0xbe, 0xef, 0xd3, 0xc0, 0x95, 0x1f, 0x42, 0xde, 0x5d, 0xa7, 0xb6, 0xe3, 0x20, 0x04, 0x48, 0x70, 0xdc, 0xd9, 0xf1,
0xcc, 0xc2, 0x48, 0xe7, 0x48, 0xd2, 0x2a, 0x9d, 0x99, 0x49, 0x4e, 0xda, 0x6a, 0x16, 0xa6, 0xca, 0x9b, 0xf7, 0xde, 0xce, 0x8c, 0xa1, 0x13, 0xc5, 0xc8, 0xa8, 0x08, 0xa2, 0x90, 0x8f, 0x62, 0x16,
0xca, 0xeb, 0xd5, 0x78, 0x68, 0xae, 0x24, 0xe1, 0x27, 0x87, 0xf2, 0x1f, 0x01, 0x3c, 0xfc, 0x60, 0x89, 0x88, 0xd4, 0xfc, 0x40, 0xd0, 0xd9, 0xaa, 0xdb, 0xe4, 0x17, 0x94, 0xa1, 0xa7, 0xa2, 0xf6,
0x90, 0xce, 0x09, 0xa5, 0xc5, 0x17, 0x24, 0xb3, 0xd9, 0x95, 0xc0, 0xcf, 0x0b, 0x34, 0x96, 0x4d, 0x17, 0x03, 0xae, 0x9e, 0x73, 0x64, 0xa7, 0x0c, 0xa9, 0xc0, 0x13, 0x46, 0xc3, 0xe9, 0x85, 0x83,
0x01, 0x08, 0x73, 0x6d, 0x94, 0xd5, 0xb4, 0x8a, 0x82, 0x38, 0x38, 0x1b, 0x4c, 0xd9, 0xc4, 0xd1, 0x6f, 0x17, 0xc8, 0x05, 0x19, 0x03, 0x30, 0x8c, 0x23, 0x1e, 0x88, 0x88, 0xad, 0x2c, 0x63, 0x60,
0x4c, 0xc4, 0xba, 0x22, 0x6a, 0x5d, 0xec, 0x14, 0x06, 0x97, 0x25, 0x49, 0x92, 0xc9, 0x39, 0x46, 0x0c, 0x1b, 0x63, 0x32, 0x52, 0x30, 0x23, 0x67, 0x7d, 0xe3, 0x64, 0xb2, 0x48, 0x1f, 0x1a, 0x13,
0x7b, 0x71, 0x70, 0x36, 0x14, 0xe0, 0xa0, 0x0b, 0x39, 0x47, 0x16, 0xc3, 0xfe, 0xc2, 0x20, 0x45, 0x09, 0xe2, 0x86, 0x74, 0x8e, 0x56, 0x65, 0x60, 0x0c, 0x9b, 0x0e, 0xa8, 0xd0, 0x19, 0x9d, 0x23,
0xfd, 0x92, 0x6e, 0x58, 0xd1, 0x15, 0x1a, 0x44, 0x59, 0x29, 0x28, 0x8c, 0x95, 0x64, 0x93, 0x5c, 0x19, 0x40, 0x75, 0xc1, 0x91, 0x59, 0xa6, 0x84, 0x6b, 0xa6, 0x70, 0x09, 0x07, 0x47, 0xde, 0x24,
0xab, 0xcc, 0x46, 0xfb, 0x8e, 0xa2, 0x84, 0xde, 0x16, 0x08, 0xcf, 0x20, 0xda, 0x96, 0x6c, 0x72, 0x10, 0x5c, 0x50, 0x26, 0xdc, 0x38, 0x0a, 0x42, 0x61, 0x55, 0x15, 0x84, 0x0c, 0xbd, 0x48, 0x22,
0x9d, 0x19, 0x64, 0x4f, 0x20, 0x74, 0xc3, 0xbc, 0xde, 0xa3, 0x6a, 0x80, 0xef, 0xf3, 0x55, 0xf6, 0x76, 0x08, 0xd6, 0x26, 0x65, 0x1e, 0x47, 0x21, 0x47, 0x72, 0x07, 0x6a, 0xaa, 0x98, 0xe6, 0xdb,
0x0c, 0xee, 0xe6, 0x84, 0x09, 0xe1, 0x0c, 0xd5, 0x12, 0x13, 0x24, 0xd2, 0x54, 0xaa, 0xbd, 0x2d, 0x4a, 0x0b, 0xe8, 0x3c, 0x7d, 0x4b, 0xee, 0xc1, 0x95, 0x98, 0xa1, 0xcb, 0x70, 0x8a, 0xc1, 0x12,
0x8e, 0x73, 0x42, 0xe1, 0xf0, 0x57, 0x05, 0xcc, 0xbf, 0xfb, 0x8c, 0x5e, 0xe2, 0x35, 0xde, 0x8c, 0x5d, 0x64, 0x2c, 0x62, 0x92, 0xed, 0xbe, 0xd3, 0x8e, 0x19, 0x3a, 0x2a, 0xfe, 0x28, 0x09, 0xdb,
0x8c, 0xf8, 0x6b, 0x17, 0x41, 0x53, 0x91, 0x8f, 0xa0, 0xd3, 0x5a, 0xd0, 0x6d, 0xed, 0x5b, 0x00, 0x9f, 0xb5, 0x47, 0x0f, 0x71, 0x86, 0xff, 0x87, 0x47, 0xf6, 0x63, 0x65, 0x41, 0x9e, 0x91, 0xb6,
0xf7, 0x36, 0x44, 0xef, 0x65, 0xfa, 0x2f, 0xbe, 0x1e, 0xc1, 0xa1, 0x95, 0x69, 0xdd, 0xd4, 0x81, 0xa0, 0x54, 0x9a, 0x51, 0x2e, 0xed, 0x93, 0x01, 0x87, 0x97, 0x40, 0xaf, 0xa8, 0xff, 0x27, 0xba,
0x95, 0xe9, 0x1f, 0x3a, 0x3a, 0x87, 0xfb, 0x2d, 0x21, 0x7f, 0x61, 0xe7, 0xa7, 0xb7, 0xe3, 0x56, 0xae, 0x41, 0x5d, 0x50, 0x3f, 0x2b, 0x6a, 0x4f, 0x50, 0xff, 0x17, 0x15, 0x9d, 0xc2, 0x51, 0x81,
0xe3, 0x3f, 0xda, 0x61, 0x4f, 0xe1, 0xd8, 0x4a, 0x4a, 0xd1, 0x26, 0x84, 0x4b, 0x65, 0x94, 0xce, 0xc8, 0x6f, 0xc8, 0xf9, 0xa6, 0xe5, 0xa8, 0xd6, 0xf8, 0x87, 0x72, 0xc8, 0x5d, 0x68, 0x0b, 0xca,
0xfc, 0x22, 0x1f, 0x39, 0x58, 0x78, 0x94, 0x45, 0x70, 0x30, 0x47, 0x63, 0x64, 0x8a, 0xd1, 0x2d, 0x7c, 0x14, 0x2e, 0xc3, 0x65, 0xc0, 0x83, 0x28, 0xd4, 0x8d, 0xdc, 0x52, 0x61, 0x47, 0x47, 0x89,
0x37, 0xc4, 0x3f, 0xf9, 0x57, 0x97, 0x48, 0xcd, 0x8b, 0x4f, 0xe4, 0x04, 0xfa, 0x56, 0xa6, 0xde, 0x05, 0x7b, 0x73, 0xe4, 0x9c, 0xfa, 0x68, 0xed, 0xaa, 0x22, 0xfa, 0x68, 0xbf, 0x57, 0x8e, 0x64,
0xc5, 0xa0, 0x1a, 0x5e, 0x74, 0x14, 0x38, 0x7b, 0x00, 0x21, 0x7e, 0x51, 0xc6, 0x9a, 0x52, 0xf5, 0xb4, 0x68, 0x47, 0x7a, 0x60, 0x0a, 0xea, 0x6b, 0x15, 0x8d, 0xb4, 0x78, 0x92, 0x91, 0xc4, 0xc9,
0xa1, 0xf0, 0xaf, 0xee, 0x20, 0xfb, 0x9d, 0x41, 0x4e, 0x7f, 0xed, 0xc1, 0xe8, 0x4d, 0xf5, 0x83, 0x31, 0xd4, 0xf0, 0x5d, 0xc0, 0x05, 0x97, 0xac, 0xeb, 0x8e, 0x3e, 0x95, 0x1b, 0x69, 0x96, 0x1b,
0xbc, 0x43, 0x5a, 0xaa, 0x19, 0xb2, 0x8f, 0x30, 0x6a, 0xdf, 0x1d, 0x3b, 0xad, 0x7b, 0xef, 0xf8, 0xf9, 0xdd, 0x80, 0xe3, 0xa4, 0xf8, 0x33, 0x64, 0xfe, 0x5f, 0xe8, 0xf8, 0xd4, 0xaf, 0xca, 0x56,
0x44, 0xc6, 0xf1, 0xee, 0x06, 0x67, 0x87, 0xf7, 0x2a, 0xe2, 0xfa, 0x36, 0x37, 0x89, 0x3b, 0x2e, 0xbf, 0xae, 0xc3, 0xfe, 0x34, 0x9a, 0xcf, 0x03, 0xe1, 0x06, 0x9e, 0x26, 0x55, 0x57, 0x81, 0x27,
0xaf, 0x49, 0xdc, 0x75, 0x08, 0xbc, 0xc7, 0x2e, 0xe0, 0x4e, 0x23, 0x42, 0xf6, 0x78, 0x5b, 0xcd, 0x5e, 0xa2, 0x48, 0x0f, 0xb5, 0xf2, 0x30, 0x1d, 0xe2, 0xad, 0xde, 0x91, 0x43, 0xd8, 0xa5, 0x71,
0x66, 0x4b, 0xc6, 0x27, 0x3b, 0xaa, 0x6d, 0xbe, 0xf5, 0x92, 0x36, 0xf9, 0xda, 0x47, 0xd4, 0xe4, 0x3c, 0x5b, 0x59, 0x35, 0x69, 0x81, 0x3a, 0xd8, 0x1f, 0xf5, 0x20, 0xe7, 0x54, 0x69, 0x53, 0x73,
0xdb, 0xda, 0x6c, 0xde, 0xbb, 0x0c, 0xcb, 0x4f, 0xf8, 0xf9, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x04, 0x8c, 0x02, 0x81, 0x13, 0x38, 0xd0, 0x13, 0xbb, 0x88, 0x3d, 0x2a, 0x50, 0x3f, 0x7c, 0x2f,
0x4d, 0x0d, 0x02, 0xa3, 0xae, 0x05, 0x00, 0x00, 0x15, 0xf2, 0x3c, 0x5d, 0xb6, 0x0a, 0xf4, 0x5c, 0x26, 0x39, 0xcd, 0x49, 0xe6, 0xf4, 0xb4, 0x5a,
0xaf, 0x74, 0x4c, 0xfb, 0x03, 0x1c, 0x95, 0x26, 0xff, 0xbc, 0xfe, 0x2d, 0x68, 0x26, 0x6e, 0xba,
0x53, 0xd9, 0x0b, 0x9e, 0x7e, 0xd8, 0x46, 0x12, 0x53, 0xed, 0xe1, 0x91, 0xdb, 0xd0, 0xd2, 0x14,
0xd3, 0x24, 0x53, 0x26, 0x69, 0xe2, 0x3a, 0x6d, 0xfc, 0xd5, 0x84, 0xce, 0x9a, 0xc0, 0x4b, 0x64,
0xcb, 0x60, 0x8a, 0xe4, 0x35, 0x74, 0x8a, 0x0b, 0x95, 0xf4, 0xb3, 0x8f, 0x54, 0xf2, 0x77, 0xe8,
0x0e, 0xb6, 0x27, 0x28, 0x4b, 0xed, 0x9d, 0x14, 0x38, 0xbb, 0xa6, 0xf2, 0xc0, 0x25, 0x2b, 0x35,
0x0f, 0x5c, 0xb6, 0xe1, 0xec, 0x1d, 0x72, 0x06, 0x07, 0xb9, 0xd9, 0x20, 0x37, 0x36, 0xd9, 0x5c,
0x8e, 0x7f, 0xb7, 0xb7, 0xe5, 0xb6, 0x88, 0xb7, 0xde, 0x3e, 0x79, 0xbc, 0xe2, 0x76, 0xcc, 0xe3,
0x6d, 0xac, 0x2c, 0x7b, 0x87, 0xbc, 0x81, 0x76, 0xa1, 0xd1, 0xc8, 0xcd, 0xec, 0x37, 0x9b, 0x73,
0xd5, 0xed, 0x6f, 0xbd, 0x4f, 0x51, 0x87, 0xc6, 0x7d, 0x63, 0x52, 0x93, 0xff, 0xed, 0x07, 0x3f,
0x02, 0x00, 0x00, 0xff, 0xff, 0xd1, 0x35, 0x6e, 0x0e, 0xe1, 0x07, 0x00, 0x00,
} }
...@@ -381,6 +381,38 @@ func (m *GetArchiveResponse) GetData() []byte { ...@@ -381,6 +381,38 @@ func (m *GetArchiveResponse) GetData() []byte {
return nil return nil
} }
type HasLocalBranchesRequest struct {
Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
}
func (m *HasLocalBranchesRequest) Reset() { *m = HasLocalBranchesRequest{} }
func (m *HasLocalBranchesRequest) String() string { return proto.CompactTextString(m) }
func (*HasLocalBranchesRequest) ProtoMessage() {}
func (*HasLocalBranchesRequest) Descriptor() ([]byte, []int) { return fileDescriptor8, []int{18} }
func (m *HasLocalBranchesRequest) GetRepository() *Repository {
if m != nil {
return m.Repository
}
return nil
}
type HasLocalBranchesResponse struct {
Value bool `protobuf:"varint,1,opt,name=value" json:"value,omitempty"`
}
func (m *HasLocalBranchesResponse) Reset() { *m = HasLocalBranchesResponse{} }
func (m *HasLocalBranchesResponse) String() string { return proto.CompactTextString(m) }
func (*HasLocalBranchesResponse) ProtoMessage() {}
func (*HasLocalBranchesResponse) Descriptor() ([]byte, []int) { return fileDescriptor8, []int{19} }
func (m *HasLocalBranchesResponse) GetValue() bool {
if m != nil {
return m.Value
}
return false
}
func init() { func init() {
proto.RegisterType((*RepositoryExistsRequest)(nil), "gitaly.RepositoryExistsRequest") proto.RegisterType((*RepositoryExistsRequest)(nil), "gitaly.RepositoryExistsRequest")
proto.RegisterType((*RepositoryExistsResponse)(nil), "gitaly.RepositoryExistsResponse") proto.RegisterType((*RepositoryExistsResponse)(nil), "gitaly.RepositoryExistsResponse")
...@@ -400,6 +432,8 @@ func init() { ...@@ -400,6 +432,8 @@ func init() {
proto.RegisterType((*CreateRepositoryResponse)(nil), "gitaly.CreateRepositoryResponse") proto.RegisterType((*CreateRepositoryResponse)(nil), "gitaly.CreateRepositoryResponse")
proto.RegisterType((*GetArchiveRequest)(nil), "gitaly.GetArchiveRequest") proto.RegisterType((*GetArchiveRequest)(nil), "gitaly.GetArchiveRequest")
proto.RegisterType((*GetArchiveResponse)(nil), "gitaly.GetArchiveResponse") proto.RegisterType((*GetArchiveResponse)(nil), "gitaly.GetArchiveResponse")
proto.RegisterType((*HasLocalBranchesRequest)(nil), "gitaly.HasLocalBranchesRequest")
proto.RegisterType((*HasLocalBranchesResponse)(nil), "gitaly.HasLocalBranchesResponse")
proto.RegisterEnum("gitaly.GetArchiveRequest_Format", GetArchiveRequest_Format_name, GetArchiveRequest_Format_value) proto.RegisterEnum("gitaly.GetArchiveRequest_Format", GetArchiveRequest_Format_name, GetArchiveRequest_Format_value)
} }
...@@ -423,8 +457,7 @@ type RepositoryServiceClient interface { ...@@ -423,8 +457,7 @@ type RepositoryServiceClient interface {
FetchRemote(ctx context.Context, in *FetchRemoteRequest, opts ...grpc.CallOption) (*FetchRemoteResponse, error) FetchRemote(ctx context.Context, in *FetchRemoteRequest, opts ...grpc.CallOption) (*FetchRemoteResponse, error)
CreateRepository(ctx context.Context, in *CreateRepositoryRequest, opts ...grpc.CallOption) (*CreateRepositoryResponse, error) CreateRepository(ctx context.Context, in *CreateRepositoryRequest, opts ...grpc.CallOption) (*CreateRepositoryResponse, error)
GetArchive(ctx context.Context, in *GetArchiveRequest, opts ...grpc.CallOption) (RepositoryService_GetArchiveClient, error) GetArchive(ctx context.Context, in *GetArchiveRequest, opts ...grpc.CallOption) (RepositoryService_GetArchiveClient, error)
// Deprecated, use the RepositoryExists RPC instead. HasLocalBranches(ctx context.Context, in *HasLocalBranchesRequest, opts ...grpc.CallOption) (*HasLocalBranchesResponse, error)
Exists(ctx context.Context, in *RepositoryExistsRequest, opts ...grpc.CallOption) (*RepositoryExistsResponse, error)
} }
type repositoryServiceClient struct { type repositoryServiceClient struct {
...@@ -539,9 +572,9 @@ func (x *repositoryServiceGetArchiveClient) Recv() (*GetArchiveResponse, error) ...@@ -539,9 +572,9 @@ func (x *repositoryServiceGetArchiveClient) Recv() (*GetArchiveResponse, error)
return m, nil return m, nil
} }
func (c *repositoryServiceClient) Exists(ctx context.Context, in *RepositoryExistsRequest, opts ...grpc.CallOption) (*RepositoryExistsResponse, error) { func (c *repositoryServiceClient) HasLocalBranches(ctx context.Context, in *HasLocalBranchesRequest, opts ...grpc.CallOption) (*HasLocalBranchesResponse, error) {
out := new(RepositoryExistsResponse) out := new(HasLocalBranchesResponse)
err := grpc.Invoke(ctx, "/gitaly.RepositoryService/Exists", in, out, c.cc, opts...) err := grpc.Invoke(ctx, "/gitaly.RepositoryService/HasLocalBranches", in, out, c.cc, opts...)
if err != nil { if err != nil {
return nil, err return nil, err
} }
...@@ -560,8 +593,7 @@ type RepositoryServiceServer interface { ...@@ -560,8 +593,7 @@ type RepositoryServiceServer interface {
FetchRemote(context.Context, *FetchRemoteRequest) (*FetchRemoteResponse, error) FetchRemote(context.Context, *FetchRemoteRequest) (*FetchRemoteResponse, error)
CreateRepository(context.Context, *CreateRepositoryRequest) (*CreateRepositoryResponse, error) CreateRepository(context.Context, *CreateRepositoryRequest) (*CreateRepositoryResponse, error)
GetArchive(*GetArchiveRequest, RepositoryService_GetArchiveServer) error GetArchive(*GetArchiveRequest, RepositoryService_GetArchiveServer) error
// Deprecated, use the RepositoryExists RPC instead. HasLocalBranches(context.Context, *HasLocalBranchesRequest) (*HasLocalBranchesResponse, error)
Exists(context.Context, *RepositoryExistsRequest) (*RepositoryExistsResponse, error)
} }
func RegisterRepositoryServiceServer(s *grpc.Server, srv RepositoryServiceServer) { func RegisterRepositoryServiceServer(s *grpc.Server, srv RepositoryServiceServer) {
...@@ -733,20 +765,20 @@ func (x *repositoryServiceGetArchiveServer) Send(m *GetArchiveResponse) error { ...@@ -733,20 +765,20 @@ func (x *repositoryServiceGetArchiveServer) Send(m *GetArchiveResponse) error {
return x.ServerStream.SendMsg(m) return x.ServerStream.SendMsg(m)
} }
func _RepositoryService_Exists_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { func _RepositoryService_HasLocalBranches_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(RepositoryExistsRequest) in := new(HasLocalBranchesRequest)
if err := dec(in); err != nil { if err := dec(in); err != nil {
return nil, err return nil, err
} }
if interceptor == nil { if interceptor == nil {
return srv.(RepositoryServiceServer).Exists(ctx, in) return srv.(RepositoryServiceServer).HasLocalBranches(ctx, in)
} }
info := &grpc.UnaryServerInfo{ info := &grpc.UnaryServerInfo{
Server: srv, Server: srv,
FullMethod: "/gitaly.RepositoryService/Exists", FullMethod: "/gitaly.RepositoryService/HasLocalBranches",
} }
handler := func(ctx context.Context, req interface{}) (interface{}, error) { handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(RepositoryServiceServer).Exists(ctx, req.(*RepositoryExistsRequest)) return srv.(RepositoryServiceServer).HasLocalBranches(ctx, req.(*HasLocalBranchesRequest))
} }
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
...@@ -788,8 +820,8 @@ var _RepositoryService_serviceDesc = grpc.ServiceDesc{ ...@@ -788,8 +820,8 @@ var _RepositoryService_serviceDesc = grpc.ServiceDesc{
Handler: _RepositoryService_CreateRepository_Handler, Handler: _RepositoryService_CreateRepository_Handler,
}, },
{ {
MethodName: "Exists", MethodName: "HasLocalBranches",
Handler: _RepositoryService_Exists_Handler, Handler: _RepositoryService_HasLocalBranches_Handler,
}, },
}, },
Streams: []grpc.StreamDesc{ Streams: []grpc.StreamDesc{
...@@ -805,51 +837,54 @@ var _RepositoryService_serviceDesc = grpc.ServiceDesc{ ...@@ -805,51 +837,54 @@ var _RepositoryService_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("repository-service.proto", fileDescriptor8) } func init() { proto.RegisterFile("repository-service.proto", fileDescriptor8) }
var fileDescriptor8 = []byte{ var fileDescriptor8 = []byte{
// 734 bytes of a gzipped FileDescriptorProto // 777 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x4f, 0x6f, 0xda, 0x4a, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x4f, 0x6f, 0xda, 0x4a,
0x10, 0x87, 0x90, 0x98, 0x64, 0xe0, 0x45, 0x64, 0x5e, 0xfe, 0x38, 0xce, 0x7b, 0x0d, 0x75, 0x2f, 0x10, 0x87, 0x10, 0x4c, 0x32, 0xf0, 0x22, 0xb2, 0x2f, 0x7f, 0x1c, 0xe7, 0xbd, 0x17, 0x9e, 0x7b,
0x39, 0xb4, 0xa8, 0x22, 0x97, 0x5e, 0x49, 0x94, 0x90, 0x28, 0x4a, 0xd5, 0xba, 0x91, 0x22, 0x21, 0xc9, 0xa1, 0x45, 0x11, 0xb9, 0xf4, 0x4a, 0xa2, 0x84, 0x44, 0x69, 0xaa, 0xd6, 0x8d, 0x14, 0x09,
0x55, 0x68, 0x31, 0x1b, 0x58, 0x01, 0x5e, 0x77, 0x77, 0x49, 0x43, 0xbe, 0x64, 0x3f, 0x44, 0x8f, 0xa9, 0x42, 0x8b, 0xd9, 0xc0, 0x0a, 0xe3, 0x75, 0x77, 0x17, 0x1a, 0xf2, 0x4d, 0x7b, 0xee, 0xb1,
0xfd, 0x12, 0x15, 0x6b, 0x63, 0x1b, 0x6c, 0x72, 0xa1, 0xbd, 0x79, 0x67, 0x67, 0x7e, 0x33, 0xfb, 0x5f, 0xa2, 0xf2, 0xda, 0xd8, 0x06, 0x9b, 0x5c, 0xac, 0xde, 0x76, 0x66, 0x67, 0x7e, 0x33, 0x3b,
0x9b, 0x99, 0x9f, 0x0c, 0xa6, 0xa0, 0x3e, 0x97, 0x4c, 0x71, 0x31, 0x79, 0x27, 0xa9, 0x78, 0x64, 0x7f, 0x7e, 0x36, 0xe8, 0x9c, 0x78, 0x4c, 0x50, 0xc9, 0xf8, 0xfc, 0x9d, 0x20, 0x7c, 0x46, 0x6d,
0x2e, 0xad, 0xf9, 0x82, 0x2b, 0x8e, 0x46, 0x8f, 0x29, 0x32, 0x9c, 0x58, 0x65, 0xd9, 0x27, 0x82, 0xd2, 0xf4, 0x38, 0x93, 0x0c, 0x69, 0x43, 0x2a, 0xb1, 0x33, 0x37, 0x6a, 0x62, 0x84, 0x39, 0x19,
0x76, 0x03, 0xab, 0x7d, 0x0b, 0x07, 0x4e, 0x14, 0x71, 0xf1, 0xc4, 0xa4, 0x92, 0x0e, 0xfd, 0x36, 0x04, 0x5a, 0xf3, 0x1e, 0x0e, 0xad, 0xc8, 0xe3, 0xea, 0x99, 0x0a, 0x29, 0x2c, 0xf2, 0x6d, 0x4a,
0xa6, 0x52, 0x61, 0x1d, 0x20, 0x06, 0x33, 0xf3, 0xd5, 0xfc, 0x49, 0xa9, 0x8e, 0xb5, 0x00, 0xa5, 0x84, 0x44, 0x2d, 0x80, 0x18, 0x4c, 0x2f, 0x36, 0x8a, 0xa7, 0xd5, 0x16, 0x6a, 0x06, 0x28, 0xcd,
0x16, 0x07, 0x39, 0x09, 0x2f, 0xbb, 0x0e, 0x66, 0x1a, 0x4e, 0xfa, 0xdc, 0x93, 0x14, 0xf7, 0xc1, 0xd8, 0xc9, 0x4a, 0x58, 0x99, 0x2d, 0xd0, 0xd3, 0x70, 0xc2, 0x63, 0xae, 0x20, 0xe8, 0x00, 0x34,
0xa0, 0xda, 0xa2, 0xb1, 0x36, 0x9d, 0xf0, 0x64, 0x7f, 0xd4, 0x31, 0xc4, 0x1d, 0x5c, 0x7b, 0xae, 0xa2, 0x34, 0x0a, 0x6b, 0xcb, 0x0a, 0x25, 0xf3, 0xa3, 0xf2, 0xc1, 0xf6, 0xf8, 0xd6, 0xb5, 0x39,
0xa0, 0x23, 0xea, 0x29, 0x32, 0x5c, 0xa5, 0x86, 0x23, 0x38, 0xcc, 0xc0, 0x0b, 0x8a, 0xb0, 0x87, 0x99, 0x10, 0x57, 0x62, 0x27, 0x4f, 0x0e, 0xc7, 0x70, 0x94, 0x81, 0x17, 0x24, 0x61, 0x3a, 0xb0,
0xb0, 0x13, 0x5c, 0x5e, 0x8e, 0x87, 0xab, 0x64, 0xc1, 0x37, 0xf0, 0x8f, 0x2b, 0x28, 0x51, 0xb4, 0x1b, 0x5c, 0x5e, 0x4f, 0x9d, 0x3c, 0x51, 0xd0, 0x1b, 0xf8, 0xcb, 0xe6, 0x04, 0x4b, 0xd2, 0xeb,
0xdd, 0x61, 0x6a, 0x44, 0x7c, 0x73, 0x4d, 0x3f, 0xaa, 0x1c, 0x18, 0xcf, 0xb4, 0xcd, 0xde, 0x05, 0x53, 0x39, 0xc1, 0x9e, 0xbe, 0xa1, 0x1e, 0x55, 0x0b, 0x94, 0x17, 0x4a, 0x67, 0xee, 0x01, 0x4a,
0x4c, 0x66, 0x0b, 0x6b, 0xf0, 0x61, 0xaf, 0x49, 0x44, 0x87, 0xf4, 0xe8, 0x39, 0x1f, 0x0e, 0xa9, 0x46, 0x0b, 0x73, 0xf0, 0x60, 0xbf, 0x83, 0x79, 0x1f, 0x0f, 0xc9, 0x25, 0x73, 0x1c, 0x62, 0xcb,
0xab, 0xfe, 0x7a, 0x1d, 0x26, 0xec, 0x2f, 0x66, 0x0c, 0x6b, 0xb9, 0x81, 0xbd, 0x18, 0xf8, 0x0b, 0x3f, 0x9e, 0x87, 0x0e, 0x07, 0xab, 0x11, 0xc3, 0x5c, 0xee, 0x60, 0x3f, 0x06, 0xfe, 0x42, 0x5f,
0x7b, 0xa6, 0xab, 0x30, 0xff, 0x16, 0xf6, 0x17, 0xc1, 0xc2, 0xde, 0x23, 0xac, 0x4b, 0xf6, 0x4c, 0x48, 0x9e, 0xca, 0xbf, 0x85, 0x83, 0x55, 0xb0, 0xb0, 0xf7, 0x08, 0x36, 0x05, 0x7d, 0x21, 0x0a,
0x35, 0x4e, 0xc1, 0xd1, 0xdf, 0xf6, 0x00, 0x0e, 0x1b, 0xbe, 0x3f, 0x9c, 0x34, 0x99, 0x22, 0x4a, 0xa7, 0x64, 0xa9, 0xb3, 0x39, 0x86, 0xa3, 0xb6, 0xe7, 0x39, 0xf3, 0x0e, 0x95, 0x58, 0x4a, 0x4e,
0x09, 0xd6, 0x19, 0x2b, 0xba, 0xca, 0xf0, 0xa1, 0x05, 0x9b, 0x82, 0x3e, 0x32, 0xc9, 0xb8, 0xa7, 0xfb, 0x53, 0x49, 0xf2, 0x0c, 0x1f, 0x32, 0x60, 0x8b, 0x93, 0x19, 0x15, 0x94, 0xb9, 0xaa, 0x0a,
0x59, 0x28, 0x3b, 0xd1, 0xd9, 0xfe, 0x0f, 0xac, 0xac, 0x64, 0x21, 0x0b, 0x3f, 0xf3, 0x80, 0x97, 0x35, 0x2b, 0x92, 0xcd, 0x7f, 0xc0, 0xc8, 0x0a, 0x16, 0x56, 0xe1, 0x67, 0x11, 0xd0, 0x35, 0x91,
0x54, 0xb9, 0x7d, 0x87, 0x8e, 0xb8, 0x5a, 0x85, 0x83, 0xe9, 0x94, 0x0b, 0x0d, 0xa2, 0x4b, 0xd8, 0xf6, 0xc8, 0x22, 0x13, 0x26, 0xf3, 0xd4, 0xc0, 0x9f, 0x72, 0xae, 0x40, 0x54, 0x0a, 0xdb, 0x56,
0x72, 0xc2, 0x13, 0xee, 0xc2, 0xc6, 0x03, 0x17, 0x2e, 0x35, 0x0b, 0xba, 0x3f, 0xc1, 0x01, 0x0f, 0x28, 0xa1, 0x3d, 0x28, 0x3f, 0x31, 0x6e, 0x13, 0xbd, 0xa4, 0xfa, 0x13, 0x08, 0xe8, 0x10, 0x2a,
0xa0, 0xe8, 0xf1, 0xb6, 0x22, 0x3d, 0x69, 0xae, 0x07, 0x4b, 0xe1, 0xf1, 0x3b, 0xd2, 0x93, 0x68, 0x2e, 0xeb, 0x49, 0x3c, 0x14, 0xfa, 0x66, 0xb0, 0x14, 0x2e, 0x7b, 0xc0, 0x43, 0x81, 0x74, 0xa8,
0x42, 0x51, 0xb1, 0x11, 0xe5, 0x63, 0x65, 0x6e, 0x54, 0xf3, 0x27, 0x1b, 0xce, 0xec, 0x38, 0x0d, 0x48, 0x3a, 0x21, 0x6c, 0x2a, 0xf5, 0x72, 0xa3, 0x78, 0x5a, 0xb6, 0x16, 0xa2, 0xef, 0x22, 0xc4,
0x91, 0xb2, 0xdf, 0x1e, 0xd0, 0x89, 0x69, 0x04, 0x19, 0xa4, 0xec, 0xdf, 0xd0, 0x09, 0x1e, 0x43, 0xa8, 0x37, 0x26, 0x73, 0x5d, 0x0b, 0x22, 0x08, 0x31, 0xba, 0x23, 0x73, 0x74, 0x02, 0xd5, 0xb1,
0x69, 0xe0, 0xf1, 0xef, 0x5e, 0xbb, 0xcf, 0xa7, 0x4b, 0x56, 0xd4, 0x97, 0xa0, 0x4d, 0x57, 0x53, 0xcb, 0xbe, 0xbb, 0xbd, 0x11, 0xf3, 0x97, 0xac, 0xa2, 0x2e, 0x41, 0xa9, 0x6e, 0x7c, 0x8d, 0xb9,
0x8b, 0xbd, 0x07, 0xff, 0xce, 0x3d, 0x32, 0x7c, 0xfc, 0x2d, 0x1c, 0x9c, 0xeb, 0x61, 0x49, 0xbc, 0x0f, 0x7f, 0x2f, 0x3d, 0x32, 0x7c, 0xfc, 0x3d, 0x1c, 0x5e, 0xaa, 0x61, 0x49, 0xbc, 0x28, 0xc7,
0x68, 0x85, 0x21, 0xb0, 0xc0, 0x4c, 0xc3, 0x85, 0xa9, 0x7e, 0xe5, 0x61, 0xa7, 0x49, 0x55, 0x43, 0x10, 0x18, 0xa0, 0xa7, 0xe1, 0xc2, 0x50, 0xbf, 0x8a, 0xb0, 0xdb, 0x21, 0xb2, 0xcd, 0xed, 0x11,
0xb8, 0x7d, 0xf6, 0xb8, 0x12, 0xcd, 0x47, 0xb0, 0xe5, 0xf2, 0xd1, 0x88, 0xa9, 0x36, 0xeb, 0x86, 0x9d, 0xe5, 0x2a, 0xf3, 0x31, 0x6c, 0xdb, 0x6c, 0x32, 0xa1, 0xb2, 0x47, 0x07, 0x61, 0xa5, 0xb7,
0x4c, 0x6f, 0x06, 0x86, 0xeb, 0xee, 0xb4, 0x07, 0xbe, 0xa0, 0x0f, 0xec, 0x49, 0x93, 0xbd, 0xe5, 0x02, 0xc5, 0xed, 0xc0, 0xef, 0x81, 0xc7, 0xc9, 0x13, 0x7d, 0x56, 0xc5, 0xde, 0xb6, 0x42, 0x09,
0x84, 0x27, 0xfc, 0x00, 0xc6, 0x03, 0x17, 0x23, 0xa2, 0x34, 0xd9, 0xdb, 0xf5, 0xea, 0x2c, 0x49, 0xbd, 0x07, 0xed, 0x89, 0xf1, 0x09, 0x96, 0xaa, 0xd8, 0x3b, 0xad, 0xc6, 0x22, 0x48, 0x2a, 0xa7,
0xaa, 0xa6, 0xda, 0xa5, 0xf6, 0x73, 0x42, 0x7f, 0xfb, 0x14, 0x8c, 0xc0, 0x82, 0x45, 0x28, 0xb4, 0xe6, 0xb5, 0xb2, 0xb3, 0x42, 0x7b, 0xf3, 0x1c, 0xb4, 0x40, 0x83, 0x2a, 0x50, 0xea, 0xde, 0x7e,
0xae, 0x3f, 0x55, 0x72, 0xd3, 0x8f, 0xbb, 0x86, 0x53, 0xc9, 0x23, 0x80, 0x71, 0xd7, 0x70, 0xda, 0xaa, 0x17, 0xfc, 0xc3, 0x43, 0xdb, 0xaa, 0x17, 0x11, 0x80, 0xf6, 0xd0, 0xb6, 0x7a, 0x9d, 0x6e,
0xcd, 0x56, 0x65, 0x0d, 0x4b, 0x50, 0x9c, 0x7e, 0x9f, 0xb5, 0xea, 0x95, 0x82, 0x7d, 0x02, 0x98, 0x7d, 0x03, 0x55, 0xa1, 0xe2, 0x9f, 0x2f, 0xba, 0xad, 0x7a, 0xc9, 0x3c, 0x05, 0x94, 0x04, 0x8e,
0x04, 0x8e, 0x57, 0xa1, 0x4b, 0x14, 0xd1, 0xef, 0x2c, 0x3b, 0xfa, 0xbb, 0xfe, 0xc3, 0xd0, 0xb2, 0x57, 0x61, 0x80, 0x25, 0x56, 0xef, 0xac, 0x59, 0xea, 0xec, 0xb7, 0xe0, 0x06, 0x8b, 0x0f, 0xcc,
0x34, 0xdb, 0x9c, 0x40, 0xb7, 0xf1, 0x1e, 0x2a, 0x8b, 0x62, 0x8a, 0xc7, 0x69, 0x5e, 0xe6, 0x54, 0xc6, 0xce, 0x05, 0xc7, 0xae, 0x3d, 0xca, 0xb5, 0x08, 0xe6, 0x19, 0xe8, 0x69, 0xb8, 0x30, 0xfc,
0xdb, 0xaa, 0x2e, 0x77, 0x08, 0x9b, 0x90, 0xc3, 0xd6, 0x4c, 0x04, 0x13, 0x0a, 0x89, 0xc9, 0xc0, 0x1e, 0x94, 0x67, 0xd8, 0x99, 0x92, 0x90, 0x84, 0x03, 0xa1, 0xf5, 0x43, 0x53, 0xbc, 0xb8, 0x58,
0x4c, 0x31, 0xb6, 0x5e, 0xbf, 0xe0, 0x11, 0x61, 0x5f, 0x00, 0xc4, 0x92, 0x87, 0x87, 0xf3, 0x21, 0xdd, 0xe0, 0xc3, 0x81, 0x1e, 0xa1, 0xbe, 0xca, 0xe6, 0xe8, 0x24, 0x1d, 0x7b, 0xe9, 0xb3, 0x61,
0x09, 0xd1, 0xb5, 0xac, 0xac, 0xab, 0x08, 0xe6, 0x33, 0x6c, 0xcf, 0x2b, 0x16, 0xfe, 0x1f, 0x35, 0x34, 0xd6, 0x1b, 0x84, 0x53, 0x50, 0x40, 0xdd, 0x05, 0x0b, 0x27, 0x28, 0x1a, 0x25, 0x1d, 0x33,
0x2b, 0x4b, 0x3b, 0xad, 0x57, 0xcb, 0xae, 0x93, 0x90, 0xf3, 0xea, 0x14, 0x43, 0x66, 0x4a, 0x60, 0xbf, 0x06, 0xc6, 0xff, 0xaf, 0x58, 0x44, 0xd8, 0x57, 0x00, 0x31, 0xe7, 0xa2, 0xa3, 0x65, 0x97,
0x0c, 0x99, 0x2d, 0x6a, 0x76, 0x0e, 0xbf, 0x02, 0xa6, 0x55, 0x05, 0x23, 0x9e, 0x96, 0xca, 0x9b, 0x04, 0xeb, 0x1b, 0x46, 0xd6, 0x55, 0x04, 0xf3, 0x19, 0x76, 0x96, 0x29, 0x13, 0xfd, 0x1b, 0x4d,
0x65, 0xbf, 0xe4, 0x12, 0xc1, 0x5f, 0x41, 0x29, 0xb1, 0xb0, 0x18, 0x31, 0x96, 0x96, 0x2a, 0xeb, 0x4b, 0x16, 0x79, 0x1b, 0xff, 0xad, 0xbb, 0x4e, 0x42, 0x2e, 0xd3, 0x63, 0x0c, 0x99, 0xc9, 0xc1,
0x28, 0xf3, 0x2e, 0x42, 0xba, 0x87, 0xca, 0xe2, 0x52, 0xc6, 0xa3, 0xb4, 0x64, 0xfb, 0xe3, 0x51, 0x31, 0x64, 0x36, 0xab, 0x9a, 0x05, 0xf4, 0x15, 0x50, 0x9a, 0xd6, 0x50, 0x54, 0xa7, 0xb5, 0xfc,
0x5a, 0xba, 0xcf, 0x39, 0x6c, 0x02, 0xc4, 0x33, 0x1e, 0xb7, 0x3b, 0xb5, 0x50, 0x71, 0xbb, 0xd3, 0x6a, 0x98, 0xaf, 0x99, 0x44, 0xf0, 0x37, 0x50, 0x4d, 0x30, 0x06, 0x8a, 0x2a, 0x96, 0xe6, 0x4a,
0x2b, 0x61, 0xe7, 0xde, 0xe7, 0xf1, 0x16, 0x8c, 0x3f, 0x38, 0xe2, 0x1d, 0x43, 0xff, 0xde, 0x9c, 0xe3, 0x38, 0xf3, 0x2e, 0x42, 0x7a, 0x84, 0xfa, 0x2a, 0x2b, 0xc4, 0xa3, 0xb4, 0x86, 0x7e, 0xe2,
0xfe, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x20, 0x17, 0xa1, 0x43, 0x10, 0x09, 0x00, 0x00, 0x51, 0x5a, 0x4b, 0x28, 0x05, 0xd4, 0x01, 0x88, 0x97, 0x2c, 0x6e, 0x77, 0x6a, 0xa3, 0xe3, 0x76,
0xa7, 0x77, 0xd2, 0x2c, 0x9c, 0x15, 0xfd, 0x0c, 0x57, 0x97, 0x26, 0xce, 0x70, 0xcd, 0x76, 0xc6,
0x19, 0xae, 0xdb, 0x37, 0xb3, 0xd0, 0xd7, 0xd4, 0x9f, 0xd6, 0xf9, 0xef, 0x00, 0x00, 0x00, 0xff,
0xff, 0x3d, 0x9f, 0x6f, 0xec, 0x9b, 0x09, 0x00, 0x00,
} }
...@@ -19,6 +19,8 @@ var _ = math.Inf ...@@ -19,6 +19,8 @@ var _ = math.Inf
type InfoRefsRequest struct { type InfoRefsRequest struct {
Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"` Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
// Parameters to use with git -c (key=value pairs)
GitConfigOptions []string `protobuf:"bytes,2,rep,name=git_config_options,json=gitConfigOptions" json:"git_config_options,omitempty"`
} }
func (m *InfoRefsRequest) Reset() { *m = InfoRefsRequest{} } func (m *InfoRefsRequest) Reset() { *m = InfoRefsRequest{} }
...@@ -33,6 +35,13 @@ func (m *InfoRefsRequest) GetRepository() *Repository { ...@@ -33,6 +35,13 @@ func (m *InfoRefsRequest) GetRepository() *Repository {
return nil return nil
} }
func (m *InfoRefsRequest) GetGitConfigOptions() []string {
if m != nil {
return m.GitConfigOptions
}
return nil
}
type InfoRefsResponse struct { type InfoRefsResponse struct {
Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
} }
...@@ -54,6 +63,8 @@ type PostUploadPackRequest struct { ...@@ -54,6 +63,8 @@ type PostUploadPackRequest struct {
Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"` Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
// Raw data to be copied to stdin of 'git upload-pack' // Raw data to be copied to stdin of 'git upload-pack'
Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
// Parameters to use with git -c (key=value pairs)
GitConfigOptions []string `protobuf:"bytes,3,rep,name=git_config_options,json=gitConfigOptions" json:"git_config_options,omitempty"`
} }
func (m *PostUploadPackRequest) Reset() { *m = PostUploadPackRequest{} } func (m *PostUploadPackRequest) Reset() { *m = PostUploadPackRequest{} }
...@@ -75,6 +86,13 @@ func (m *PostUploadPackRequest) GetData() []byte { ...@@ -75,6 +86,13 @@ func (m *PostUploadPackRequest) GetData() []byte {
return nil return nil
} }
func (m *PostUploadPackRequest) GetGitConfigOptions() []string {
if m != nil {
return m.GitConfigOptions
}
return nil
}
type PostUploadPackResponse struct { type PostUploadPackResponse struct {
// Raw data from stdout of 'git upload-pack' // Raw data from stdout of 'git upload-pack'
Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
...@@ -470,27 +488,30 @@ var _SmartHTTPService_serviceDesc = grpc.ServiceDesc{ ...@@ -470,27 +488,30 @@ var _SmartHTTPService_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("smarthttp.proto", fileDescriptor10) } func init() { proto.RegisterFile("smarthttp.proto", fileDescriptor10) }
var fileDescriptor10 = []byte{ var fileDescriptor10 = []byte{
// 346 bytes of a gzipped FileDescriptorProto // 386 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x53, 0xd1, 0x4e, 0xc2, 0x30, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x93, 0xdd, 0xee, 0xd2, 0x40,
0x14, 0x75, 0x08, 0x24, 0x5e, 0x50, 0xc8, 0x25, 0xca, 0xb2, 0x44, 0x21, 0x33, 0x31, 0x3c, 0x28, 0x10, 0xc5, 0x5d, 0xbe, 0x12, 0x06, 0x14, 0x32, 0x44, 0x69, 0x9a, 0x28, 0xa4, 0x26, 0xa6, 0x17,
0x21, 0xf8, 0x0d, 0x26, 0x12, 0x7d, 0x20, 0x05, 0x12, 0xdf, 0x96, 0xca, 0x4a, 0x59, 0x2c, 0x74, 0x48, 0x08, 0x3e, 0x82, 0x37, 0x12, 0x4d, 0x24, 0x0b, 0x24, 0xde, 0x35, 0x6b, 0xbb, 0x2c, 0x1b,
0xb6, 0x85, 0x84, 0x6f, 0xf3, 0x5f, 0xfc, 0x16, 0xe3, 0xe6, 0xd8, 0x00, 0xf1, 0x41, 0xe3, 0xdb, 0x97, 0x6e, 0xed, 0x2e, 0x24, 0x3c, 0x84, 0x4f, 0xe4, 0xbb, 0xf8, 0x2c, 0xc6, 0xd6, 0x52, 0x3e,
0x72, 0xcf, 0xe9, 0x39, 0xa7, 0xbd, 0x67, 0x50, 0xd1, 0x33, 0xaa, 0xcc, 0xd4, 0x98, 0xb0, 0x1d, 0xac, 0x17, 0x9a, 0xff, 0x5d, 0x33, 0x67, 0xf6, 0x9c, 0xdf, 0xee, 0x4c, 0xa1, 0x67, 0xf6, 0x2c,
0x2a, 0x69, 0x24, 0x16, 0x79, 0x60, 0xa8, 0x58, 0x39, 0x65, 0x3d, 0xa5, 0x8a, 0xf9, 0xf1, 0xd4, 0xb5, 0x3b, 0x6b, 0x93, 0x69, 0x92, 0x6a, 0xab, 0xb1, 0x25, 0xa4, 0x65, 0xea, 0xe4, 0x76, 0xcd,
0xbd, 0x83, 0x4a, 0x6f, 0x3e, 0x91, 0x84, 0x4d, 0x34, 0x61, 0xaf, 0x0b, 0xa6, 0x0d, 0x76, 0x01, 0x8e, 0xa5, 0x3c, 0xca, 0xab, 0x9e, 0x81, 0xde, 0x22, 0xde, 0x6a, 0xca, 0xb7, 0x86, 0xf2, 0xaf,
0x14, 0x0b, 0xa5, 0x0e, 0x8c, 0x54, 0x2b, 0xdb, 0x6a, 0x5a, 0xad, 0x52, 0x17, 0xdb, 0xf1, 0xe9, 0x07, 0x6e, 0x2c, 0xce, 0x01, 0x52, 0x9e, 0x68, 0x23, 0xad, 0x4e, 0x4f, 0x0e, 0x19, 0x13, 0xbf,
0x36, 0x59, 0x23, 0x24, 0xc3, 0x72, 0xaf, 0xa0, 0x9a, 0xca, 0xe8, 0x50, 0xce, 0x35, 0x43, 0x84, 0x33, 0xc7, 0x69, 0x7e, 0x7a, 0x4a, 0xcf, 0x0a, 0xbd, 0xe8, 0xc2, 0x09, 0xa0, 0x90, 0x36, 0x08,
0xbc, 0x4f, 0x0d, 0x8d, 0x14, 0xca, 0x24, 0xfa, 0x76, 0x3d, 0x38, 0xed, 0x4b, 0x6d, 0x46, 0xa1, 0x75, 0xbc, 0x95, 0x22, 0xd0, 0x89, 0x95, 0x3a, 0x36, 0x4e, 0x6d, 0x5c, 0xf7, 0xdb, 0xb4, 0x2f,
0x90, 0xd4, 0xef, 0xd3, 0xf1, 0xcb, 0x1f, 0x4c, 0xd7, 0x06, 0xb9, 0x8c, 0xc1, 0x35, 0x9c, 0x6d, 0xa4, 0x7d, 0x9b, 0x09, 0x1f, 0xf3, 0xba, 0xf7, 0x0a, 0xfa, 0x65, 0xa8, 0x49, 0x74, 0x6c, 0x38,
0x1b, 0xfc, 0x10, 0xe7, 0xcd, 0x8a, 0xe9, 0x84, 0x8d, 0x59, 0xb0, 0x64, 0xff, 0x10, 0x08, 0x6b, 0x22, 0x34, 0x22, 0x66, 0x59, 0x96, 0xd7, 0xa5, 0xd9, 0xb7, 0xf7, 0x8d, 0xc0, 0xd3, 0xa5, 0x36,
0x50, 0xe0, 0xc2, 0x0b, 0x7c, 0xfb, 0xb0, 0x69, 0xb5, 0x8e, 0x48, 0x9e, 0x8b, 0x9e, 0x8f, 0x97, 0x76, 0x93, 0x28, 0xcd, 0xa2, 0x25, 0x0b, 0xbf, 0xfc, 0x0f, 0x63, 0x91, 0x50, 0x2b, 0x13, 0x2a,
0x70, 0xcc, 0x85, 0x97, 0xd1, 0xcf, 0x47, 0x60, 0x99, 0x8b, 0x54, 0x19, 0x1b, 0x50, 0xe2, 0xc2, 0xb8, 0xeb, 0x15, 0xdc, 0x13, 0x78, 0x76, 0x8b, 0xf3, 0x17, 0xfa, 0xef, 0x24, 0x6f, 0xa7, 0x3c,
0x5b, 0x68, 0xa6, 0xe6, 0x74, 0xc6, 0xec, 0x42, 0x44, 0x01, 0x2e, 0x46, 0x5f, 0x13, 0xf7, 0x06, 0xe4, 0xf2, 0xc8, 0x1f, 0x02, 0x7f, 0x00, 0x4d, 0xa1, 0x02, 0x19, 0x39, 0xf5, 0x31, 0xf1, 0xdb,
0xea, 0x3b, 0xe1, 0xf7, 0x5f, 0xb6, 0xfb, 0x9e, 0x83, 0xea, 0xe0, 0xb3, 0x14, 0xf7, 0xc3, 0x61, 0xb4, 0x21, 0xd4, 0x22, 0xc2, 0x97, 0xf0, 0x58, 0xa8, 0xe0, 0xc2, 0xbf, 0x91, 0x89, 0x5d, 0xa1,
0x7f, 0xc0, 0xd4, 0x32, 0x18, 0x33, 0x7c, 0x00, 0x4c, 0x16, 0x97, 0xbe, 0x19, 0xd6, 0x93, 0x8b, 0x4a, 0x67, 0x1c, 0x41, 0x47, 0xa8, 0xe0, 0x60, 0x78, 0x1a, 0xb3, 0x3d, 0x77, 0x9a, 0x59, 0x0b,
0x6e, 0x75, 0xc3, 0xb1, 0x77, 0x81, 0xd8, 0xd1, 0x3d, 0xe8, 0x58, 0xf8, 0x08, 0xb5, 0x74, 0xbe, 0x08, 0xb5, 0xf9, 0x5d, 0xf1, 0x5e, 0xc3, 0xf0, 0x0e, 0xbe, 0xfa, 0xb2, 0xf3, 0x1f, 0x35, 0xe8,
0x0e, 0xf5, 0x5b, 0xb5, 0x11, 0x9c, 0x6c, 0xae, 0x12, 0xcf, 0x13, 0xfe, 0xb7, 0x1d, 0x72, 0x2e, 0xaf, 0x7e, 0x6d, 0xdc, 0xbb, 0xf5, 0x7a, 0xb9, 0xe2, 0xe9, 0x51, 0x86, 0x1c, 0xdf, 0x03, 0x16,
0xf6, 0xc1, 0x89, 0x68, 0xcb, 0xea, 0x58, 0xf8, 0x04, 0x95, 0xad, 0x57, 0xc3, 0x8d, 0x83, 0xbb, 0x73, 0x2e, 0xdf, 0x0c, 0x87, 0xc5, 0x45, 0x6f, 0x16, 0xcf, 0x75, 0xee, 0x85, 0x3c, 0xd1, 0x7b,
0x5d, 0x70, 0x1a, 0x7b, 0xf1, 0xac, 0xf2, 0x73, 0x31, 0xfa, 0xa5, 0x6e, 0x3f, 0x02, 0x00, 0x00, 0x34, 0x23, 0xf8, 0x01, 0x06, 0x65, 0xfd, 0x0c, 0xf5, 0xaf, 0x6e, 0x1b, 0x78, 0x72, 0x3d, 0x4a,
0xff, 0xff, 0x58, 0x82, 0x47, 0x22, 0x7b, 0x03, 0x00, 0x00, 0x7c, 0x5e, 0xf4, 0xff, 0x71, 0xe3, 0xdc, 0x17, 0x55, 0x72, 0x61, 0xea, 0x93, 0x19, 0xc1, 0x4f,
0xd0, 0xbb, 0x79, 0x35, 0xbc, 0x3a, 0x78, 0xbf, 0x0b, 0xee, 0xa8, 0x52, 0xbf, 0x74, 0xfe, 0xdc,
0xca, 0xfe, 0xd7, 0x37, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xaf, 0x85, 0x01, 0x06, 0xd8, 0x03,
0x00, 0x00,
} }
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: wiki.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 WikiPageVersion struct {
Commit *GitCommit `protobuf:"bytes,1,opt,name=commit" json:"commit,omitempty"`
Format string `protobuf:"bytes,2,opt,name=format" json:"format,omitempty"`
}
func (m *WikiPageVersion) Reset() { *m = WikiPageVersion{} }
func (m *WikiPageVersion) String() string { return proto.CompactTextString(m) }
func (*WikiPageVersion) ProtoMessage() {}
func (*WikiPageVersion) Descriptor() ([]byte, []int) { return fileDescriptor12, []int{0} }
func (m *WikiPageVersion) GetCommit() *GitCommit {
if m != nil {
return m.Commit
}
return nil
}
func (m *WikiPageVersion) GetFormat() string {
if m != nil {
return m.Format
}
return ""
}
type WikiGetPageVersionsRequest struct {
Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"`
PagePath []byte `protobuf:"bytes,2,opt,name=page_path,json=pagePath,proto3" json:"page_path,omitempty"`
}
func (m *WikiGetPageVersionsRequest) Reset() { *m = WikiGetPageVersionsRequest{} }
func (m *WikiGetPageVersionsRequest) String() string { return proto.CompactTextString(m) }
func (*WikiGetPageVersionsRequest) ProtoMessage() {}
func (*WikiGetPageVersionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor12, []int{1} }
func (m *WikiGetPageVersionsRequest) GetRepository() *Repository {
if m != nil {
return m.Repository
}
return nil
}
func (m *WikiGetPageVersionsRequest) GetPagePath() []byte {
if m != nil {
return m.PagePath
}
return nil
}
type WikiGetPageVersionsResponse struct {
Versions []*WikiPageVersion `protobuf:"bytes,1,rep,name=versions" json:"versions,omitempty"`
}
func (m *WikiGetPageVersionsResponse) Reset() { *m = WikiGetPageVersionsResponse{} }
func (m *WikiGetPageVersionsResponse) String() string { return proto.CompactTextString(m) }
func (*WikiGetPageVersionsResponse) ProtoMessage() {}
func (*WikiGetPageVersionsResponse) Descriptor() ([]byte, []int) { return fileDescriptor12, []int{2} }
func (m *WikiGetPageVersionsResponse) GetVersions() []*WikiPageVersion {
if m != nil {
return m.Versions
}
return nil
}
func init() {
proto.RegisterType((*WikiPageVersion)(nil), "gitaly.WikiPageVersion")
proto.RegisterType((*WikiGetPageVersionsRequest)(nil), "gitaly.WikiGetPageVersionsRequest")
proto.RegisterType((*WikiGetPageVersionsResponse)(nil), "gitaly.WikiGetPageVersionsResponse")
}
// 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 WikiService service
type WikiServiceClient interface {
WikiGetPageVersions(ctx context.Context, in *WikiGetPageVersionsRequest, opts ...grpc.CallOption) (WikiService_WikiGetPageVersionsClient, error)
}
type wikiServiceClient struct {
cc *grpc.ClientConn
}
func NewWikiServiceClient(cc *grpc.ClientConn) WikiServiceClient {
return &wikiServiceClient{cc}
}
func (c *wikiServiceClient) WikiGetPageVersions(ctx context.Context, in *WikiGetPageVersionsRequest, opts ...grpc.CallOption) (WikiService_WikiGetPageVersionsClient, error) {
stream, err := grpc.NewClientStream(ctx, &_WikiService_serviceDesc.Streams[0], c.cc, "/gitaly.WikiService/WikiGetPageVersions", opts...)
if err != nil {
return nil, err
}
x := &wikiServiceWikiGetPageVersionsClient{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 WikiService_WikiGetPageVersionsClient interface {
Recv() (*WikiGetPageVersionsResponse, error)
grpc.ClientStream
}
type wikiServiceWikiGetPageVersionsClient struct {
grpc.ClientStream
}
func (x *wikiServiceWikiGetPageVersionsClient) Recv() (*WikiGetPageVersionsResponse, error) {
m := new(WikiGetPageVersionsResponse)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
// Server API for WikiService service
type WikiServiceServer interface {
WikiGetPageVersions(*WikiGetPageVersionsRequest, WikiService_WikiGetPageVersionsServer) error
}
func RegisterWikiServiceServer(s *grpc.Server, srv WikiServiceServer) {
s.RegisterService(&_WikiService_serviceDesc, srv)
}
func _WikiService_WikiGetPageVersions_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(WikiGetPageVersionsRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
return srv.(WikiServiceServer).WikiGetPageVersions(m, &wikiServiceWikiGetPageVersionsServer{stream})
}
type WikiService_WikiGetPageVersionsServer interface {
Send(*WikiGetPageVersionsResponse) error
grpc.ServerStream
}
type wikiServiceWikiGetPageVersionsServer struct {
grpc.ServerStream
}
func (x *wikiServiceWikiGetPageVersionsServer) Send(m *WikiGetPageVersionsResponse) error {
return x.ServerStream.SendMsg(m)
}
var _WikiService_serviceDesc = grpc.ServiceDesc{
ServiceName: "gitaly.WikiService",
HandlerType: (*WikiServiceServer)(nil),
Methods: []grpc.MethodDesc{},
Streams: []grpc.StreamDesc{
{
StreamName: "WikiGetPageVersions",
Handler: _WikiService_WikiGetPageVersions_Handler,
ServerStreams: true,
},
},
Metadata: "wiki.proto",
}
func init() { proto.RegisterFile("wiki.proto", fileDescriptor12) }
var fileDescriptor12 = []byte{
// 258 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x91, 0xcf, 0x4a, 0xf3, 0x40,
0x14, 0xc5, 0xbf, 0x7c, 0x42, 0x68, 0x6f, 0x0a, 0xe2, 0x08, 0x1a, 0xd2, 0x4d, 0x18, 0x37, 0x71,
0x13, 0x24, 0x7d, 0x04, 0x17, 0xdd, 0x96, 0x51, 0x74, 0x29, 0xd3, 0x7a, 0x4d, 0x2e, 0x35, 0x9d,
0xe9, 0xcc, 0xb5, 0xd2, 0xb7, 0x97, 0xfc, 0x69, 0x09, 0x12, 0x5c, 0xce, 0x39, 0x67, 0xce, 0x6f,
0x0e, 0x03, 0xf0, 0x4d, 0x5b, 0xca, 0xad, 0x33, 0x6c, 0x44, 0x58, 0x12, 0xeb, 0xcf, 0x63, 0x32,
0xf3, 0x95, 0x76, 0xf8, 0xde, 0xa9, 0xf2, 0x19, 0x2e, 0x5f, 0x69, 0x4b, 0x2b, 0x5d, 0xe2, 0x0b,
0x3a, 0x4f, 0x66, 0x27, 0xee, 0x21, 0xdc, 0x98, 0xba, 0x26, 0x8e, 0x83, 0x34, 0xc8, 0xa2, 0xe2,
0x2a, 0xef, 0x6e, 0xe6, 0x4b, 0xe2, 0xc7, 0xd6, 0x50, 0x7d, 0x40, 0xdc, 0x40, 0xf8, 0x61, 0x5c,
0xad, 0x39, 0xfe, 0x9f, 0x06, 0xd9, 0x54, 0xf5, 0x27, 0x59, 0x43, 0xd2, 0xb4, 0x2e, 0x91, 0x07,
0xc5, 0x5e, 0xe1, 0xfe, 0x0b, 0x3d, 0x8b, 0x02, 0xc0, 0xa1, 0x35, 0x9e, 0xd8, 0xb8, 0x63, 0x0f,
0x11, 0x27, 0x88, 0x3a, 0x3b, 0x6a, 0x90, 0x12, 0x73, 0x98, 0x5a, 0x5d, 0xe2, 0x9b, 0xd5, 0x5c,
0xb5, 0xb0, 0x99, 0x9a, 0x34, 0xc2, 0x4a, 0x73, 0x25, 0x15, 0xcc, 0x47, 0x71, 0xde, 0x9a, 0x9d,
0x47, 0xb1, 0x80, 0xc9, 0xa1, 0xd7, 0xe2, 0x20, 0xbd, 0xc8, 0xa2, 0xe2, 0xf6, 0x44, 0xfb, 0xb5,
0x5d, 0x9d, 0x83, 0xc5, 0x1e, 0xa2, 0xc6, 0x7c, 0x42, 0x77, 0xa0, 0x0d, 0x8a, 0x35, 0x5c, 0x8f,
0x20, 0x84, 0x1c, 0x16, 0x8d, 0xcf, 0x4d, 0xee, 0xfe, 0xcc, 0x74, 0x6f, 0x94, 0xff, 0x1e, 0x82,
0x75, 0xd8, 0x7e, 0xc9, 0xe2, 0x27, 0x00, 0x00, 0xff, 0xff, 0x7d, 0x27, 0x74, 0x80, 0xb6, 0x01,
0x00, 0x00,
}
...@@ -164,12 +164,12 @@ ...@@ -164,12 +164,12 @@
"revisionTime": "2016-11-17T07:43:51Z" "revisionTime": "2016-11-17T07:43:51Z"
}, },
{ {
"checksumSHA1": "I7Kz+IncdenJ5tOCo/5qJlQ4U7k=", "checksumSHA1": "3b0dq1/Vmln2vOY8upDIrDlucyo=",
"path": "gitlab.com/gitlab-org/gitaly-proto/go", "path": "gitlab.com/gitlab-org/gitaly-proto/go",
"revision": "8ac6c4c6cb2c124ff95cdd0f97bc4624055edc8f", "revision": "e3cc4aa1f29786b725db87b5f55f15aeb8670555",
"revisionTime": "2017-10-02T18:55:11Z", "revisionTime": "2017-10-12T15:06:35Z",
"version": "v0.39.0", "version": "v0.44.0",
"versionExact": "v0.39.0" "versionExact": "v0.44.0"
}, },
{ {
"checksumSHA1": "dUHJbKas746n5fLzlwxHb6FOCxs=", "checksumSHA1": "dUHJbKas746n5fLzlwxHb6FOCxs=",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment