summaryrefslogtreecommitdiff
path: root/app/models/repository.rb
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2016-04-25 16:31:45 +0200
committerRémy Coutable <remy@rymai.me>2016-05-04 17:19:13 +0200
commit209f2f1e6fd861dd7bb6a73389400b4bb266d26d (patch)
tree6b945d01503fd1b52a7d8b73fe162f69144d257f /app/models/repository.rb
parent44f89eafc08a7967544429a3f930354a5f9bbbaf (diff)
downloadgitlab-ce-209f2f1e6fd861dd7bb6a73389400b4bb266d26d.tar.gz
Use a similar approach to branch creation for tag creationuse-rugged-to-create-tag
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'app/models/repository.rb')
-rw-r--r--app/models/repository.rb17
1 files changed, 10 insertions, 7 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb
index c4e38980a83..d5d70f41fd3 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -146,17 +146,20 @@ class Repository
find_branch(branch_name)
end
- def add_tag(user, tag_name, ref, message = nil)
- before_push_tag
+ def add_tag(user, tag_name, target, message = nil)
+ oldrev = Gitlab::Git::BLANK_SHA
+ ref = Gitlab::Git::TAG_REF_PREFIX + tag_name
+ target = commit(target).try(:id)
+
+ return false unless target
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)
+ GitHooksService.new.execute(user, path_to_repo, oldrev, target, ref) do
+ rugged.tags.create(tag_name, target, options)
end
+
+ find_tag(tag_name)
end
def rm_branch(user, branch_name)