Generate a markdown or JSON list of contributors for a project using the GitHub API.
Install
Install with npm:
$ npm install --save github-contributors
Usage
var contributors = require('github-contributors'); var repo = 'assemble/assemble'; var opts = {}; contributors(repo, opts, function(err, res) { if (err) console.log(err); // do stuff with res });
Contributors
The response is an array of contributor objects with this format:
[{ login: 'doowb', id: 995160, avatar_url: 'https://avatars.githubusercontent.com/u/995160?v=3', gravatar_id: '', url: 'https://api.github.com/users/doowb', html_url: 'https://github.com/doowb', followers_url: 'https://api.github.com/users/doowb/followers', following_url: 'https://api.github.com/users/doowb/following{/other_user}', gists_url: 'https://api.github.com/users/doowb/gists{/gist_id}', starred_url: 'https://api.github.com/users/doowb/starred{/owner}{/repo}', subscriptions_url: 'https://api.github.com/users/doowb/subscriptions', organizations_url: 'https://api.github.com/users/doowb/orgs', repos_url: 'https://api.github.com/users/doowb/repos', events_url: 'https://api.github.com/users/doowb/events{/privacy}', received_events_url: 'https://api.github.com/users/doowb/received_events', type: 'User', site_admin: false, contributions: 577 }]
authentication
You can avoid hitting the GitHub rate limit by passing a client ID and client secret on the options:
var opts = {id: process.env.CLIENT_ID, secret: process.env.CLIENT_SECRET}; contributors('assemble/assemble', opts, function(err, res) { if (err) console.log(err); // do stuff with res });
formatted list
Instead of JSON, get a markdown-formatted list by defining one of the following on options.format
listalignedtable
Here are some examples.
list
Contributors from jonschlinkert/micromatch
Commits / Contributor
- 253 jonschlinkert
- 4 es128
- 1 UltCombo
- 1 tomByrer
aligned list
Contributors from jonschlinkert/gray-matter
COMMITS / CONTRIBUTOR
------- | -----------
107 jonschlinkert
7 RobLoach
2 doowb
1 ianstormtaylortable
Contributors from assemble/assemble
| Commits | Contributor |
|---|---|
| 949 | jonschlinkert |
| 577 | doowb |
| 11 | adjohnson916 |
| 7 | Arkkimaagi |
| 4 | bendrucker |
| 2 | avr |
| 2 | thegreatsunra |
| 2 | StevenBlack |
| 2 | xzyfer |
| 2 | ain |
| 1 | prettyboymp |
| 1 | asans |
| 1 | bauerca |
| 1 | jordanthomas |
| 1 | pburtchaell |
| 1 | oncletom |
| 1 | tomcode |
| 1 | tylerhowarth |
About
Related projects
- get-pkgs: Get the package.json for an array of repos from the npm registry, optionally filtering properties… more | homepage
- github-base: JavaScript wrapper that greatly simplifies working with GitHub's API. | homepage
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Building docs
(This document was generated by verb-generate-readme (a verb generator), please don't edit the readme directly. Any changes to the readme must be made in .verb.md.)
To generate the readme and API documentation with verb:
$ npm install -g verb verb-generate-readme && verbRunning tests
Install dev dependencies:
$ npm install -d && npm test
Author
Jon Schlinkert
License
Copyright © 2016, Jon Schlinkert. Released under the MIT license.
This file was generated by verb-generate-readme, v0.1.30, on September 09, 2016.