Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlejandro Rodríguez <alejorro70@gmail.com>2018-07-21 04:47:09 +0300
committerAlejandro Rodríguez <alejorro70@gmail.com>2018-07-21 04:47:09 +0300
commitf1901b53f724ea9b505537b69826f80d5059fc5c (patch)
tree47094c50308e02ac33355f2bb8f179f9ad59a431
parent51350d20b17c1045dbd4c749b018c481f7662d3c (diff)
Handle non-existing tags on UserDeleteTag
-rw-r--r--changelogs/unreleased/1267-userdeletetag-nomethoderror-undefined-method-gsub-for-gitlab-git-commiterror.yml5
-rw-r--r--internal/service/operations/tags_test.go2
-rw-r--r--ruby/lib/gitaly_server/operations_service.rb4
-rw-r--r--ruby/lib/gitlab/git/repository.rb6
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)