summaryrefslogtreecommitdiff
path: root/lib/gitlab/quick_actions/commit_actions.rb
blob: 62c0fbb5afd9a034c1422b98279254fc2cbc0a43 (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
# 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|
          with_message = %{ with "#{message}"} if message.present?
          "Tags this commit to #{tag_name}#{with_message}."
        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