diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/api/repositories.rb | 5 | ||||
-rw-r--r-- | lib/gitlab/backend/shell.rb | 9 |
2 files changed, 11 insertions, 3 deletions
diff --git a/lib/api/repositories.rb b/lib/api/repositories.rb index a3773d2c593..ce89177ef65 100644 --- a/lib/api/repositories.rb +++ b/lib/api/repositories.rb @@ -32,12 +32,15 @@ module API # id (required) - The ID of a project # tag_name (required) - The name of the tag # ref (required) - Create tag from commit sha or branch + # message (optional) - Specifying a message creates an annotated tag. # Example Request: # POST /projects/:id/repository/tags post ':id/repository/tags' do authorize_push_project + message = params[:message] || nil result = CreateTagService.new.execute(user_project, params[:tag_name], - params[:ref], current_user) + params[:ref], message, + current_user) if result[:status] == :success present result[:tag], with: Entities::RepoObject, diff --git a/lib/gitlab/backend/shell.rb b/lib/gitlab/backend/shell.rb index 53bff3037e5..907373ab991 100644 --- a/lib/gitlab/backend/shell.rb +++ b/lib/gitlab/backend/shell.rb @@ -107,12 +107,17 @@ module Gitlab # path - project path with namespace # tag_name - new tag name # ref - HEAD for new tag + # message - optional message for tag (annotated tag) # # Ex. # add_tag("gitlab/gitlab-ci", "v4.0", "master") + # add_tag("gitlab/gitlab-ci", "v4.0", "master", "message") # - def add_tag(path, tag_name, ref) - system "#{gitlab_shell_path}/bin/gitlab-projects", "create-tag", "#{path}.git", tag_name, ref + def add_tag(path, tag_name, ref, message = nil) + cmd = %W(#{gitlab_shell_path}/bin/gitlab-projects create-tag #{path}.git + #{tag_name} #{ref}) + cmd << message unless message.nil? || message.empty? + system *cmd end # Remove repository tag |