diff options
-rw-r--r-- | CHANGELOG.md | 2 | ||||
-rw-r--r-- | internal/service/operations/tags_test.go | 7 | ||||
-rw-r--r-- | ruby/lib/gitaly_server/operations_service.rb | 2 |
3 files changed, 7 insertions, 4 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index ce76245be..d3ff52dab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ UNRELEASED - Implement UserCreateTag RPC https://gitlab.com/gitlab-org/gitaly/merge_requests/374 +- Return pre-receive errors in UserDeleteTag response + https://gitlab.com/gitlab-org/gitaly/merge_requests/378 v0.41.0 diff --git a/internal/service/operations/tags_test.go b/internal/service/operations/tags_test.go index 075d03aea..a59180af4 100644 --- a/internal/service/operations/tags_test.go +++ b/internal/service/operations/tags_test.go @@ -291,7 +291,7 @@ func TestFailedUserDeleteTagDueToHooks(t *testing.T) { User: user, } - hookContent := []byte("#!/bin/false") + hookContent := []byte("#!/bin/sh\necho GL_ID=$GL_ID\nexit 1") for _, hookName := range []string{"pre-receive", "update"} { t.Run(hookName, func(t *testing.T) { @@ -302,8 +302,9 @@ func TestFailedUserDeleteTagDueToHooks(t *testing.T) { ctx, cancel := testhelper.Context() defer cancel() - _, err := client.UserDeleteTag(ctx, request) - testhelper.AssertGrpcError(t, err, codes.FailedPrecondition, "") + response, err := client.UserDeleteTag(ctx, request) + require.Nil(t, err) + require.Contains(t, response.PreReceiveError, "GL_ID="+user.GlId) tags := testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "tag") require.Contains(t, string(tags), tagNameInput, "tag name does not exist in tags list") diff --git a/ruby/lib/gitaly_server/operations_service.rb b/ruby/lib/gitaly_server/operations_service.rb index 20918dbfd..1e9522f26 100644 --- a/ruby/lib/gitaly_server/operations_service.rb +++ b/ruby/lib/gitaly_server/operations_service.rb @@ -50,7 +50,7 @@ module GitalyServer Gitaly::UserDeleteTagResponse.new rescue Gitlab::Git::HooksService::PreReceiveError => e - raise GRPC::FailedPrecondition.new(e.to_s) + Gitaly::UserDeleteTagResponse.new(pre_receive_error: e.message) end def user_create_branch(request, call) |