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
Boxiang Sun
gitlab-ce
Commits
99d8d6f0
Commit
99d8d6f0
authored
Dec 13, 2016
by
Z.J. van de Weg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add MattermostController
parent
87d16063
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
159 additions
and
98 deletions
+159
-98
app/controllers/projects/mattermost_controller.rb
app/controllers/projects/mattermost_controller.rb
+47
-0
app/views/projects/mattermost/new.html.haml
app/views/projects/mattermost/new.html.haml
+6
-0
app/views/projects/services/mattermost_slash_commands/_help.html.haml
...ojects/services/mattermost_slash_commands/_help.html.haml
+100
-98
config/routes/project.rb
config/routes/project.rb
+6
-0
No files found.
app/controllers/projects/mattermost_controller.rb
0 → 100644
View file @
99d8d6f0
class
Projects::MattermostController
<
Projects
::
ApplicationController
layout
'project_settings'
before_action
:authorize_admin_project!
before_action
:service
before_action
:teams
,
only:
[
:new
]
def
new
end
def
configure
@service
.
configure
(
host
,
current_user
,
params
)
redirect_to
(
new_namespace_project_service_path
(
@project
.
namespace
,
@project
,
@service
.
to_param
),
notice:
'This service is now configured.'
)
rescue
Mattermost
::
NoSessionError
redirect_to
(
edit_namespace_project_service_path
(
@project
.
namespace
,
@project
,
@service
.
to_param
),
alert:
'No session could be set up, is Mattermost configured with Single Sign on?'
)
end
private
def
configure_params
params
.
require
(
:configure_params
).
permit
(
:trigger
,
:team_id
)
end
def
service
@service
||=
@project
.
services
.
find_by
(
type:
'MattermostSlashCommandsService'
)
end
def
teams
# Mocking for frontend development
@teams
=
[{
"id"
=>
"qz8gdr1fopncueb8n9on8ohk3h"
,
"create_at"
=>
1479992105904
,
"update_at"
=>
1479992105904
,
"delete_at"
=>
0
,
"display_name"
=>
"chatops"
,
"name"
=>
"chatops"
,
"email"
=>
"admin@example.com"
,
"type"
=>
"O"
,
"company_name"
=>
""
,
"allowed_domains"
=>
""
,
"invite_id"
=>
"gthxi47gj7rxtcx6zama63zd1w"
,
"allow_open_invite"
=>
false
}]
# @teams =
# begin
# Mattermost::Mattermost.new(Gitlab.config.mattermost.host, current_user).with_session do
# Mattermost::Team.all
# end
# rescue Mattermost::NoSessionError
# @teams = []
# end
end
end
app/views/projects/mattermost/new.html.haml
0 → 100644
View file @
99d8d6f0
=
"hello world"
=
form_for
(
:create
,
method: :post
,
url:
configure_namespace_project_mattermost_path
(
@project
.
namespace
,
@project
,
@service
.
to_param
))
do
|
f
|
=
"Team ID"
=
f
.
text_field
(
:team_id
)
=
f
.
submit
'Configure'
,
class:
'btn btn-save'
app/views/projects/services/mattermost_slash_commands/_help.html.haml
View file @
99d8d6f0
-
pretty_path_with_namespace
=
"
#{
@project
?
@project
.
namespace
.
name
:
'namespace'
}
/
#{
@project
?
@project
.
name
:
'name'
}
"
-
run_actions_text
=
"Perform common operations on this project:
#{
pretty_path_with_namespace
}
"
-
unless
GitLab
.
config
.
mattermost
.
enabled
.well
.well
This service allows GitLab users to perform common operations on this
project by entering slash commands in Mattermost.
%br
...
...
@@ -99,3 +98,6 @@
3. After adding the slash command, paste the
%strong
token
into the field below
-
if
Gitlab
.
config
.
mattermost
.
enabled
=
link_to
"Auto config"
,
new_namespace_project_mattermost_path
(
@project
.
namespace
,
@project
)
config/routes/project.rb
View file @
99d8d6f0
...
...
@@ -65,6 +65,12 @@ constraints(ProjectUrlConstrainer.new) do
end
end
resources
:mattermost
,
only:
[
:new
]
do
member
do
post
:configure
end
end
resources
:deploy_keys
,
constraints:
{
id:
/\d+/
},
only:
[
:index
,
:new
,
:create
]
do
member
do
put
:enable
...
...
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