summaryrefslogtreecommitdiff
path: root/lib/gitlab/quick_actions/commit_actions.rb
blob: 1018910e8e9b5d315725ee15b01db663960fc4b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# frozen_string_literal: true

module Gitlab
  module QuickActions
    module CommitActions
      extend ActiveSupport::Concern
      include Gitlab::QuickActions::Dsl

      included do
        # Commit only quick actions definitions
        desc _('Tag this commit.')
        explanation do |tag_name, message|
          if message.present?
            _("Tags this commit to %{tag_name} with \"%{message}\".") % { tag_name: tag_name, message: message }
          else
            _("Tags this commit to %{tag_name}.") % { tag_name: tag_name }
          end
        end
        params 'v1.2.3 <message>'
        parse_params do |tag_name_and_message|
          tag_name_and_message.split(' ', 2)
        end
        types Commit
        condition do
          current_user.can?(:push_code, project)
        end
        command :tag do |tag_name, message|
          @updates[:tag_name] = tag_name
          @updates[:tag_message] = message
        end
      end
    end
  end
end