A few seconds.


Interact with the GitHub releases API

ghreleases Build Status js-standard-style

A node library to interact with the GitHub releases API.


list(auth, org, repo[, options], cb)

List all releases for a repo. Calls back with an array of releases.

const gh = require('ghreleases')
const auth = {
  token: '90230948aef88723eca2309880fea09789234',
  user: 'ralphtheninja'
gh.list(auth, 'level', 'leveldown', function (err, list) {

GitHub docs.

getLatest(auth, org, repo[, options], cb)

Get latest release.

gh.getLatest(auth, 'level', 'leveldown', function (err, release) {

GitHub docs.

getById(auth, org, repo, id[, options], cb)

Get data for a single release.

gh.getById(auth, 'level', 'leveldown', '1363866', function (err, release) {

GitHub docs.

getByTag(auth, org, repo, tag[, options], cb)

Get release by tag.

gh.getByTag(auth, 'level', 'leveldown', 'v1.2.2', function (err, release) {

GitHub docs.

create(auth, org, repo, data[, options], cb)

Create a release.

const data = {
  tag_name: '1.2.3-test',
  name: 'Release name for 1.2.3-test',
  body: 'Body text of release goes here'
gh.create(auth, 'level', 'leveldown', data, function (err, release) {

The release on GitHub would then look as follows:

1.2.3-test release

GitHub docs

uploadAssets(auth, org, repo, release, files[, options], cb)

Upload assets to a release. Calls back with an array of results for each upload request.

  • The release parameter accepts either a release id, 'latest' or a valid ref, e.g. 'tags/v1.0.0'
  • The files parameter is an array of absolute file paths that should be uploaded and associated with this release
const ref = 'tags/v1.3.0'
const files = [
gh.uploadAssets(auth, 'level', 'leveldown', ref, files, function (err, res) {

GitHub docs


For interacting with other parts of the GitHub API, also see the following repositories/modules:



Pincer is a project which aims to provide best library discovery tools for developers. We're growing day by day. We have only npm platform for now but we will add the others as much as we can.