npm install githubot
Use it in your Hubot script:
module.exports= (robot) ->github=require('githubot')(robot)Or use it on its own:
github=require('githubot')Make any call to the Github v3 API, get the parsed JSON response:
github.get"https://api.github.com/users/iangreenleaf/gists", (gists) ->console.log gists[0].descriptiongithub.get"users/foo/repos", {type:"owner"}, (repos) ->console.log repos[0].urldata= { description:"A test gist", public:true, files: { "abc.txt": { content:"abcdefg" } } }
github.post"gists", data, (gist) ->console.loggist.urlIf process.env.HUBOT_GITHUB_TOKEN is present, you're automatically authenticated. Sweet!
If you don't have a token yet, run this:
curl -i https://api.github.com/authorizations -d '{"scopes":["repo"]}' -u "yourusername"
Enter your Github password when prompted. When you get a response, look for the "token" value.
Mostly a work in progress, but here's a taste of what I have in mind:
gh.branches"foo/bar", (branches) ->console.log branches[0].name# Branch from mastergh.branches( "foo/bar" ).create"my_radical_feature", (branch) ->console.logbranch.sha# Branch from another branchgh.branches( "foo/bar" ).create"even_more_radical", from:"my_radical_feature", (branch) ->console.logbranch.shagh.branches( "foo/bar" ).delete"my_radical_feature", ->console.log"Deleted my branch!"Hubot will log errors if a request fails.
If process.env.HUBOT_GITHUB_USER is present, we can help you guess a repo's full name:
github.qualified_repo"githubot"# => "iangreenleaf/githubot"This will happen with the bespoke methods as well:
gh.branches"githubot", (branches) ->HUBOT_GITHUB_TOKEN: GitHub API token. Required to perform authenticated actions.HUBOT_GITHUB_USER: Default GitHub username to use if one is not given.HUBOT_GITHUB_API: The base API URL. This is useful for Enterprise Github installations.For example,
HUBOT_GITHUB_API='http://myprivate.github.int'HUBOT_CONCURRENT_REQUESTS: Limits the allowed number of concurrent requests to the GitHub API. Defaults to 20.
