summaryrefslogtreecommitdiff
path: root/app/services/create_tag_service.rb
diff options
context:
space:
mode:
authorSean Edge <asedge@gmail.com>2014-05-21 21:46:01 -0400
committerSean Edge <asedge@gmail.com>2014-05-23 11:02:47 -0400
commit1e6766f9edb2a9bda18e89acef64ee03e8d3b2e4 (patch)
treef99b63ca4310cddb7a1c566459fe9a0c8b4e9e7a /app/services/create_tag_service.rb
parent3e1853c5a0d89147a6a44a31a302f93e96c2ed92 (diff)
downloadgitlab-ce-1e6766f9edb2a9bda18e89acef64ee03e8d3b2e4.tar.gz
Add CreateTagService. Use new service to allow tag creation through API.
Diffstat (limited to 'app/services/create_tag_service.rb')
-rw-r--r--app/services/create_tag_service.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/app/services/create_tag_service.rb b/app/services/create_tag_service.rb
new file mode 100644
index 00000000000..97766677405
--- /dev/null
+++ b/app/services/create_tag_service.rb
@@ -0,0 +1,13 @@
+class CreateTagService
+ def execute(project, tag_name, ref, current_user)
+ repository = project.repository
+ repository.add_tag(tag_name, ref)
+ new_tag = repository.find_tag(tag_name)
+
+ if new_tag
+ Event.create_ref_event(project, current_user, new_tag, 'add', 'refs/tags')
+ end
+
+ new_tag
+ end
+end