Skip to content
A higher-level wrapper around the Github API. Intended for the browser.
JavaScript Other
Latest commit 44c072c Jun 27, 2016 @mainiak mainiak committed with AurelioDeRosa chore: Added protocol in CDN example of the README
closes #356

README.md

Github.js

Downloads per month Latest version Gitter Travis

Github.js provides a minimal higher-level wrapper around Github's API. It was concieved in the context of Prose, a content editor for GitHub.

Read the docs

Installation

Github.js is available from npm or npmcdn.

npm install github-api
<!-- just github-api source (5.3kb) -->
<script src="https://npmcdn.com/github-api/dist/GitHub.min.js"></script>

<!-- standalone (20.3kb) -->
<script src="https://npmcdn.com/github-api/dist/GitHub.bundle.min.js"></script>

 Compatibility

Github.js is tested on Node:

  • 6.x
  • 5.x
  • 4.x
  • 0.12

GitHub Tools

The team behind Github.js has created a whole organization, called GitHub Tools, dedicated to GitHub and its API. In the near future this repository could be moved under the GitHub Tools organization as well. In the meantime, we recommend you to take a look at other projects of the organization.

Samples

/*
   Data can be retrieved from the API either using callbacks (as in versions < 1.0)
   or using a new promise-based API. For now the promise-based API just returns the
   raw HTTP request promise; this might change in the next version.
 */
import GitHub from 'github-api';

// unauthenticated client
const gh = new GitHub();
let gist = gh.getGist(); // not a gist yet
gist.create({
   public: true,
   description: 'My first gist',
   files: {
      "file1.txt": {
         contents: "Aren't gists great!"
      }
   }
}).then(function({data}) {
   // Promises!
   let gistJson = data;
   gist.read(function(err, gist, xhr) {
      // if no error occurred then err == null

      // gistJson === httpResponse.data

      // xhr === httpResponse
   });
});
import GitHub from 'github-api';

// basic auth
const gh = new GitHub({
   username: 'FOO',
   password: 'NotFoo'
});

const me = gh.getUser();
me.listNotifications(function(err, notifcations) {
   // do some stuff
});

const clayreimann = gh.getUser('clayreimann');
clayreimann.getStarredRepos()
   .then(function({data: reposJson}) {
      // do stuff with reposJson
   });
var GitHub = require('github-api');

// token auth
var gh = new GitHub({
   token: 'MY_OAUTH_TOKEN'
});

var yahoo = gh.getOrganization('yahoo');
yahoo.getRepos(function(err, repos) {
   // look at all the repos!
})
Something went wrong with that request. Please try again.