Skip to content

Glavin001/IssueBot

Repository files navigation

IssueBot

Your personal assistant for automatically organizing and replying to Issues.


Why IssueBot?

  • Does this look familiar?
    issue-bot-issues-count-nodejs
  • Are you maintaining a project with many issues and finding it difficult to stay organized?
  • Seeing double, or more, because your users will submit duplicate issues without searching first?
  • Wish you had someone else to help manage your Issues with you?

If you find yourself saying Yes, then IssueBot is made for you!

Skip to Step 5. Profit section below for some screenshots and a feature overview!

Skip to Installation section below for instructions on how to run the service yourself!

Getting Started

Step 1. Login with GitHub

Start off by logging into GitHub!

issue-manager-login

Step 2. Sign in to your GitHub account

If you are not already signed into GitHub you will see the following form.

issue-bot-github-sign-in

Step 3. Enter the URL of a GitHub Repository

Once you are authenticated with your GitHub account you will be able to sync a repository.

issue-bot-enter-repo

Simply enter the URL for a repository you wish to sync!

issue-bot-entered-repo

Step 4. Syncing & Training

Be patience while the repository is syncing and training predictive machine learning models.

issue-bot-syncing

Step 5. Profit!

profit

Automatically Manage Issues

Using GitHub Webhooks, Issues will be processed automatically.

Automatically Label Issues Find similar / duplicate issues
Example of Issue automatically labelled as bug Example of Issue labelled as question and similar issue suggested
issue-bot-issue-labelling issue-bot-issue-labelling-similarity

Example Results

When you are done syncing you will receive a report. Here are some examples.

Labels Duplicates
Description Predict Issue Labels Find similar/duplicate issues
Glavin001/atom-beautify
Facebook/react
nodejs/node screen shot 2016-06-14 at 7 00 07 pm issue-bot-duplicates-nodejs

Installation

Note: Installation process needs a little love. Below are details for how I get it running on my machine.

Config

node-config handles configuration. Create a local configuration file, that will be ignored by Git:

cp config/default.js config/local.js

GitHub App

Go to https://github.com/settings/developers and Register a new application. Replace github.client_id (CLIENT_ID) and github.client_secret (CLIENT_SECRET) in config/local.js.

Optional: If you want to run node scripts/get-issues.js you should create a Personal access token at https://github.com/settings/tokens and replace github.token (TOKEN) in config/local.js.

Database

  1. Install PostgreSQL
# Create a database
initdb /usr/local/var/postgres9.5 -E utf8
# Start Postgres with specific database directory
postgres -D /usr/local/var/postgres9.5
  1. Create database with createdb issuemanager
  2. Create database user with:
$ psql issuemanager
issuemanager=# create user issuemanager password 'CHANGE_ME_PASSWORD';
  1. Edit your configuration in config/local.js under key db.
  2. Test database with node scripts/test-db.js

Tunnels to Localhost

Install ngrok and run the following:

ngrok http -subdomain=issue-manager-web 8080
ngrok http -subdomain=issue-manager 8081

Edit config/local.js to have the following corresponding configuration:

"server": {
  "base_url": "http://issue-manager.ngrok.io",
  "port": 8081
},
"app": {
  "base_url": "http://issue-manager-web.ngrok.io"
},

Python

Install Python and pip the run the following:

pip install -r requirements.txt

Node.js

Install dependencies with npm install.

Start Webpack development server with npm run start:webpack.

Finally, start the server with npm run start:server.

Note: npm start is equivalent to running both npm run start:webpack and npm run start:server in parallel.

Go to http://issue-manager-web.ngrok.io to view the web application!

About

Automate Issue replies and organization

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published