Interact with the GitHub issues API
npm install ghissuesA Node.js library to interact with the GitHub issues API

- Node.js >= 20
``js
import * as ghissues from 'ghissues'
const auth = { token: 'your-github-token' }
// list all issues in a repo
const issues = await ghissues.list(auth, 'rvagg', 'jsonist')
console.log(issues)
// get issue data by number (not internal GitHub id)
const issue = await ghissues.get(auth, 'rvagg', 'nan', 123)
console.log(issue)
// create an issue
const newIssue = await ghissues.create(auth, 'rvagg', 'jsonist', {
title: 'New issue',
body: 'Pretty slick markdown'
})
console.log(newIssue)
// list all comments in an issue
const comments = await ghissues.listComments(auth, 'rvagg', 'jsonist', 47)
console.log(comments)
// create a comment
const comment = await ghissues.createComment(auth, 'rvagg', 'jsonist', 101, 'Whoa dude!')
console.log(comment)
`
The auth data is compatible with ghauth so you can connect them together:
`js
import ghauth from 'ghauth'
import * as ghissues from 'ghissues'
const auth = await ghauth({
configName: 'issue-lister',
scopes: ['user']
})
const issues = await ghissues.list(auth, 'rvagg', 'node-levelup')
console.log('Issues in rvagg/node-levelup:')
issues.forEach((i) => {
console.log('#%s: %s', i.number, i.title)
})
`
All methods return Promises.
List all issues in a repository. Returns an array of issue objects.
Get a single issue by number. Returns the issue object.
Create a new issue. data should contain title and optionally body`. Returns the created issue.
List all comments on an issue. Returns an array of comment objects.
Create a comment on an issue. Returns the created comment.
ghissues is Copyright (c) 2014-2025 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.