Skip to content
A higher-level wrapper around the Github API. Intended for the browser.
JavaScript Other
Branch: master
Clone or download
j-rewerts Merge pull request #582 from tamer1an/patch-1
RegExp Fix for _requestAllPages
Latest commit 29c3c7a Sep 6, 2019

Maintainers wanted

Apply within


Downloads per month Latest version Gitter Travis Codecov

Github.js provides a minimal higher-level wrapper around Github's API.


   Data can be retrieved from the API either using callbacks (as in versions < 1.0)
   or using a new promise-based API. The promise-based API returns the raw Axios
   request promise.
import GitHub from 'github-api';

// unauthenticated client
const gh = new GitHub();
let gist = gh.getGist(); // not a gist yet
   public: true,
   description: 'My first gist',
   files: {
      "file1.txt": {
         content: "Aren't gists great!"
}).then(function({data}) {
   // Promises!
   let createdGist = data;
}).then(function({data}) {
   let retrievedGist = data;
   // do interesting things
var GitHub = require('github-api');

// basic auth
var gh = new GitHub({
   username: 'FOO',
   password: 'NotFoo'
   /* also acceptable:
      token: 'MY_OAUTH_TOKEN'

var me = gh.getUser(); // no user specified defaults to the user for whom credentials were provided
me.listNotifications(function(err, notifications) {
   // do some stuff

var clayreimann = gh.getUser('clayreimann');
clayreimann.listStarredRepos(function(err, repos) {
   // look at all the starred repos!

API Documentation

API documentation is hosted on github pages, and is generated from JSDoc; any contributions should include updated JSDoc.


Github.js is available from npm or unpkg.

npm install github-api
<!-- just github-api source (5.3kb) -->
<script src=""></script>

<!-- standalone (20.3kb) -->
<script src=""></script>


Github.js is tested on node's LTS and current versions.

You can’t perform that action at this time.