Address feedback
This commit is contained in:
parent
8b8a4626c6
commit
3e7eeefc93
|
@ -193,9 +193,7 @@ class IssuableBaseService < BaseService
|
|||
todo_service.mark_todo(issuable, current_user)
|
||||
when 'done'
|
||||
todo = TodosFinder.new(current_user).execute.find_by(target: issuable)
|
||||
if todo
|
||||
todo_service.mark_todos_as_done([todo], current_user)
|
||||
end
|
||||
todo_service.mark_todos_as_done([todo], current_user) if todo
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -18,11 +18,11 @@ module SlashCommands
|
|||
|
||||
content, commands = extractor.extract_commands(content, opts)
|
||||
|
||||
commands.each do |name, *args|
|
||||
commands.each do |name, args|
|
||||
definition = self.class.command_definitions_by_name[name.to_sym]
|
||||
next unless definition
|
||||
|
||||
definition.execute(self, opts, *args)
|
||||
definition.execute(self, opts, args)
|
||||
end
|
||||
|
||||
[content, @updates]
|
||||
|
@ -76,7 +76,6 @@ module SlashCommands
|
|||
command :assign do |assignee_param|
|
||||
user = extract_references(assignee_param, :user).first
|
||||
user ||= User.find_by(username: assignee_param)
|
||||
user ||= User.find_by(name: assignee_param)
|
||||
|
||||
@updates[:assignee_id] = user.id if user
|
||||
end
|
||||
|
|
|
@ -6,11 +6,11 @@ module Gitlab
|
|||
def initialize(name, attributes = {})
|
||||
@name = name
|
||||
|
||||
@aliases = attributes[:aliases] || []
|
||||
@description = attributes[:description] || ''
|
||||
@params = attributes[:params] || []
|
||||
@condition_block = attributes[:condition_block]
|
||||
@action_block = attributes[:action_block]
|
||||
@aliases = attributes[:aliases] || []
|
||||
@description = attributes[:description] || ''
|
||||
@params = attributes[:params] || []
|
||||
@condition_block = attributes[:condition_block]
|
||||
@action_block = attributes[:action_block]
|
||||
end
|
||||
|
||||
def all_names
|
||||
|
@ -28,13 +28,13 @@ module Gitlab
|
|||
context.instance_exec(&condition_block)
|
||||
end
|
||||
|
||||
def execute(context, opts, *args)
|
||||
def execute(context, opts, args)
|
||||
return if noop? || !available?(opts)
|
||||
|
||||
block_arity = action_block.arity
|
||||
return unless block_arity == -1 || block_arity == args.size
|
||||
return unless (args.present? && block_arity == 1) || (args.blank? && block_arity <= 0)
|
||||
|
||||
context.instance_exec(*args, &action_block)
|
||||
context.instance_exec(args, &action_block)
|
||||
end
|
||||
|
||||
def to_h(opts)
|
||||
|
|
|
@ -50,15 +50,6 @@ module Gitlab
|
|||
end
|
||||
|
||||
private
|
||||
|
||||
def command_names(opts)
|
||||
command_definitions.flat_map do |command|
|
||||
next if command.noop?
|
||||
|
||||
command.all_names
|
||||
end.compact
|
||||
end
|
||||
|
||||
# Builds a regular expression to match known commands.
|
||||
# First match group captures the command name and
|
||||
# second match group captures its arguments.
|
||||
|
@ -117,6 +108,14 @@ module Gitlab
|
|||
)
|
||||
}mx
|
||||
end
|
||||
|
||||
def command_names(opts)
|
||||
command_definitions.flat_map do |command|
|
||||
next if command.noop?
|
||||
|
||||
command.all_names
|
||||
end.compact
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue