Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jonschlinkert/github-contributors

Generate a markdown or JSON list of contributors for a project using the GitHub API.
https://github.com/jonschlinkert/github-contributors

api contributor contributors github javascript json node nodejs

Last synced: 7 days ago
JSON representation

Generate a markdown or JSON list of contributors for a project using the GitHub API.

Awesome Lists containing this project

README

        

# github-contributors [![NPM version](https://img.shields.io/npm/v/github-contributors.svg?style=flat)](https://www.npmjs.com/package/github-contributors) [![NPM downloads](https://img.shields.io/npm/dm/github-contributors.svg?style=flat)](https://npmjs.org/package/github-contributors) [![Build Status](https://img.shields.io/travis/jonschlinkert/github-contributors.svg?style=flat)](https://travis-ci.org/jonschlinkert/github-contributors)

> Generate a markdown or JSON list of contributors for a project using the GitHub API.

## Install

Install with [npm](https://www.npmjs.com/):

```sh
$ npm install --save github-contributors
```

## Usage

```js
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:

```js
[{ 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:

```js
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`

* `list`
* `aligned`
* `table`

Here are some examples.

### list

Contributors from [jonschlinkert/micromatch](https://github.com/jonschlinkert/micromatch)

**Commits** / **Contributor**

* 253 [jonschlinkert](https://github.com/jonschlinkert)
* 4 [es128](https://github.com/es128)
* 1 [UltCombo](https://github.com/UltCombo)
* 1 [tomByrer](https://github.com/tomByrer)

### aligned list

Contributors from [jonschlinkert/gray-matter](https://github.com/jonschlinkert/gray-matter)

```bash
COMMITS / CONTRIBUTOR
------- | -----------
107 jonschlinkert
7 RobLoach
2 doowb
1 ianstormtaylor
```

### table

Contributors from [assemble/assemble](https://github.com/assemble/assemble)

| **Commits** | **Contributor**
|
| --- | --- |
| 949 | [jonschlinkert](https://github.com/jonschlinkert) |
| 577 | [doowb](https://github.com/doowb) |
| 11 | [adjohnson916](https://github.com/adjohnson916) |
| 7 | [Arkkimaagi](https://github.com/Arkkimaagi) |
| 4 | [bendrucker](https://github.com/bendrucker) |
| 2 | [avr](https://github.com/avr) |
| 2 | [thegreatsunra](https://github.com/thegreatsunra) |
| 2 | [StevenBlack](https://github.com/StevenBlack) |
| 2 | [xzyfer](https://github.com/xzyfer) |
| 2 | [ain](https://github.com/ain) |
| 1 | [prettyboymp](https://github.com/prettyboymp) |
| 1 | [asans](https://github.com/asans) |
| 1 | [bauerca](https://github.com/bauerca) |
| 1 | [jordanthomas](https://github.com/jordanthomas) |
| 1 | [pburtchaell](https://github.com/pburtchaell) |
| 1 | [oncletom](https://github.com/oncletom) |
| 1 | [tomcode](https://github.com/tomcode) |
| 1 | [tylerhowarth](https://github.com/tylerhowarth) |

## About

### Related projects

* [get-pkgs](https://www.npmjs.com/package/get-pkgs): Get the package.json for an array of repos from the npm registry, optionally filtering properties… [more](https://github.com/jonschlinkert/get-pkgs) | [homepage](https://github.com/jonschlinkert/get-pkgs "Get the package.json for an array of repos from the npm registry, optionally filtering properties using glob patterns.")
* [github-base](https://www.npmjs.com/package/github-base): JavaScript wrapper that greatly simplifies working with GitHub's API. | [homepage](https://github.com/jonschlinkert/github-base "JavaScript wrapper that greatly simplifies working with GitHub's API.")

### Contributing

Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](../../issues/new).

### Building docs

_(This document was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme) (a [verb](https://github.com/verbose/verb) generator), please don't edit the readme directly. Any changes to the readme must be made in [.verb.md](.verb.md).)_

To generate the readme and API documentation with [verb](https://github.com/verbose/verb):

```sh
$ npm install -g verb verb-generate-readme && verb
```

### Running tests

Install dev dependencies:

```sh
$ npm install -d && npm test
```

### Author

**Jon Schlinkert**

* [github/jonschlinkert](https://github.com/jonschlinkert)
* [twitter/jonschlinkert](http://twitter.com/jonschlinkert)

### License

Copyright © 2016, [Jon Schlinkert](https://github.com/jonschlinkert).
Released under the [MIT license](https://github.com/jonschlinkert/github-contributors/blob/master/LICENSE).

***

_This file was generated by [verb-generate-readme](https://github.com/verbose/verb-generate-readme), v0.1.30, on September 09, 2016._