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
d7f298c1
Commit
d7f298c1
authored
Jan 30, 2017
by
Z.J. van de Weg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Incorporate feedback
parent
3df15b95
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
49 additions
and
18 deletions
+49
-18
command.rb
lib/gitlab/chat_commands/command.rb
+1
-1
help.rb
lib/gitlab/chat_commands/help.rb
+2
-2
access.rb
lib/gitlab/chat_commands/presenters/access.rb
+14
-0
help.rb
lib/gitlab/chat_commands/presenters/help.rb
+7
-5
issue_new.rb
lib/gitlab/chat_commands/presenters/issue_new.rb
+3
-1
issue_search.rb
lib/gitlab/chat_commands/presenters/issue_search.rb
+3
-1
issue_show.rb
lib/gitlab/chat_commands/presenters/issue_show.rb
+8
-3
command_spec.rb
spec/lib/gitlab/chat_commands/command_spec.rb
+1
-5
issue_show_spec.rb
spec/lib/gitlab/chat_commands/presenters/issue_show_spec.rb
+10
-0
No files found.
lib/gitlab/chat_commands/command.rb
View file @
d7f298c1
...
...
@@ -18,7 +18,7 @@ module Gitlab
Gitlab
::
ChatCommands
::
Presenters
::
Access
.
new
.
access_denied
end
else
Gitlab
::
ChatCommands
::
Help
.
new
(
project
,
current_user
,
params
).
execute
(
available_commands
)
Gitlab
::
ChatCommands
::
Help
.
new
(
project
,
current_user
,
params
).
execute
(
available_commands
,
params
[
:text
]
)
end
end
...
...
lib/gitlab/chat_commands/help.rb
View file @
d7f298c1
...
...
@@ -16,8 +16,8 @@ module Gitlab
true
end
def
execute
(
commands
)
Gitlab
::
ChatCommands
::
Presenters
::
Help
.
new
(
commands
).
present
(
trigger
)
def
execute
(
commands
,
text
)
Gitlab
::
ChatCommands
::
Presenters
::
Help
.
new
(
commands
).
present
(
trigger
,
text
)
end
def
trigger
...
...
lib/gitlab/chat_commands/presenters/access.rb
View file @
d7f298c1
...
...
@@ -20,6 +20,20 @@ module Gitlab
ephemeral_response
(
text:
message
)
end
def
unknown_command
(
commands
)
ephemeral_response
(
text:
help_message
(
trigger
))
end
private
def
help_message
(
trigger
)
header_with_list
(
"Command not found, these are the commands you can use"
,
full_commands
(
trigger
))
end
def
full_commands
(
trigger
)
@resource
.
map
{
|
command
|
"
#{
trigger
}
#{
command
.
help_message
}
"
}
end
end
end
end
...
...
lib/gitlab/chat_commands/presenters/help.rb
View file @
d7f298c1
...
...
@@ -2,17 +2,19 @@ module Gitlab
module
ChatCommands
module
Presenters
class
Help
<
Presenters
::
Base
def
present
(
trigger
)
ephemeral_response
(
text:
help_message
(
trigger
))
def
present
(
trigger
,
text
)
ephemeral_response
(
text:
help_message
(
trigger
,
text
))
end
private
def
help_message
(
trigger
)
if
@resource
.
present?
def
help_message
(
trigger
,
text
)
return
"No commands available :thinking_face:"
unless
@resource
.
present?
if
text
.
start_with?
(
'help'
)
header_with_list
(
"Available commands"
,
full_commands
(
trigger
))
else
"No commands available :thinking_face:"
header_with_list
(
"Unknown command, these commands are available"
,
full_commands
(
trigger
))
end
end
...
...
lib/gitlab/chat_commands/presenters/issue_new.rb
View file @
d7f298c1
...
...
@@ -24,7 +24,9 @@ module Gitlab
fields:
fields
,
mrkdwn_in:
[
:title
,
:text
:pretext
,
:text
,
:fields
]
}
]
...
...
lib/gitlab/chat_commands/presenters/issue_search.rb
View file @
d7f298c1
...
...
@@ -7,6 +7,8 @@ module Gitlab
def
present
text
=
if
@resource
.
count
>=
5
"Here are the first 5 issues I found:"
elsif
@resource
.
one?
"Here is the only issue I found:"
else
"Here are the
#{
@resource
.
count
}
issues I found:"
end
...
...
@@ -26,7 +28,7 @@ module Gitlab
text:
"
#{
url
}
·
#{
issue
.
title
}
(
#{
status_text
(
issue
)
}
)"
,
mrkdwn_in:
[
"text"
:text
]
}
end
...
...
lib/gitlab/chat_commands/presenters/issue_show.rb
View file @
d7f298c1
...
...
@@ -5,7 +5,11 @@ module Gitlab
include
Presenters
::
Issuable
def
present
in_channel_response
(
show_issue
)
if
@resource
.
confidential?
ephemeral_response
(
show_issue
)
else
in_channel_response
(
show_issue
)
end
end
private
...
...
@@ -25,7 +29,8 @@ module Gitlab
fields:
fields
,
mrkdwn_in:
[
:pretext
,
:text
:text
,
:fields
]
}
]
...
...
@@ -48,7 +53,7 @@ module Gitlab
end
def
pretext
"Issue *
#{
@resource
.
to_reference
}
from
#{
project
.
name_with_namespace
}
"
"Issue *
#{
@resource
.
to_reference
}
*
from
#{
project
.
name_with_namespace
}
"
end
end
end
...
...
spec/lib/gitlab/chat_commands/command_spec.rb
View file @
d7f298c1
...
...
@@ -5,7 +5,6 @@ describe Gitlab::ChatCommands::Command, service: true do
let
(
:user
)
{
create
(
:user
)
}
describe
'#execute'
do
<<<<<<<
HEAD
subject
do
described_class
.
new
(
project
,
user
,
params
).
execute
end
...
...
@@ -19,16 +18,13 @@ describe Gitlab::ChatCommands::Command, service: true do
expect
(
subject
[
:text
]).
to
start_with
(
'404 not found'
)
end
end
=======
subject
{
described_class
.
new
(
project
,
user
,
params
).
execute
}
>>>>>>>
Chat
Commands
have
presenters
context
'when an unknown command is triggered'
do
let
(
:params
)
{
{
command:
'/gitlab'
,
text:
"unknown command 123"
}
}
it
'displays the help message'
do
expect
(
subject
[
:response_type
]).
to
be
(
:ephemeral
)
expect
(
subject
[
:text
]).
to
start_with
(
'
Available commands
'
)
expect
(
subject
[
:text
]).
to
start_with
(
'
Unknown command
'
)
expect
(
subject
[
:text
]).
to
match
(
'/gitlab issue show'
)
end
end
...
...
spec/lib/gitlab/chat_commands/presenters/issue_show_spec.rb
View file @
d7f298c1
...
...
@@ -21,7 +21,17 @@ describe Gitlab::ChatCommands::Presenters::IssueShow do
end
it
'shows the upvote count'
do
expect
(
subject
[
:response_type
]).
to
be
(
:in_channel
)
expect
(
attachment
[
:text
]).
to
start_with
(
"**Open** · :+1: 1"
)
end
end
context
'confidential issue'
do
let
(
:issue
)
{
create
(
:issue
,
project:
project
)
}
it
'shows an ephemeral response'
do
expect
(
subject
[
:response_type
]).
to
be
(
:in_channel
)
expect
(
attachment
[
:text
]).
to
start_with
(
"**Open**"
)
end
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