Class: Gitlab::SlashCommands::Command
- Inherits:
-
BaseCommand
- Object
- BaseCommand
- Gitlab::SlashCommands::Command
- Defined in:
- lib/gitlab/slash_commands/command.rb
Constant Summary
Constants inherited from BaseCommand
Instance Attribute Summary
Attributes inherited from BaseCommand
#chat_name, #current_user, #params, #project
Class Method Summary collapse
Instance Method Summary collapse
Methods inherited from BaseCommand
allowed?, available?, can?, #collection, help_message, #initialize, match
Constructor Details
This class inherits a constructor from Gitlab::SlashCommands::BaseCommand
Class Method Details
.commands ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/gitlab/slash_commands/command.rb', line 6 def self.commands commands = [ Gitlab::SlashCommands::IssueShow, Gitlab::SlashCommands::IssueNew, Gitlab::SlashCommands::IssueSearch, Gitlab::SlashCommands::IssueMove, Gitlab::SlashCommands::IssueClose, Gitlab::SlashCommands::IssueComment, Gitlab::SlashCommands::Deploy, Gitlab::SlashCommands::Run ] if Feature.enabled?(:incident_declare_slash_command) commands << Gitlab::SlashCommands::IncidentManagement::IncidentNew end commands end |
Instance Method Details
#execute ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/gitlab/slash_commands/command.rb', line 25 def execute command, match = match_command if command if command.allowed?(project, current_user) command.new(project, chat_name, params).execute(match) else Gitlab::SlashCommands::Presenters::Access.new.access_denied(project) end else Gitlab::SlashCommands::Help.new(project, chat_name, params) .execute(available_commands, params[:text]) end end |
#match_command ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'lib/gitlab/slash_commands/command.rb', line 40 def match_command match = nil service = available_commands.find do |klass| match = klass.match(params[:text]) end [service, match] end |