diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-05-29 15:37:42 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2014-05-29 15:37:42 +0300 |
commit | 6fdd9008272f268b05aa498a79dc200da52f7bbc (patch) | |
tree | 1283fe1d7b648f945e5ca97be2dffbbc911fe922 /app | |
parent | ec837932d0296e06ec3d9ca6cf434a62439e39da (diff) | |
parent | 28de31f5200d908551d8372fed7511df80e284fd (diff) | |
download | gitlab-ce-6fdd9008272f268b05aa498a79dc200da52f7bbc.tar.gz |
Merge pull request #7014 from asedge/api_create_tag
Add CreateTagService. Use new service to allow tag creation through API.
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/projects/tags_controller.rb | 7 | ||||
-rw-r--r-- | app/services/create_tag_service.rb | 13 |
2 files changed, 15 insertions, 5 deletions
diff --git a/app/controllers/projects/tags_controller.rb b/app/controllers/projects/tags_controller.rb index 0b99165bf62..e03a9f4d66d 100644 --- a/app/controllers/projects/tags_controller.rb +++ b/app/controllers/projects/tags_controller.rb @@ -13,11 +13,8 @@ class Projects::TagsController < Projects::ApplicationController end def create - @repository.add_tag(params[:tag_name], params[:ref]) - - if new_tag = @repository.find_tag(params[:tag_name]) - Event.create_ref_event(@project, current_user, new_tag, 'add', 'refs/tags') - end + @tag = CreateTagService.new.execute(@project, params[:tag_name], + params[:ref], current_user) redirect_to project_tags_path(@project) end 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 |