Giter Site home page Giter Site logo

abdulsmapara / mattermost-plugin-issue-resolver Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 0.0 55.88 MB

A plugin that helps to resolve issues directly through Mattermost application

License: Apache License 2.0

Makefile 19.61% Go 80.13% HTML 0.26%
mattermost-plugin plugin bot mattermost-bot-hackfest mattermost

mattermost-plugin-issue-resolver's Introduction

Mattermost Issue Resolver Plugin

A plugin that helps to resolve issues directly through Mattermost application

Table of Content

About the plugin

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.

Installation

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.

Working

  1. This plugin works with the help of slash commands. Headover to any channel and write the slash command /resolve followed by your issue/question.

  2. 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. User's issue Similar/Related Question Found Accepted Solution

  3. 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. Suggestion-to-contact-a-User

Features

Slash Commands

/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 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

Usage of /resolve

Note :

  1. The plugin logs important events at appropriate log levels.
  2. The plugin is tested on Mattermost Server version 5.19.0

Development

  1. This plugin contains only the server.

  2. Use make check-style to check the style.

  3. Use make test to test the plugin.

  4. Use make dist to build distributions of the plugin that can be uploaded to a Mattermost server

  5. 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).

  6. Use make deploy to deploy the plugin to your local server. Before running make 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
    
  7. If you want to deploy the plugin by using System Console:

    1. On the the server, in the file config/config.json, change EnableUploads in the Plugin Settings to true

    2. Login to Mattermost server with admin privileges.

    3. Headover to System Console and upload the tar.gz file created in dist/ directory to the plugins section. For help on how to install a custom plugin, please refer installing custom plugin docs.

    4. Enable the plugin in the section Installed Plugins on the same page.

Idea Phase Submission

Project Submission

Prizes and Recognition

Demo Video

Link - https://vimeo.com/394781065/

Additional Info

This plugin is created for demonstration of the idea submitted at Mattermost Bot Hackfest.

mattermost-plugin-issue-resolver's People

Contributors

abdulsmapara avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

mattermost-plugin-issue-resolver's Issues

Add help to /resolve command

To add help to /resolve command i.e. /resolve help should be supported that displays how to use the /resolve command and what is its purpose.

Add help command to /skills

Addition of help command to /skills i.e. /skills help should be supported that displays how to use the /skills slash command.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.