- About-the-plugin
- Installation
- Working
- Features
- Slash Commands
/skills
/resolve
- Slash Commands
- Development
- Hackathon-Mattermost-bot-hackfest
- Demo Video
- Additional Info
This plugin helps to resolve issues directly through Mattermost application. It enables the users to get solutions to their issues/questions if a similar/related question is found on stackoverflow. If a similar/related question is not found on stackoverflow, it suggests contacting a user who is skilled in the domain of the question/issue.
Download the latest version of the release directory. Go to System Console
and upload the latest release in plugins section. For help on how to install a custom plugin, please refer installing custom plugin docs.
-
This plugin works with the help of slash commands. Headover to any channel and write the slash command
/resolve
followed by your issue/question. -
If a similar question/issue is found (that has an accepted answer) on stackoverflow, then the issue_resolver bot will reply with the question found and the accepted solution. The following screenshot(s) show that the user's issue was "/resolve Java: Array out of bounds exception" which is searched on stackoverflow, and the complete question (along with its title) and the accepted solution on stackoverflow is fetched and displayed to the user by the bot.
-
If a similar question/issue is not found by the
issue_resolver
bot or there is no accepted answer for the question on stackoverflow, then the bot tries to return a user who possesses the skill required to solve the issue.
The following screenshot shows that the user's issue was "call golang code from haskell", which we understand requires the skills "golang, haskell". The bot suggests a user who has mentioned "golang, haskell" among his/her skills.
/skills
The plugin suggests contacting a user who is skilled in the domain of the question/issue posted if a similar/related issue/question is not found on stackoverflow. In order to accomplish this task, users are required to update their skills.
In order to manage his/her skills, the user should use the slash command /skills
and an optional command along with it.
If no command is mentioned along with /skills
, the system lists the skills of the user stored.
If the command list <prefix (optional)>
is used, the system prints the list of skills any user can have that starts with the given prefix. (If no prefix is mentioned, all the possible skills are listed). That is, there is a huge predefined set of skills, that any user can have.
If the command add <comma separated list of skills>
is used, the system adds all the skills for the user that are mentioned and are among the predefined list.
If the command delete <comma separated list of skills>
is used, the system deletes all the skills mentioned for the user if he/she possessed that skill beforehand.
The GIF below depicts the usage of /skills
/resolve <issue/question>
The issue/question mentioned is searched on stackoverflow. If a similar question/issue is found that has an accepted answer on stackoverflow, then the issue_resolver
bot will reply with the question found and the accepted solution.
If a similar question/issue with an accepted answer is not found, then a user will be searched who possesses the skill for resolving the issue. If such a user is found, the username of the user found is suggested by the bot for contact.
The GIF below depicts the usage of /resolve
- The plugin logs important events at appropriate log levels.
- The plugin is tested on Mattermost Server version 5.19.0
-
This plugin contains only the server.
-
Use
make check-style
to check the style. -
Use
make test
to test the plugin. -
Use
make dist
to build distributions of the plugin that can be uploaded to a Mattermost server -
Alternatively, use
make
to check the style, test and build distributions of the plugin that you can upload to a Mattermost server (all at once). -
Use
make deploy
to deploy the plugin to your local server. Before runningmake deploy
, you need to set a few environment variables:export MM_SERVICESETTINGS_SITEURL=http://localhost:8065 export MM_ADMIN_USERNAME=admin export MM_ADMIN_PASSWORD=password
-
If you want to deploy the plugin by using
System Console
:-
On the the server, in the file
config/config.json
, changeEnableUploads
in thePlugin Settings
totrue
-
Login to Mattermost server with admin privileges.
-
Headover to
System Console
and upload the tar.gz file created indist/
directory to the plugins section. For help on how to install a custom plugin, please refer installing custom plugin docs. -
Enable the plugin in the section
Installed Plugins
on the same page.
-
Hackathon Mattermost Bot Hackfest
- Link to the ppt describing the idea - Idea Presentation
-
Link to the submitted file - File for project submission
-
Link to the pull request for submitting the project - Project Submission
- Awarded the Mattermost Swag Kit
- The project received an Honorable Mention at Mattermost Blog Post
- The project landed among the runners-up in the Mattermost Bot Hackfest
Link - https://vimeo.com/394781065/
This plugin is created for demonstration of the idea submitted at Mattermost Bot Hackfest.