hubot-matteruser-es6
v0.1.0hubot-matteruser-es6
Hubot is "chat bot" created by GitHub that listens for commands and executes actions based on your requests.
hubot-matteruser-es6
is a Hubot adapter for Mattermost written in javascript es6 that uses the Mattermost Web Services API and WebSockets to deliver Hubot functionality.
- Learn more about Hubot in Wired Magazine
- Learn more about Mattermost as an open source, self-hosted team communication server
About current version 0.1.0
- This version is testing currently. Do not use it in production.
- This version is based on https://github.com/loafoe/hubot-matteruser v3.9.1
- This version use mattermost v3 API and has been tested on mattermost v3.9.2
- This version is compatible hubot v3.0.1 (es6 ported version)
Description
This Hubot adapter connects to your Mattermost server. You can invite your bot to any channel just as a regular user. It listens and perform your commands. The adapter uses mattermost-client for all low level Mattermost communication.
Try the Hubot demo
You can try out Hubot by joining the Mattermost community server and joining the Hubot channel:
- Create an account on the Mattermost nightly builds server at https://pre-release.mattermost.com/
- Join the "Hubot" channel
- Type
hubot help
for instructions
Sample commands
You can try a simple command like hubot the rules
to bring some static text stored in Hubot:
Try hubot animate me
to have Hubot reach out to Giphy and bring back a random animated image.
Try hubot map me [NAME_OF_CITY]
to have Hubot reach out to Google Maps and bring back a map based on the name of a city you pass in as a parameter. For example, hubot map me palo alto
brings back the below map of Palo Alto
Docker usage
Standalone
Clone this repository, then build the Hubot-Matteruser container:
docker build --build-arg hubot_owner=<owner> \
--build-arg hubot_name=<name> \
--build-arg hubot_description=<desc> \
--tag=hubot-matteruser-es6 \
.
Start the container:
docker run -it \
--env MATTERMOST_HOST=<mm_host> \
--env MATTERMOST_GROUP=<mm_team> \
--env MATTERMOST_USER=<mm_user_email> \
--env MATTERMOST_PASSWORD=<mm_user_password> \
-p 8080:8080 \
--name hubot-matteruser-es6 \
hubot-matteruser-es6
Docker Compose
TODO
Installation
1) Install a Mattermost server
Follow the Mattermost install guides
2) Install hubot-matteruser
On a separate server, install hubot-matteruser
using the following commands:
npm install -g yo generator-hubot
yo hubot --adapter matteruser-es6
Follow the instructions to set up your bot, including setup of mattermost-client
.
Environment variables
The adapter requires the following environment variables to be defined before your Hubot instance will start:
Variable | Required | Description |
---|---|---|
MATTERMOST_HOST | Yes | The Mattermost host e.g. mm.yourcompany.com |
MATTERMOST_GROUP | Yes | The team/group on your Mattermost server e.g. core |
MATTERMOST_USER | Yes | The Mattermost user account name e.g. [email protected] |
MATTERMOST_PASSWORD | Yes | The password of the user e.g. s3cr3tP@ssw0rd! |
MATTERMOST_WSS_PORT | No | Overrides the default port 443 for websocket (wss:// ) connections |
MATTERMOST_HTTP_PORT | No | Overrides the default port (80 or 443 ) for http:// or https:// connections |
MATTERMOST_TLS_VERIFY | No | (default: true) set to 'false' to allow connections when certs can not be verified (ex: self-signed, internal CA, ... - MITM risks) |
MATTERMOST_USE_TLS | No | (default: true) set to 'false' to switch to http/ws protocols |
MATTERMOST_LOG_LEVEL | No | (default: info) set log level (also: debug, ...) |
MATTERMOST_REPLY | No | (default: true) set to 'false' to stop posting reply responses as comments |
MATTERMOST_IGNORE_USERS | No | (default: empty) Enter a comma-separated list of user senderi_names to ignore. |
Example configuration
The below example assumes you have created a user [email protected]
with username hubot
and password s3cr3tP@ssw0rd!
on your Mattermost server in the core
team reachable on URL https://mm.yourcompany.com/core
export MATTERMOST_HOST=mm.yourcompany.com
export MATTERMOST_GROUP=core
export [email protected]
export MATTERMOST_PASSWORD=s3cr3tP@ssw0rd!
License
The MIT License. See LICENSE
file.