Hubot is a fantastic project that enabled us to build great bots. The bot-zero project aims to give you a cleaned up version with some examples that run on ES6 (instead of Coffee-script).
Starting this project is really easy:
- Fork this project (top right corner)
- Clone your forked project to your pc.
- Goto http://slackapi.github.io/hubot-slack/#getting-a-slack-token to read up on how to get a Slack token for your bot.
- Copy .env.example to .env and add the Slack token to this file.
- Open a terminal and navigate to your bot directory.
- Enter
npm install
to install the NodeJs packages. - Start the bot using
npm start
. - Enjoy!
GitHub doesn't allow forks on the same organization which means you can't use the fork button for wehkamp use. You can easily solve this by forking this manually.
Replace bot-zero-fork with your own repo and/or use https for cloning/remotes instead of ssh.
- Create a new repo under wehkamp.
- Clone bot-zero.
git clone [email protected]:wehkamp/bot-zero.git bot-zero-fork
- Cd into fork
cd bot-zero-fork
- Setup remotes.
git remote remove origin
git remote add upstream [email protected]:wehkamp/bot-zero.git
git remote add origin [email protected]:wehkamp/bot-zero-fork.git
git push origin master
You can now pull/push to your forked repo and the original bot-zero repo.
If you want to pull updates from the original bot-zero repo upstream you may use the command: git pull upstream master
. This will get all commits from bot-zero master in your current branch.
You can also push to the original bot-zero project with git push upstream whateverbranch
and this will push all your commits to a branch on bot-zero. Be aware though, bot-zero is public and you may leak private info.
Packages
We've included some packages:
axios
: a promise-based HTTP client. Makes it easier to use promises of your HTTP requests.cross-env
: allows you to store environment variables in the .env file in the root of the project.hubot-command-mapper
: allows for the mapping of commands with parameters to the Hubot without the need for regular expressions.
NPM
Use NPM to interact with the bot:
npm start
will start the bot.npm test
will kick of the tests of the bot. They are located in thetests
directory. Testing is done using Hubot Pretend. It'll also tests against JavaScript Standard Style to make sure your coding is consistent.
Clean up
The bot was generated using the Slack Developer Kit for Hubot. It was "cleaned" using a script from Cleaning up the Default Hubot Installation.
We're using the following stack:
- NodeJs
- ES6
- Hubot
- NPM