
Company News
Socket Has Acquired Secure Annex
Socket has acquired Secure Annex to expand extension security across browsers, IDEs, and AI tools.
A Node.js wrapper for GitHub API.
Install via npm
$ npm install github4
or
Install via git clone
$ git clone git@github.com:kaizensoze/github4.git
$ cd node-github
$ npm install
Client API: https://kaizensoze.github.io/github4/
GitHub API: https://developer.github.com/v3/
Create test auth file for running tests/examples.
$ > test_auth.json
{
"token": "<TOKEN>"
}
Get all followers for user "defunkt":
var GitHubApi = require("github4");
var github = new GitHubApi({
// optional
debug: true,
protocol: "https",
host: "github.my-GHE-enabled-company.com", // should be api.github.com for GitHub
pathPrefix: "/api/v3", // for some GHEs; none for GitHub
timeout: 5000,
headers: {
"user-agent": "My-Cool-GitHub-App" // GitHub is happy with a unique user agent
}
});
github.user.getFollowingFromUser({
// optional:
// headers: {
// "cookie": "blahblah"
// },
user: "defunkt"
}, function(err, res) {
console.log(JSON.stringify(res));
});
Most GitHub API calls don't require authentication. As a rule of thumb: If you can see the information by visiting the site without being logged in, you don't have to be authenticated to retrieve the same information through the API. Of course calls, which change data or read sensitive information have to be authenticated.
You need the GitHub user name and the API key for authentication. The API key can be found in the user's Account Settings.
// basic
github.authenticate({
type: "basic",
username: USERNAME,
password: PASSWORD
});
// OAuth2
github.authenticate({
type: "oauth",
token: AUTH_TOKEN
});
// OAuth2 Key/Secret
github.authenticate({
type: "oauth",
key: CLIENT_ID,
secret: CLIENT_SECRET
})
Note: authenticate is synchronous because it only stores the
credentials for the next request.
Once authenticated you can update a user field like so:
github.user.update({
location: "Argentina"
}, function(err) {
console.log("done!");
});
Create a new authorization for your application giving it access to the wanted scopes you need instead of relying on username / password and is the way to go if you have two-factor authentication on.
For example:
X-GitHub-OTP header with the one-time-password you get on your token device.github.authorization.create({
scopes: ["user", "public_repo", "repo", "repo:status", "gist"],
note: "what this auth is for",
note_url: "http://url-to-this-auth-app",
headers: {
"X-GitHub-OTP": "two-factor-code"
}
}, function(err, res) {
if (res.token) {
//save and use res.token as in the Oauth process above from now on
}
});
Generate/update doc/tests.
$ node generate.js
$ npm install apidoc -g
$ apidoc -i doc/ -o apidoc/
Install mocha
$ npm install mocha -g
Run all tests
$ mocha
Or run a specific test
$ mocha test/issuesTest.js
MIT license. See the LICENSE file for details.
FAQs
NodeJS wrapper for the GitHub API
The npm package github4 receives a total of 87 weekly downloads. As such, github4 popularity was classified as not popular.
We found that github4 demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket has acquired Secure Annex to expand extension security across browsers, IDEs, and AI tools.

Research
/Security News
Socket is tracking cloned Open VSX extensions tied to GlassWorm, with several updated from benign-looking sleepers into malware delivery vehicles.

Product
Reachability analysis for PHP is now available in experimental, helping teams identify which vulnerabilities are actually exploitable.