BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
72b0fba5
Commit
72b0fba5
authored
Jun 07, 2017
by
Douwe Maan
Committed by
Timothy Andrew
Jun 12, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Merge branch 'backport_fix_slash_commands_for_multiple_assignee' into 'master'
Backport from EE: Fix '/unassign' slash command See merge request !11926
parent
1d1a55d0
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
27 additions
and
15 deletions
+27
-15
interpret_service.rb
app/services/slash_commands/interpret_service.rb
+15
-9
command_definition.rb
lib/gitlab/slash_commands/command_definition.rb
+8
-2
dsl.rb
lib/gitlab/slash_commands/dsl.rb
+2
-2
bulk_update_service_spec.rb
spec/services/issuable/bulk_update_service_spec.rb
+1
-1
interpret_service_spec.rb
spec/services/slash_commands/interpret_service_spec.rb
+1
-1
No files found.
app/services/slash_commands/interpret_service.rb
View file @
72b0fba5
...
...
@@ -92,26 +92,20 @@ module SlashCommands
desc
'Assign'
explanation
do
|
users
|
"Assigns
#{
users
.
map
(
&
:to_reference
).
to_sent
ence
}
."
if
users
.
any?
"Assigns
#{
users
.
first
.
to_refer
ence
}
."
if
users
.
any?
end
params
'@user'
condition
do
current_user
.
can?
(
:"admin_
#{
issuable
.
to_ability_name
}
"
,
project
)
end
parse_params
do
|
assignee_param
|
users
=
extract_references
(
assignee_param
,
:user
)
if
users
.
empty?
users
=
User
.
where
(
username:
assignee_param
.
split
(
' '
).
map
(
&
:strip
))
end
users
extract_users
(
assignee_param
)
end
command
:assign
do
|
users
|
next
if
users
.
empty?
if
issuable
.
is_a?
(
Issue
)
@updates
[
:assignee_ids
]
=
users
.
map
(
&
:id
)
@updates
[
:assignee_ids
]
=
[
users
.
last
.
id
]
else
@updates
[
:assignee_id
]
=
users
.
last
.
id
end
...
...
@@ -459,6 +453,18 @@ module SlashCommands
end
end
def
extract_users
(
params
)
return
[]
if
params
.
nil?
users
=
extract_references
(
params
,
:user
)
if
users
.
empty?
users
=
User
.
where
(
username:
params
.
split
(
' '
).
map
(
&
:strip
))
end
users
end
def
find_labels
(
labels_param
)
extract_references
(
labels_param
,
:label
)
|
LabelsFinder
.
new
(
current_user
,
project_id:
project
.
id
,
name:
labels_param
.
split
).
execute
...
...
lib/gitlab/slash_commands/command_definition.rb
View file @
72b0fba5
...
...
@@ -48,17 +48,23 @@ module Gitlab
end
def
to_h
(
opts
)
context
=
OpenStruct
.
new
(
opts
)
desc
=
description
if
desc
.
respond_to?
(
:call
)
context
=
OpenStruct
.
new
(
opts
)
desc
=
context
.
instance_exec
(
&
desc
)
rescue
''
end
prms
=
params
if
prms
.
respond_to?
(
:call
)
prms
=
Array
(
context
.
instance_exec
(
&
prms
))
rescue
params
end
{
name:
name
,
aliases:
aliases
,
description:
desc
,
params:
p
ara
ms
params:
p
r
ms
}
end
...
...
lib/gitlab/slash_commands/dsl.rb
View file @
72b0fba5
...
...
@@ -40,8 +40,8 @@ module Gitlab
# command :command_key do |arguments|
# # Awesome code block
# end
def
params
(
*
params
)
@params
=
params
def
params
(
*
params
,
&
block
)
@params
=
block_given?
?
block
:
params
end
# Allows to give an explanation of what the command will do when
...
...
spec/services/issuable/bulk_update_service_spec.rb
View file @
72b0fba5
...
...
@@ -72,7 +72,7 @@ describe Issuable::BulkUpdateService, services: true do
end
context
"when the new assignee ID is
#{
IssuableFinder
::
NONE
}
"
do
it
"unassigns the issues"
do
it
'unassigns the issues'
do
expect
{
bulk_update
(
merge_request
,
assignee_id:
IssuableFinder
::
NONE
)
}
.
to
change
{
merge_request
.
reload
.
assignee
}.
to
(
nil
)
end
...
...
spec/services/slash_commands/interpret_service_spec.rb
View file @
72b0fba5
...
...
@@ -384,7 +384,7 @@ describe SlashCommands::InterpretService, services: true do
it
'fetches assignee and populates assignee_id if content contains /assign'
do
_
,
updates
=
service
.
execute
(
content
,
issue
)
expect
(
updates
[
:assignee_ids
]).
to
match_array
([
developer
.
id
,
developer2
.
id
])
expect
(
updates
[
:assignee_ids
]).
to
match_array
([
developer
.
id
])
end
end
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment