diff options
author | Alejandro Rodríguez <alejorro70@gmail.com> | 2018-07-21 04:47:09 +0300 |
---|---|---|
committer | Alejandro Rodríguez <alejorro70@gmail.com> | 2018-07-21 04:47:09 +0300 |
commit | f1901b53f724ea9b505537b69826f80d5059fc5c (patch) | |
tree | 47094c50308e02ac33355f2bb8f179f9ad59a431 | |
parent | 51350d20b17c1045dbd4c749b018c481f7662d3c (diff) |
Handle non-existing tags on UserDeleteTag
4 files changed, 13 insertions, 4 deletions
diff --git a/changelogs/unreleased/1267-userdeletetag-nomethoderror-undefined-method-gsub-for-gitlab-git-commiterror.yml b/changelogs/unreleased/1267-userdeletetag-nomethoderror-undefined-method-gsub-for-gitlab-git-commiterror.yml new file mode 100644 index 000000000..319eb631f --- /dev/null +++ b/changelogs/unreleased/1267-userdeletetag-nomethoderror-undefined-method-gsub-for-gitlab-git-commiterror.yml @@ -0,0 +1,5 @@ +--- +title: Handle non-existing tags on UserDeleteTag +merge_request: 827 +author: +type: fixed diff --git a/internal/service/operations/tags_test.go b/internal/service/operations/tags_test.go index c716abf85..0b033826c 100644 --- a/internal/service/operations/tags_test.go +++ b/internal/service/operations/tags_test.go @@ -275,7 +275,7 @@ func TestFailedUserDeleteTagRequestDueToValidation(t *testing.T) { User: user, TagName: []byte("i-do-not-exist"), }, - code: codes.Unknown, + code: codes.FailedPrecondition, }, } diff --git a/ruby/lib/gitaly_server/operations_service.rb b/ruby/lib/gitaly_server/operations_service.rb index 362e50d65..e51595d63 100644 --- a/ruby/lib/gitaly_server/operations_service.rb +++ b/ruby/lib/gitaly_server/operations_service.rb @@ -47,8 +47,8 @@ module GitalyServer Gitaly::UserDeleteTagResponse.new rescue Gitlab::Git::PreReceiveError => e Gitaly::UserDeleteTagResponse.new(pre_receive_error: set_utf8!(e.message)) - rescue Gitlab::Git::CommitError => e - raise GRPC::FailedPrecondition.new(e) + rescue Gitlab::Git::Repository::InvalidRef, Gitlab::Git::CommitError => e + raise GRPC::FailedPrecondition.new(e.message) end end end diff --git a/ruby/lib/gitlab/git/repository.rb b/ruby/lib/gitlab/git/repository.rb index c7f5f7512..7c0aabc6f 100644 --- a/ruby/lib/gitlab/git/repository.rb +++ b/ruby/lib/gitlab/git/repository.rb @@ -259,7 +259,11 @@ module Gitlab end def rm_tag(tag_name, user:) - Gitlab::Git::OperationService.new(user, self).rm_tag(find_tag(tag_name)) + tag = find_tag(tag_name) + + raise InvalidRef.new("tag not found: #{tag_name}") unless tag + + Gitlab::Git::OperationService.new(user, self).rm_tag(tag) end def merge(user, source_sha, target_branch, message, &block) |