summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2016-04-15 12:15:52 +0200
committerRémy Coutable <remy@rymai.me>2016-05-04 17:19:13 +0200
commit44f89eafc08a7967544429a3f930354a5f9bbbaf (patch)
tree7010adf8f188edcb8afd281a99970563b13d2980 /app/models
parent72e4bd5fc40c3b61792bf5f8897ab881775c7146 (diff)
downloadgitlab-ce-44f89eafc08a7967544429a3f930354a5f9bbbaf.tar.gz
Use Rugged's TagCollection#create instead of gitlab-shell's Repository#add_tag for better performance
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'app/models')
-rw-r--r--app/models/repository.rb11
1 files changed, 9 insertions, 2 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb
index b4319297e43..c4e38980a83 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -146,10 +146,17 @@ class Repository
find_branch(branch_name)
end
- def add_tag(tag_name, ref, message = nil)
+ def add_tag(user, tag_name, ref, message = nil)
before_push_tag
- gitlab_shell.add_tag(path_with_namespace, tag_name, ref, message)
+ options = { message: message, tagger: user_to_committer(user) } if message
+
+ tag = rugged.tags.create(tag_name, ref, options)
+ if tag.annotated?
+ Gitlab::Git::Tag.new(tag_name, ref, tag.annotation.message)
+ else
+ Gitlab::Git::Tag.new(tag_name, ref)
+ end
end
def rm_branch(user, branch_name)