node package manager
Painless code sharing. npm Orgs help your team discover, share, and reuse code. Create a free org »

ghissues

ghissues

Build Status

A node library to interact with the GitHub issues API

NPM

Example usage

const ghissues     = require('ghissues')
    , authOptions = { user: 'rvagg', token: '24d5dee258c64aef38a66c0c5eca459c379901c2' }
 
// list all issues in a repo 
ghissues.list(authOptions, 'rvagg', 'jsonist', function (err, issuelist) {
  // Array of issues data for 'rvagg/jsonist' 
  console.log(issuelist)
})
 
// get issue data by number (not internal GitHub id) 
ghissues.get(authOptions, 'rvagg', 'nan', 123, function (err, issue) {
  // object containing full issue #123 
  console.log(issue)
})
 
// create an issue 
var data = {
    title : 'New issue bro'
  , body  : 'Pretty **slick** `markdown`'
}
ghissues.create(authOptions, 'rvagg', 'jsonist', data, function (err, issue) {
  // data for new issue 
  console.log(issue)
})
 
// list all comments in an issue 
ghissues.listComments(authOptions, 'rvagg', 'jsonist', 47, function (err, commentlist) {
  // Array of comment data for 'rvagg/jsonist#47' 
  console.log(commentlist)
})
 
// create a comment 
var body = 'Whoa dude, this is awesomesauce!! :+1:'
ghissues.createComment(authOptions, 'rvagg', 'jsonist', 101, body, function (err, issue) {
  // data for new comment in 'rvagg/jsonist#101' 
  console.log(issue)
})

The auth data is compatible with ghauth so you can just connect them together to make a simple command-line application:

const ghauth      = require('ghauth')
    , ghissues    = require('ghissues')
    , authOptions = {
          configName : 'issue-lister'
        , scopes     : [ 'user' ]
      }
 
ghauth(authOptions, function (err, authData) {
  ghissues.list(authData, 'rvagg', 'node-levelup', function (err, list) {
    console.log('Issues in rvagg/node-levelup:')
    list.forEach(function (i) {
      console.log('#%s: %s', i.number, i.title) 
    })
  })
})

License

ghissues is Copyright (c) 2014 Rod Vagg @rvagg and licensed under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details.