diff options
author | Alejandro Rodríguez <alejorro70@gmail.com> | 2017-09-11 23:33:12 +0300 |
---|---|---|
committer | Ahmad Sherif <me@ahmadsherif.com> | 2017-09-25 13:19:55 +0300 |
commit | 9917de7dd7c05ace29d60372e7b5bcba52bbfaf7 (patch) | |
tree | 1a7a475234fe6f0749de7869e1454d908cae6e43 | |
parent | d33b66b74c1edb8fc9bb7e01e0154218c99ff1b8 (diff) |
Implement RepositoryService.UserCreateBranch
-rw-r--r-- | CHANGELOG.md | 2 | ||||
-rw-r--r-- | internal/rubyserver/rubyserver.go | 6 | ||||
-rw-r--r-- | internal/service/operations/branches.go | 23 | ||||
-rw-r--r-- | internal/service/operations/branches_test.go | 228 | ||||
-rw-r--r-- | internal/service/operations/server.go | 6 | ||||
-rw-r--r-- | internal/testhelper/testhelper.go | 6 | ||||
-rw-r--r-- | ruby/Gemfile | 2 | ||||
-rw-r--r-- | ruby/Gemfile.lock | 6 | ||||
-rw-r--r-- | ruby/lib/gitaly_server.rb | 9 | ||||
-rw-r--r-- | ruby/lib/gitaly_server/operations_service.rb | 22 | ||||
-rw-r--r-- | ruby/lib/gitlab/git.rb | 7 | ||||
-rw-r--r-- | vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION | 2 | ||||
-rw-r--r-- | vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go | 2 | ||||
-rw-r--r-- | vendor/gitlab.com/gitlab-org/gitaly-proto/go/operations.pb.go | 134 | ||||
-rw-r--r-- | vendor/vendor.json | 10 |
15 files changed, 421 insertions, 44 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 516ef0a4d..e5a840b73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,8 @@ UNRELEASED https://gitlab.com/gitlab-org/gitaly/merge_requests/365 - Remove support for legacy services not ending in 'Service' https://gitlab.com/gitlab-org/gitaly/merge_requests/363 +- Implement RepositoryService.UserCreateBranch + https://gitlab.com/gitlab-org/gitaly/merge_requests/344 v0.40.0 - Use context cancellation instead of command.Close diff --git a/internal/rubyserver/rubyserver.go b/internal/rubyserver/rubyserver.go index 0470019b2..434add1c3 100644 --- a/internal/rubyserver/rubyserver.go +++ b/internal/rubyserver/rubyserver.go @@ -27,7 +27,8 @@ import ( ) const ( - repoPathHeader = "gitaly-repo-path" + repoPathHeader = "gitaly-repo-path" + glRepositoryHeader = "gitaly-gl-repository" ) var ( @@ -199,7 +200,8 @@ func SetHeaders(ctx context.Context, repo *pb.Repository) (context.Context, erro return nil, err } - newCtx := metadata.NewOutgoingContext(ctx, metadata.Pairs(repoPathHeader, repoPath)) + md := metadata.Pairs(repoPathHeader, repoPath, glRepositoryHeader, repo.GlRepository) + newCtx := metadata.NewOutgoingContext(ctx, md) return newCtx, nil } diff --git a/internal/service/operations/branches.go b/internal/service/operations/branches.go new file mode 100644 index 000000000..2a7345f39 --- /dev/null +++ b/internal/service/operations/branches.go @@ -0,0 +1,23 @@ +package operations + +import ( + "gitlab.com/gitlab-org/gitaly/internal/rubyserver" + + pb "gitlab.com/gitlab-org/gitaly-proto/go" + + "golang.org/x/net/context" +) + +func (s *server) UserCreateBranch(ctx context.Context, req *pb.UserCreateBranchRequest) (*pb.UserCreateBranchResponse, error) { + client, err := s.OperationServiceClient(ctx) + if err != nil { + return nil, err + } + + clientCtx, err := rubyserver.SetHeaders(ctx, req.GetRepository()) + if err != nil { + return nil, err + } + + return client.UserCreateBranch(clientCtx, req) +} diff --git a/internal/service/operations/branches_test.go b/internal/service/operations/branches_test.go new file mode 100644 index 000000000..80ce8045a --- /dev/null +++ b/internal/service/operations/branches_test.go @@ -0,0 +1,228 @@ +package operations + +import ( + "io/ioutil" + "os" + "os/exec" + "path" + "testing" + + "google.golang.org/grpc/codes" + + "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/gitaly/internal/git/log" + "gitlab.com/gitlab-org/gitaly/internal/testhelper" + "golang.org/x/net/context" + + pb "gitlab.com/gitlab-org/gitaly-proto/go" +) + +func TestSuccessfulUserCreateBranchRequest(t *testing.T) { + ctx, cancel := testhelper.Context() + defer cancel() + + server := runOperationServiceServer(t) + defer server.Stop() + + client, conn := newOperationClient(t) + defer conn.Close() + + startPoint := "c7fbe50c7c7419d9701eebe64b1fdacc3df5b9dd" + startPointCommit, err := log.GetCommit(ctx, testRepo, startPoint, "") + require.NoError(t, err) + user := &pb.User{ + Name: []byte("Alejandro Rodríguez"), + Email: []byte("alejandro@gitlab.com"), + GlId: "user-1", + } + + testCases := []struct { + desc string + branchName string + startPoint string + expectedBranch *pb.Branch + }{ + { + desc: "valid branch", + branchName: "new-branch", + startPoint: startPoint, + expectedBranch: &pb.Branch{ + Name: []byte("new-branch"), + TargetCommit: startPointCommit, + }, + }, + } + + for _, testCase := range testCases { + t.Run(testCase.desc, func(t *testing.T) { + branchName := testCase.branchName + request := &pb.UserCreateBranchRequest{ + Repository: testRepo, + BranchName: []byte(branchName), + StartPoint: []byte(testCase.startPoint), + User: user, + } + + ctx, cancel := testhelper.Context() + defer cancel() + + response, err := client.UserCreateBranch(ctx, request) + if testCase.expectedBranch != nil { + defer exec.Command("git", "-C", testRepoPath, "branch", "-D", branchName).Run() + } + + require.NoError(t, err) + require.Equal(t, testCase.expectedBranch, response.Branch) + require.Empty(t, response.PreReceiveError) + + branches := testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "branch") + require.Contains(t, string(branches), branchName) + }) + } +} + +func TestSuccessfulGitHooksForUserCreateBranchRequest(t *testing.T) { + server := runOperationServiceServer(t) + defer server.Stop() + + client, conn := newOperationClient(t) + defer conn.Close() + + branchName := "new-branch" + user := &pb.User{ + Name: []byte("Alejandro Rodríguez"), + Email: []byte("alejandro@gitlab.com"), + GlId: "user-1", + } + request := &pb.UserCreateBranchRequest{ + Repository: testRepo, + BranchName: []byte(branchName), + StartPoint: []byte("c7fbe50c7c7419d9701eebe64b1fdacc3df5b9dd"), + User: user, + } + + for _, hookName := range []string{"pre-receive", "update", "post-receive"} { + t.Run(hookName, func(t *testing.T) { + defer exec.Command("git", "-C", testRepoPath, "branch", "-D", branchName).Run() + + hookPath, hookOutputTempPath := writeEnvToHook(t, hookName) + defer os.Remove(hookPath) + + ctx, cancel := testhelper.Context() + defer cancel() + + response, err := client.UserCreateBranch(ctx, request) + require.NoError(t, err) + require.Empty(t, response.PreReceiveError) + + output := string(testhelper.MustReadFile(t, hookOutputTempPath)) + require.Contains(t, output, "GL_ID="+user.GlId) + }) + } +} + +func TestFailedUserCreateBranchDueToHooks(t *testing.T) { + server := runOperationServiceServer(t) + defer server.Stop() + + client, conn := newOperationClient(t) + defer conn.Close() + + user := &pb.User{ + Name: []byte("Alejandro Rodríguez"), + Email: []byte("alejandro@gitlab.com"), + GlId: "user-1", + } + request := &pb.UserCreateBranchRequest{ + Repository: testRepo, + BranchName: []byte("new-branch"), + StartPoint: []byte("c7fbe50c7c7419d9701eebe64b1fdacc3df5b9dd"), + User: user, + } + // Write a hook that will fail with the environment as the error message + // so we can check that string for our env variables. + hookContent := []byte("#!/bin/sh\nprintenv | paste -sd ' ' -\nexit 1") + + for _, hookName := range []string{"pre-receive", "update"} { + hookPath := path.Join(testRepoPath, "hooks", hookName) + ioutil.WriteFile(hookPath, hookContent, 0755) + defer os.Remove(hookPath) + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + response, err := client.UserCreateBranch(ctx, request) + require.Nil(t, err) + require.Contains(t, response.PreReceiveError, "GL_ID="+user.GlId) + require.Contains(t, response.PreReceiveError, "GL_REPOSITORY="+testRepo.GlRepository) + require.Contains(t, response.PreReceiveError, "GL_PROTOCOL=web") + require.Contains(t, response.PreReceiveError, "PWD="+testRepoPath) + } +} + +func TestFailedUserCreateBranchRequest(t *testing.T) { + server := runOperationServiceServer(t) + defer server.Stop() + + client, conn := newOperationClient(t) + defer conn.Close() + + user := &pb.User{ + Name: []byte("Alejandro Rodríguez"), + Email: []byte("alejandro@gitlab.com"), + } + testCases := []struct { + desc string + branchName string + startPoint string + user *pb.User + code codes.Code + }{ + { + desc: "empty start_point", + branchName: "shiny-new-branch", + startPoint: "", + user: user, + code: codes.InvalidArgument, + }, + { + desc: "empty user", + branchName: "shiny-new-branch", + startPoint: "master", + user: nil, + code: codes.InvalidArgument, + }, + { + desc: "non-existing starting point", + branchName: "new-branch", + startPoint: "i-dont-exist", + user: user, + code: codes.FailedPrecondition, + }, + + { + desc: "branch exists", + branchName: "master", + startPoint: "master", + user: user, + code: codes.FailedPrecondition, + }, + } + + for _, testCase := range testCases { + t.Run(testCase.desc, func(t *testing.T) { + request := &pb.UserCreateBranchRequest{ + Repository: testRepo, + BranchName: []byte(testCase.branchName), + StartPoint: []byte(testCase.startPoint), + User: testCase.user, + } + + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + _, err := client.UserCreateBranch(ctx, request) + testhelper.AssertGrpcError(t, err, testCase.code, "") + }) + } +} diff --git a/internal/service/operations/server.go b/internal/service/operations/server.go index 6b792f27a..a79dd82aa 100644 --- a/internal/service/operations/server.go +++ b/internal/service/operations/server.go @@ -2,10 +2,9 @@ package operations import ( "gitlab.com/gitlab-org/gitaly/internal/rubyserver" + "golang.org/x/net/context" pb "gitlab.com/gitlab-org/gitaly-proto/go" - - "golang.org/x/net/context" ) type server struct { @@ -17,6 +16,7 @@ func NewServer(rs *rubyserver.Server) pb.OperationServiceServer { return &server{rs} } -func (s *server) UserCreateBranch(ctx context.Context, req *pb.UserCreateBranchRequest) (*pb.UserCreateBranchResponse, error) { +// UserDeleteBranch is a stub +func (s *server) UserDeleteBranch(ctx context.Context, req *pb.UserDeleteBranchRequest) (*pb.UserDeleteBranchResponse, error) { return nil, nil } diff --git a/internal/testhelper/testhelper.go b/internal/testhelper/testhelper.go index 975c105e7..f91520c7f 100644 --- a/internal/testhelper/testhelper.go +++ b/internal/testhelper/testhelper.go @@ -82,7 +82,11 @@ func testRepoValid(repo *pb.Repository) bool { // via the `Repository` returned from this function. func TestRepository() *pb.Repository { configureTestStorage() - repo := &pb.Repository{StorageName: "default", RelativePath: TestRelativePath} + repo := &pb.Repository{ + StorageName: "default", + RelativePath: TestRelativePath, + GlRepository: "project-1", + } if !testRepoValid(repo) { log.Fatalf("Test repo not found, did you run `make prepare-tests`?") diff --git a/ruby/Gemfile b/ruby/Gemfile index 1778b55a0..8435159e7 100644 --- a/ruby/Gemfile +++ b/ruby/Gemfile @@ -1,5 +1,5 @@ source 'https://rubygems.org' gem 'github-linguist', '~> 4.7.0', require: 'linguist' -gem 'gitaly-proto', '~> 0.35.0', require: 'gitaly' +gem 'gitaly-proto', '~> 0.36.0', require: 'gitaly' gem 'activesupport' diff --git a/ruby/Gemfile.lock b/ruby/Gemfile.lock index ab32fd4e9..9b8acc9de 100644 --- a/ruby/Gemfile.lock +++ b/ruby/Gemfile.lock @@ -13,7 +13,7 @@ GEM escape_utils (1.1.1) faraday (0.12.2) multipart-post (>= 1.2, < 3) - gitaly-proto (0.35.0) + gitaly-proto (0.36.0) google-protobuf (~> 3.1) grpc (~> 1.0) github-linguist (4.7.6) @@ -63,8 +63,8 @@ PLATFORMS DEPENDENCIES activesupport - gitaly-proto (~> 0.35.0) + gitaly-proto (~> 0.36.0) github-linguist (~> 4.7.0) BUNDLED WITH - 1.15.3 + 1.15.4 diff --git a/ruby/lib/gitaly_server.rb b/ruby/lib/gitaly_server.rb index 52e744bfd..9bdc73519 100644 --- a/ruby/lib/gitaly_server.rb +++ b/ruby/lib/gitaly_server.rb @@ -11,9 +11,14 @@ require_relative 'gitaly_server/repository_service.rb' module GitalyServer REPO_PATH_HEADER = 'gitaly-repo-path'.freeze + GL_REPOSITORY_HEADER = 'gitaly-gl-repository'.freeze - def self.repo_path(_call) - _call.metadata.fetch(REPO_PATH_HEADER) + def self.repo_path(call) + call.metadata.fetch(REPO_PATH_HEADER) + end + + def self.gl_repository(call) + call.metadata.fetch(GL_REPOSITORY_HEADER) end def self.register_handlers(server) diff --git a/ruby/lib/gitaly_server/operations_service.rb b/ruby/lib/gitaly_server/operations_service.rb index 4f997faf0..948f57fba 100644 --- a/ruby/lib/gitaly_server/operations_service.rb +++ b/ruby/lib/gitaly_server/operations_service.rb @@ -18,5 +18,27 @@ module GitalyServer rescue Gitlab::Git::HooksService::PreReceiveError => e raise GRPC::FailedPrecondition.new(e.to_s) end + + def user_create_branch(request, call) + repo = Gitlab::Git::Repository.from_call(call) + target = request.start_point + raise GRPC::InvalidArgument.new('empty start_point') if target.empty? + gitaly_user = request.user + raise GRPC::InvalidArgument.new('empty user') unless gitaly_user + + branch_name = request.branch_name + user = Gitlab::Git::User.from_gitaly(gitaly_user) + created_branch = repo.add_branch(branch_name, user: user, target: target) + return Gitaly::UserCreateBranchResponse.new unless created_branch + + rugged_commit = created_branch.dereferenced_target.rugged_commit + commit = gitaly_commit_from_rugged(rugged_commit) + branch = Gitaly::Branch.new(name: branch_name, target_commit: commit) + Gitaly::UserCreateBranchResponse.new(branch: branch) + rescue Gitlab::Git::Repository::InvalidRef, Gitlab::Git::CommitError => ex + raise GRPC::FailedPrecondition.new(ex.message) + rescue Gitlab::Git::HooksService::PreReceiveError => ex + return Gitaly::UserCreateBranchResponse.new(pre_receive_error: ex.message) + end end end diff --git a/ruby/lib/gitlab/git.rb b/ruby/lib/gitlab/git.rb index fca45d316..8ade7f9a5 100644 --- a/ruby/lib/gitlab/git.rb +++ b/ruby/lib/gitlab/git.rb @@ -65,12 +65,13 @@ end module Gitlab module Git class Repository - def self.from_call(_call) - new(GitalyServer.repo_path(_call)) + def self.from_call(call) + new(GitalyServer.repo_path(call), GitalyServer.gl_repository(call)) end - def initialize(path) + def initialize(path, gl_repository) @path = path + @gl_repository = gl_repository @rugged = Rugged::Repository.new(path) @attributes = Gitlab::Git::Attributes.new(path) end diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION index 7b52f5e51..93d4c1ef0 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION @@ -1 +1 @@ -0.35.0 +0.36.0 diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go index 12054df83..410c97734 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/blob.pb.go @@ -69,6 +69,8 @@ It has these top-level messages: PostReceiveResponse UserCreateBranchRequest UserCreateBranchResponse + UserDeleteBranchRequest + UserDeleteBranchResponse UserDeleteTagRequest UserDeleteTagResponse FindDefaultBranchNameRequest diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/operations.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/operations.pb.go index bf9ed1d32..db75dbccc 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/operations.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/operations.pb.go @@ -59,6 +59,9 @@ func (m *UserCreateBranchRequest) GetStartPoint() []byte { type UserCreateBranchResponse struct { Branch *Branch `protobuf:"bytes,1,opt,name=branch" json:"branch,omitempty"` + // Error returned by the pre-receive hook. If no error was thrown, + // it's the empty string ("") + PreReceiveError string `protobuf:"bytes,2,opt,name=pre_receive_error,json=preReceiveError" json:"pre_receive_error,omitempty"` } func (m *UserCreateBranchResponse) Reset() { *m = UserCreateBranchResponse{} } @@ -73,6 +76,53 @@ func (m *UserCreateBranchResponse) GetBranch() *Branch { return nil } +func (m *UserCreateBranchResponse) GetPreReceiveError() string { + if m != nil { + return m.PreReceiveError + } + return "" +} + +type UserDeleteBranchRequest struct { + Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"` + BranchName []byte `protobuf:"bytes,2,opt,name=branch_name,json=branchName,proto3" json:"branch_name,omitempty"` + User *User `protobuf:"bytes,3,opt,name=user" json:"user,omitempty"` +} + +func (m *UserDeleteBranchRequest) Reset() { *m = UserDeleteBranchRequest{} } +func (m *UserDeleteBranchRequest) String() string { return proto.CompactTextString(m) } +func (*UserDeleteBranchRequest) ProtoMessage() {} +func (*UserDeleteBranchRequest) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{2} } + +func (m *UserDeleteBranchRequest) GetRepository() *Repository { + if m != nil { + return m.Repository + } + return nil +} + +func (m *UserDeleteBranchRequest) GetBranchName() []byte { + if m != nil { + return m.BranchName + } + return nil +} + +func (m *UserDeleteBranchRequest) GetUser() *User { + if m != nil { + return m.User + } + return nil +} + +type UserDeleteBranchResponse struct { +} + +func (m *UserDeleteBranchResponse) Reset() { *m = UserDeleteBranchResponse{} } +func (m *UserDeleteBranchResponse) String() string { return proto.CompactTextString(m) } +func (*UserDeleteBranchResponse) ProtoMessage() {} +func (*UserDeleteBranchResponse) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{3} } + type UserDeleteTagRequest struct { Repository *Repository `protobuf:"bytes,1,opt,name=repository" json:"repository,omitempty"` TagName []byte `protobuf:"bytes,2,opt,name=tag_name,json=tagName,proto3" json:"tag_name,omitempty"` @@ -82,7 +132,7 @@ type UserDeleteTagRequest struct { func (m *UserDeleteTagRequest) Reset() { *m = UserDeleteTagRequest{} } func (m *UserDeleteTagRequest) String() string { return proto.CompactTextString(m) } func (*UserDeleteTagRequest) ProtoMessage() {} -func (*UserDeleteTagRequest) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{2} } +func (*UserDeleteTagRequest) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{4} } func (m *UserDeleteTagRequest) GetRepository() *Repository { if m != nil { @@ -111,11 +161,13 @@ type UserDeleteTagResponse struct { func (m *UserDeleteTagResponse) Reset() { *m = UserDeleteTagResponse{} } func (m *UserDeleteTagResponse) String() string { return proto.CompactTextString(m) } func (*UserDeleteTagResponse) ProtoMessage() {} -func (*UserDeleteTagResponse) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{3} } +func (*UserDeleteTagResponse) Descriptor() ([]byte, []int) { return fileDescriptor6, []int{5} } func init() { proto.RegisterType((*UserCreateBranchRequest)(nil), "gitaly.UserCreateBranchRequest") proto.RegisterType((*UserCreateBranchResponse)(nil), "gitaly.UserCreateBranchResponse") + proto.RegisterType((*UserDeleteBranchRequest)(nil), "gitaly.UserDeleteBranchRequest") + proto.RegisterType((*UserDeleteBranchResponse)(nil), "gitaly.UserDeleteBranchResponse") proto.RegisterType((*UserDeleteTagRequest)(nil), "gitaly.UserDeleteTagRequest") proto.RegisterType((*UserDeleteTagResponse)(nil), "gitaly.UserDeleteTagResponse") } @@ -132,6 +184,7 @@ const _ = grpc.SupportPackageIsVersion4 type OperationServiceClient interface { UserCreateBranch(ctx context.Context, in *UserCreateBranchRequest, opts ...grpc.CallOption) (*UserCreateBranchResponse, error) + UserDeleteBranch(ctx context.Context, in *UserDeleteBranchRequest, opts ...grpc.CallOption) (*UserDeleteBranchResponse, error) UserDeleteTag(ctx context.Context, in *UserDeleteTagRequest, opts ...grpc.CallOption) (*UserDeleteTagResponse, error) } @@ -152,6 +205,15 @@ func (c *operationServiceClient) UserCreateBranch(ctx context.Context, in *UserC return out, nil } +func (c *operationServiceClient) UserDeleteBranch(ctx context.Context, in *UserDeleteBranchRequest, opts ...grpc.CallOption) (*UserDeleteBranchResponse, error) { + out := new(UserDeleteBranchResponse) + err := grpc.Invoke(ctx, "/gitaly.OperationService/UserDeleteBranch", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *operationServiceClient) UserDeleteTag(ctx context.Context, in *UserDeleteTagRequest, opts ...grpc.CallOption) (*UserDeleteTagResponse, error) { out := new(UserDeleteTagResponse) err := grpc.Invoke(ctx, "/gitaly.OperationService/UserDeleteTag", in, out, c.cc, opts...) @@ -165,6 +227,7 @@ func (c *operationServiceClient) UserDeleteTag(ctx context.Context, in *UserDele type OperationServiceServer interface { UserCreateBranch(context.Context, *UserCreateBranchRequest) (*UserCreateBranchResponse, error) + UserDeleteBranch(context.Context, *UserDeleteBranchRequest) (*UserDeleteBranchResponse, error) UserDeleteTag(context.Context, *UserDeleteTagRequest) (*UserDeleteTagResponse, error) } @@ -190,6 +253,24 @@ func _OperationService_UserCreateBranch_Handler(srv interface{}, ctx context.Con return interceptor(ctx, in, info, handler) } +func _OperationService_UserDeleteBranch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserDeleteBranchRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OperationServiceServer).UserDeleteBranch(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gitaly.OperationService/UserDeleteBranch", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OperationServiceServer).UserDeleteBranch(ctx, req.(*UserDeleteBranchRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _OperationService_UserDeleteTag_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UserDeleteTagRequest) if err := dec(in); err != nil { @@ -217,6 +298,10 @@ var _OperationService_serviceDesc = grpc.ServiceDesc{ Handler: _OperationService_UserCreateBranch_Handler, }, { + MethodName: "UserDeleteBranch", + Handler: _OperationService_UserDeleteBranch_Handler, + }, + { MethodName: "UserDeleteTag", Handler: _OperationService_UserDeleteTag_Handler, }, @@ -228,25 +313,28 @@ var _OperationService_serviceDesc = grpc.ServiceDesc{ func init() { proto.RegisterFile("operations.proto", fileDescriptor6) } var fileDescriptor6 = []byte{ - // 308 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x92, 0xc1, 0x4a, 0xfb, 0x40, - 0x10, 0xc6, 0xff, 0xfb, 0xb7, 0x54, 0x99, 0x46, 0x09, 0x8b, 0xd2, 0x18, 0x94, 0x86, 0x1c, 0xa4, - 0xa7, 0x1c, 0xe2, 0x1b, 0x54, 0xcf, 0x55, 0xa2, 0xe2, 0xb1, 0x6c, 0xeb, 0x90, 0x06, 0xda, 0x6c, - 0x9c, 0x9d, 0x0a, 0x7d, 0x02, 0x9f, 0xc7, 0xb3, 0x2f, 0x27, 0xc9, 0x26, 0x12, 0xa3, 0x05, 0xc1, - 0xeb, 0xf7, 0x4d, 0x7e, 0xf3, 0x7d, 0x99, 0x05, 0x57, 0x17, 0x48, 0x8a, 0x33, 0x9d, 0x9b, 0xa8, - 0x20, 0xcd, 0x5a, 0xf6, 0xd3, 0x8c, 0xd5, 0x6a, 0xeb, 0x3b, 0x66, 0xa9, 0x08, 0x9f, 0xac, 0x1a, - 0xbe, 0x09, 0x18, 0x3e, 0x18, 0xa4, 0x2b, 0x42, 0xc5, 0x38, 0x21, 0x95, 0x2f, 0x96, 0x09, 0x3e, - 0x6f, 0xd0, 0xb0, 0x8c, 0x01, 0x08, 0x0b, 0x6d, 0x32, 0xd6, 0xb4, 0xf5, 0x44, 0x20, 0xc6, 0x83, - 0x58, 0x46, 0x16, 0x13, 0x25, 0x9f, 0x4e, 0xd2, 0x9a, 0x92, 0x23, 0x18, 0xcc, 0x2b, 0xc8, 0x2c, - 0x57, 0x6b, 0xf4, 0xfe, 0x07, 0x62, 0xec, 0x24, 0x60, 0xa5, 0xa9, 0x5a, 0xa3, 0x0c, 0xa0, 0xb7, - 0x31, 0x48, 0xde, 0x5e, 0x85, 0x73, 0x1a, 0x5c, 0x99, 0x21, 0xa9, 0x9c, 0x12, 0x61, 0x58, 0x11, - 0xcf, 0x0a, 0x9d, 0xe5, 0xec, 0xf5, 0x2c, 0xa2, 0x92, 0x6e, 0x4b, 0x25, 0x9c, 0x80, 0xf7, 0x3d, - 0xb2, 0x29, 0x74, 0x6e, 0x50, 0x5e, 0x40, 0xdf, 0x2e, 0xab, 0xf3, 0x1e, 0x35, 0x0b, 0xea, 0xb9, - 0xda, 0x0d, 0x5f, 0x05, 0x1c, 0x97, 0x90, 0x6b, 0x5c, 0x21, 0xe3, 0xbd, 0x4a, 0xff, 0x52, 0xfa, - 0x14, 0x0e, 0x58, 0xa5, 0xed, 0xc6, 0xfb, 0xac, 0xd2, 0xdf, 0xd5, 0x0d, 0x87, 0x70, 0xd2, 0x09, - 0x62, 0xab, 0xc4, 0xef, 0x02, 0xdc, 0x9b, 0xe6, 0x8a, 0x77, 0x48, 0x2f, 0xd9, 0x02, 0xe5, 0x23, - 0xb8, 0xdd, 0xee, 0x72, 0xd4, 0xa6, 0xfe, 0x70, 0x48, 0x3f, 0xd8, 0x3d, 0x60, 0x77, 0x85, 0xff, - 0xe4, 0x14, 0x0e, 0xbf, 0xc4, 0x90, 0x67, 0xed, 0x8f, 0xba, 0xbf, 0xc9, 0x3f, 0xdf, 0xe1, 0x36, - 0xbc, 0x79, 0xbf, 0x7a, 0x5f, 0x97, 0x1f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xc3, 0x75, 0xe5, 0x7b, - 0x89, 0x02, 0x00, 0x00, + // 364 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x93, 0xcd, 0x4e, 0xf2, 0x40, + 0x14, 0x86, 0x29, 0x1f, 0xe1, 0xd3, 0x03, 0x2a, 0x4e, 0x34, 0xd4, 0x46, 0x43, 0xd3, 0x85, 0x21, + 0x2e, 0x58, 0xe0, 0x1d, 0xf8, 0xb3, 0x45, 0x53, 0x35, 0x2e, 0x9b, 0x01, 0x4f, 0x4a, 0x13, 0xe8, + 0x8c, 0x67, 0x06, 0x12, 0xae, 0xc0, 0xad, 0x0b, 0x6f, 0xc4, 0x3b, 0x34, 0xed, 0xb4, 0xd2, 0xf2, + 0x93, 0x98, 0xb8, 0x71, 0xfb, 0x9e, 0xc3, 0x33, 0x0f, 0xef, 0x4c, 0xa1, 0x25, 0x24, 0x12, 0xd7, + 0x91, 0x88, 0x55, 0x4f, 0x92, 0xd0, 0x82, 0xd5, 0xc3, 0x48, 0xf3, 0xc9, 0xc2, 0x69, 0xaa, 0x31, + 0x27, 0x7c, 0x31, 0xa9, 0xf7, 0x69, 0x41, 0xfb, 0x49, 0x21, 0x5d, 0x13, 0x72, 0x8d, 0x57, 0xc4, + 0xe3, 0xd1, 0xd8, 0xc7, 0xd7, 0x19, 0x2a, 0xcd, 0xfa, 0x00, 0x84, 0x52, 0xa8, 0x48, 0x0b, 0x5a, + 0xd8, 0x96, 0x6b, 0x75, 0x1b, 0x7d, 0xd6, 0x33, 0x98, 0x9e, 0xff, 0x3d, 0xf1, 0x0b, 0x5b, 0xac, + 0x03, 0x8d, 0x61, 0x0a, 0x09, 0x62, 0x3e, 0x45, 0xbb, 0xea, 0x5a, 0xdd, 0xa6, 0x0f, 0x26, 0x1a, + 0xf0, 0x29, 0x32, 0x17, 0x6a, 0x33, 0x85, 0x64, 0xff, 0x4b, 0x71, 0xcd, 0x1c, 0x97, 0x38, 0xf8, + 0xe9, 0x24, 0x41, 0x28, 0xcd, 0x49, 0x07, 0x52, 0x44, 0xb1, 0xb6, 0x6b, 0x06, 0x91, 0x46, 0xf7, + 0x49, 0xe2, 0xc5, 0x60, 0xaf, 0x2b, 0x2b, 0x29, 0x62, 0x85, 0xec, 0x1c, 0xea, 0xe6, 0xb0, 0xcc, + 0x77, 0x3f, 0x3f, 0x20, 0xdb, 0xcb, 0xa6, 0xec, 0x02, 0x0e, 0x25, 0x61, 0x40, 0x38, 0xc2, 0x68, + 0x8e, 0x01, 0x12, 0x09, 0x4a, 0x6d, 0x77, 0xfd, 0x03, 0x49, 0xe8, 0x9b, 0xfc, 0x36, 0x89, 0xbd, + 0xf7, 0xac, 0xa3, 0x1b, 0x9c, 0xe0, 0xdf, 0xe8, 0xc8, 0x73, 0x4c, 0x05, 0x65, 0x23, 0x53, 0x81, + 0xf7, 0x66, 0xc1, 0xd1, 0x72, 0xf8, 0xc8, 0xc3, 0xdf, 0xb8, 0x9e, 0xc0, 0x8e, 0xe6, 0x61, 0x51, + 0xf4, 0xbf, 0xe6, 0xe1, 0x0f, 0x2d, 0xdb, 0x70, 0xbc, 0x22, 0x62, 0x14, 0xfb, 0x1f, 0x55, 0x68, + 0xdd, 0xe5, 0x0f, 0xf4, 0x01, 0x69, 0x1e, 0x8d, 0x90, 0x3d, 0x43, 0x6b, 0xf5, 0x5a, 0x59, 0xa7, + 0x48, 0xdd, 0xf0, 0x46, 0x1d, 0x77, 0xfb, 0x42, 0x56, 0x47, 0x25, 0x07, 0x17, 0xcb, 0x2a, 0x83, + 0x37, 0x5c, 0x6c, 0x19, 0xbc, 0xb1, 0xe7, 0x0a, 0x1b, 0xc0, 0x5e, 0xe9, 0xff, 0xb1, 0xd3, 0xf5, + 0x1f, 0x2d, 0xfb, 0x77, 0xce, 0xb6, 0x4c, 0x73, 0xde, 0xb0, 0x9e, 0x7e, 0x93, 0x97, 0x5f, 0x01, + 0x00, 0x00, 0xff, 0xff, 0xd8, 0xfd, 0xb2, 0x1c, 0xbd, 0x03, 0x00, 0x00, } diff --git a/vendor/vendor.json b/vendor/vendor.json index 5b87630f2..9a89c0cfe 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -201,12 +201,12 @@ "revisionTime": "2017-01-30T11:31:45Z" }, { - "checksumSHA1": "A2jWY7L3EazZt0xdKFKMDOGXCdk=", + "checksumSHA1": "LvIL7+npdye+NniogqeMWLLdxeg=", "path": "gitlab.com/gitlab-org/gitaly-proto/go", - "revision": "b61fee8cd76e282d15a3c719f7f71a4f71ef0d6c", - "revisionTime": "2017-09-20T19:16:33Z", - "version": "v0.35.0", - "versionExact": "v0.35.0" + "revision": "3264145c6decc6763b3afbd5e92c59228397ea8f", + "revisionTime": "2017-09-22T16:10:08Z", + "version": "v0.36.0", + "versionExact": "v0.36.0" }, { "checksumSHA1": "nqWNlnMmVpt628zzvyo6Yv2CX5Q=", |