Home

Awesome

Hubot Github

npm version Dependency Status

Give Hubot the ability to take control of Github

Hubot-GitHub gives Hubot the ability to take control of your github organization, such as creating repos or teams. With this script, Hubot can even list the details about your organization, teams, members and repos. The only dependency required is having a GitHub account! (oh and maybe Node.js and npm aswell).

FYI: This hubot-script will only work with slack right now

Suggested Setup

If you just wanted to use this hubot-script without having to create a special user in your organization, then l suggest that one of the owners of the organization creates a personal access token for the HUBOT_GITHUB_KEY. However this will mean that everything that hubot does, will come up as being done by that owner.

The ideal setup in my opinion that works best, is to create a special user called whatever your hubot is called. Then you make that bot user an owner of your organization, and get that bot user to create a personal access token for the HUBOT_GITHUB_KEY. So in the audit log, every event will appear as being done by your bot user. This means, as you give you bot user more abilities, you can properly monitor what exactly it is doing.

Installation

In hubot project repository, run:

$ npm install --save hubot-github

Then add hubot-github to your external-scripts.json:

[
  "hubot-github"
]

Configuration

Environmental variables

HUBOT_GITHUB_KEY   - Github Application Key (personal access token)
HUBOT_GITHUB_ORG  - Github Organization Name (the one in the url)
HUBOT_SLACK_ADMIN - Slack Admins who can use certain admin commands

Commands

Organization commands, hence gho (GitHub Organization)

hubot:
- gho - returns a summary of your organization
- gho list (team|repos|members) - returns a list of (members|teams|repos) in your org
- gho list public repos - returns a list of your orgs public repos
- gho create team <team name> - creates a team with the following name
- gho create repo <repo name>/<public|private> - create a repo with the following name and optional status
- gho add (members|repos) to team <team name> - adds a comma separated list of members or repos to the given team
- gho remove (members|repos) from team <team name> - removes comma list of members or repos from the given team
- gho delete team <team name> - deletes the given team from your org (doesn't delete the repos or members from your org)

Changelog

2015-03-09: Release Notes