Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Jérome Perrin
gitlab-ce
Commits
242e291e
Commit
242e291e
authored
Nov 12, 2016
by
Z.J. van de Weg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add issue create subcommand
parent
657838f1
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
27 additions
and
7 deletions
+27
-7
app/services/mattermost/command_service.rb
app/services/mattermost/command_service.rb
+1
-1
app/services/mattermost/commands/issue_service.rb
app/services/mattermost/commands/issue_service.rb
+13
-6
spec/services/mattermost/commands/issue_service_spec.rb
spec/services/mattermost/commands/issue_service_spec.rb
+13
-0
No files found.
app/services/mattermost/command_service.rb
View file @
242e291e
...
@@ -24,7 +24,7 @@ module Mattermost
...
@@ -24,7 +24,7 @@ module Mattermost
private
private
def
command
def
command
params
[
:text
].
match
(
/\A(?<command>\S+)/
)[
:command
]
params
[
:text
].
split
.
first
end
end
def
present
(
result
)
def
present
(
result
)
...
...
app/services/mattermost/commands/issue_service.rb
View file @
242e291e
...
@@ -20,9 +20,20 @@ module Mattermost
...
@@ -20,9 +20,20 @@ module Mattermost
private
private
# TODO implement create
def
create
(
_
)
return
nil
unless
can?
(
current_user
,
:create_issue
,
project
)
# We parse again as the previous split splits on continues whitespace
# per the ruby spec, but we loose information on where the new lines were
match
=
command
.
match
(
/\Aissue create (?<title>.*)\n*/
)
title
=
match
[
:title
]
description
=
match
.
post_match
Issues
::
CreateService
.
new
(
project
,
current_user
,
title:
title
,
description:
description
).
execute
end
def
subcommands
def
subcommands
%w[create
s
search show]
%w[create search show]
end
end
def
collection
def
collection
...
@@ -33,10 +44,6 @@ module Mattermost
...
@@ -33,10 +44,6 @@ module Mattermost
can?
(
current_user
,
:read_issue
,
issue
)
can?
(
current_user
,
:read_issue
,
issue
)
end
end
# 'issue create my new title\nmy new description
# => 'create', ['my', 'new', 'title, ['my new description']]
# 'issue show 123'
# => 'show', ['123']
def
parse_command
def
parse_command
split
=
command
.
split
split
=
command
.
split
subcommand
=
split
[
1
]
subcommand
=
split
[
1
]
...
...
spec/services/mattermost/commands/issue_service_spec.rb
View file @
242e291e
...
@@ -56,6 +56,19 @@ describe Mattermost::Commands::IssueService do
...
@@ -56,6 +56,19 @@ describe Mattermost::Commands::IssueService do
end
end
end
end
end
end
context
'create as subcommand'
do
let
(
:title
)
{
'my new issue'
}
let
(
:params
)
{
{
text:
"issue create
#{
title
}
"
}
}
it
'return the new issue'
do
expect
(
subject
).
to
be_a
Issue
end
it
'creates a new issue'
do
expect
{
subject
}.
to
change
{
Issue
.
count
}.
by
(
1
)
end
end
end
end
describe
'help_message'
do
describe
'help_message'
do
...
...
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