Git Product home page Git Product logo

wdd-hubot's Introduction

WDD-Hubot

Code Climate

This is a version of GitHub's Campfire bot, Hubot.. He's pretty and cool under the control of Full Sail University's Staff and Students (until he's fully self-aware).

This version is designed to be deployed on Heroku.

Conventions in this ReadMe

Code that you need to substitute will be written in angle brackets, like this: hubot I am <your GitHub username>. In this example, you'd substitute your GitHub username in the angle brackets.

The symbol for your terminal prompt will be $, but $ could also used to denote an environmental variable. When $ is displayed first thing with a space immediately following it, you don't type it into the terminal. You would enter the following into your terminal to display what username you were currently using:

$ whoami

You would enter the following into the terminal to figure out the search path for commands:

$ echo $PATH

Requirements

  • Xcode
  • Homebrew
  • Node.js
  • Redis
  • Heroku
  • Git
  • GitHub

These requirements and installation instructions are intended for a OS X local Development Environment.

Local Environment Installing Instructions

Xcode

Install Xcode from the Apple App Store

Once Xcode has fully installed, run the following command in terminal (in any directory) to install the Xcode Developer Tool that Heroku will use.

$ xcode-select --install

Homebrew

Homebrew simplifies managing the packages and dependencies that you'll need in a local development environment.

To install Homebrew, paste the following into your terminal prompt:

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

NodeJS

Use brew (short for Homebrew) to install Node.js and its bundled package manager, NPM. In your terminal, type:

$ brew install node

To check for a successful install, type $ node -v, which should give you a version >= v0.12.7. Then type $ npm -v which should give you a version >= 2.13.2.

Heroku

Create an account with Heroku.com

Post the email you used to signup to Heroku to the Slack Group. This will allow me to add your user to the Hubot App on my account.

Install the Heroku Toolbelt

Authenticate with Heroku for the first time using the command line:

$ heroku login

Enter you user credentials and you should see the message Authentication successful.. Alternatively, you may be presented with a message about a Public Key. This is the key we generated and shared with GitHub previously and there are two different messages that may be displayed asking you how to proceed:

Could not find an existing public key. Would you like to generate one? [Yn]

In this case a ssh key was not found on your system and Heroku needs to generate one for you, simply press Y and Enter.

If you have multiple ssh keys on your computer (likely if you have previously used the GitHub GUI App) you are presented with a numbered list of each of your keys and asked to select one to use.

Select any option that does not have GitHub in the name.

GitHub

Fork the WDD-Hubot Repo on GitHub.

Notate, for later use, the SSH clone URL for the forked repo that was just created on your account.

In Terminal, navigate to where you want to house the code from Hubot. Once prepared run the Heroku command to clone and download Hubot's files to your local environment

$ heroku git:clone -a hubot-staging

Navigate into the newly cloned folder called Hubot, note that it is already a git repo. Add a new remote to the forked repo you created. It should look like this next command, but with your SSH clone URL you notated previously.

$ git remote add github <SSH Clone URL to your fork>

This connects your own code base to your own forked repo. You will be using this forked repo to submit your code for review.

Unpack Hubot

Navigate to your Hubot folder and run the node command to install all dependencies:

$ npm install

Redis

We'll install Redis to use as Hubot's "brain". Redis in a key-value database that operates in its host's memory. To install Redis, type:

$ brew install redis

Test that your redis brain was successfully installed by typing $ redis-server -v, which should result in a version >= v=3.0.3.

Local Testing

You can test Hubot locally by running the following in a new terminal tab / window. First turn on the Bot's Brain server.

$ redis-server

Linux/Unix reminder: You can terminate any active script with Ctrl-C. This is how to turn of the redis server or ends a Command Line Interface (CLI) session with Hubot.

In a separate terminal tab / window navigate to your Hubot folder and run the command:

$ bin/hubot

You'll see some start up output about where your scripts come from and a prompt such as:

Hubot> [Tue Mar 25 2014 03:33:51 GMT-0400 (EDT)] WARNING The HUBOT_AUTH_ADMIN environment variable not set
[Tue Mar 25 2014 03:33:51 GMT-0400 (EDT)] INFO Initializing new data for brain
Hubot>

The HUBOT_AUTH_ADMIN environment variable not set error is normal and is required for our development setup. Just press enter and you can write messages directly to your local, private copy of Hubot.

If you see redis connection errors (shown below) your redis server is likely not currently running.

ERROR [Error: Redis connection to localhost:6379 failed - connect ECONNREFUSED]

Once you are up and running with a prompt you can interact with Hubot by typing hubot help.

Hubot> hubot help

Hubot> animate me <query> - The same thing as `image me`, except adds a few
convert me <expression> to <units> - Convert expression to given units.
help - Displays all of the help commands that Hubot knows about.
...

Development

Take a look at the scripts in the ./scripts folder for examples. Add whatever functionality you want Hubot to have. Read up on what you can do with Hubot in the Scripting Guide.

wdd-hubot's People

Contributors

33jake avatar afigueroa avatar arturoalquicira avatar austinemayer avatar bogoroh avatar bryan0578 avatar chadhales avatar chapoton avatar davygxyz avatar drewk2525 avatar eddiegemayel avatar emilyvanvlerah avatar hb08 avatar headshotboom avatar hollyos avatar istacy avatar jbrehm076 avatar jjairo92 avatar jjhales avatar kbeazer avatar lyteiahf1 avatar matthewbeyer avatar phfullsail avatar reactivepixel avatar russ93 avatar sethhealy avatar sweetdlight avatar swilliamsfsu avatar taylorcawiezell avatar tstark2 avatar

Watchers

 avatar  avatar

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.