A higher-level wrapper around the Github API. Intended for the browser.
JavaScript Other
Latest commit 6ec1d0b Nov 30, 2016 @mathieudutour mathieudutour committed with clayreimann chore: fix tests and bump to 3.x (#401)
* add getContributorStats
* add labels methods
* add updateStatus and updateRepository method
* add project api and fix tests
* improve release script
* remove prepublish script
* request all pages for cards
* add getEmails
* remove polyfill
* drop support for node < 4 / test on node 4-6
* add coverage
* remove clearRepo

README.md

Github.js

Downloads per month Latest version Gitter Travis Codecov

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

Usage

/*
   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
gist.create({
   public: true,
   description: 'My first gist',
   files: {
      "file1.txt": {
         content: "Aren't gists great!"
      }
   }
}).then(function({data}) {
   // Promises!
   let createdGist = data;
   return gist.read();
}).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.

Installation

Github.js is available from npm or unpkg.

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

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

Compatibility

Github.js is tested on Node.js:

  • 6.x

Note: Github.js uses Promise, hence it will not work in Node.js < 4 without polyfill.