/corobo

A bot to help newcomers onboard OS projects! It's awesome!

Primary LanguagePythonMIT LicenseMIT

corobo

Codecov branch Semaphore branch Gitter Room

About

corobo is a Python based chatbot that could be connected to many messaging platforms including Slack, HipChat, Telegram, IRC, XMPP, Tox, Campfire, Gitter, Skype. Check all the backends available here

This repository is mainly a collection of plugins that are written for errbot. Errbot is a Python based chatbot framework.

As described on Errbot website:

Errbot is a chatbot, a daemon that connects to your favorite chat service and brings your tools into the conversation.

It handles sending messages to correct rooms/person, receiving messages, calling your command routines on matching commands, etc. These command routines are added by writing plugins, which are collected and loaded by Errbot when it is ran.

Features

Read more about what corobo could do for you here.

Environment Variables

  1. BOT_ROOT - absolute path of the project root.
  2. BOT_PREFIX - prefix to use for issuing bot commands.
  3. BOT_ADMINS - Space separated list of admins of the errbot instance.
  4. ROOMS - Space separated list of rooms to join on startup. e.g. ROOMS="coala/coala coala/coala/corobo"
  5. BACKEND - Backend to use. Default is Text, or Gitter when BOT_TOKEN is set.
  6. BOT_TOKEN - Token used to connect to the backends - Mandatory for backends except Text.
  7. GH_TOKEN - GitHub personal access token to create issues, invite people to org, assign and unassign issues, etc. - Mandatory for LabHub to work for GitHub.
  8. GL_TOKEN - GitLab personal access token to create, assign, unassign issues, etc. - Mandatory for LabHub to work for GitLab.
  9. GH_ORG_NAME - Name of github organization - Mandatory for LabHub GitHub
  10. GL_ORG_NAME - Name of gitlab organization - Mandatory for LabHub GitLab
  11. WA_TOKEN - wolframalpha APP_ID to access wolfram API.
  12. IGNORE_USERNAMES - space separated list of usernames to ignore messages from.

Environment Variables for answers microservice

  1. ANSWER_END - Endpoint of answers microservice(in answers/ directory). It is exposed at port 8000.

Setup without docker

  1. Install the dependencies pip install -r requirements.txt
  2. Set environment variables mentioned above if required export COBOT_TOKEN=..., or edit config.py
  3. Run errbot

Setup with docker

  1. Grab the image docker pull meetmangukiya/corobo
  2. Run the image :D:
    docker run --rm -e COBOT_TOKEN="this-is-chatbot-token" \
                    -e COBOT_PREFIX="gitmate" \
                    -e BOT_ADMINS="sils meetmangukiya" \
                    -e BACKEND="Slack" \
                    -e GH_TOKEN="this-is-the-bots-github-token" \
                    -e GL_TOKEN="this-is-the-bots-gitlab-token" \
                    -e GH_ORG_NAME="gitmate" \
                    -e GL_ORG_NAME="gitmate" \
                    meetmangukiya/corobo
    

Under Brewing

There are a few plugins that may be coala specific. But we are working on making it more configurable and adaptable for other orgs.