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
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 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="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>
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.