Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2016-08-13 04:23:33 +0300
committerDouwe Maan <douwe@selenight.nl>2016-08-13 04:23:33 +0300
commitd9715266e86e6a48616c24147e46c1219f4e0255 (patch)
tree01d3967a00efc1f3d0b27e4a917b95a545bcf816 /app/services/slash_commands
parent463ae8f570f986d9f50ae42067715d6db0dc1541 (diff)
Allow setting labels, milestones and assignee based on name
Diffstat (limited to 'app/services/slash_commands')
-rw-r--r--app/services/slash_commands/interpret_service.rb12
1 files changed, 9 insertions, 3 deletions
diff --git a/app/services/slash_commands/interpret_service.rb b/app/services/slash_commands/interpret_service.rb
index a2b92d70f9f..50e2a96eefb 100644
--- a/app/services/slash_commands/interpret_service.rb
+++ b/app/services/slash_commands/interpret_service.rb
@@ -74,6 +74,8 @@ module SlashCommands
end
command :assign, :reassign 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
@@ -95,6 +97,7 @@ module SlashCommands
end
command :milestone do |milestone_param|
milestone = extract_references(milestone_param, :milestone).first
+ milestone ||= project.milestones.find_by(title: milestone_param.strip)
@updates[:milestone_id] = milestone.id if milestone
end
@@ -204,12 +207,15 @@ module SlashCommands
command :cc, noop: true
def find_label_ids(labels_param)
- extract_references(labels_param, :label).map(&:id)
+ label_ids_by_reference = extract_references(labels_param, :label).map(&:id)
+ labels_ids_by_name = @project.labels.where(name: labels_param.split).select(:id)
+
+ label_ids_by_reference | labels_ids_by_name
end
- def extract_references(cmd_arg, type)
+ def extract_references(arg, type)
ext = Gitlab::ReferenceExtractor.new(project, current_user)
- ext.analyze(cmd_arg, author: current_user)
+ ext.analyze(arg, author: current_user)
ext.references(type)
end