contributor.io
Fetch counts of a user's contributions to various platforms (Github, NPM, Gem, CPAN, Nuget, ...)
Platform support
Current
- Github
- NPM
- Rubygems
- CPAN
- Nuget
Future
- Bower
- Component
Usage
...Via API
Send a GET
request to contributor.io/api with each platform/username you'd like as a query parameter.
...As a server
# install dependencies npm install # start server node server # send a request! curl localhost:5000/api?github=myGithubUsername&npm=myNpmUsername# => { github: 42, npm: 66 }
To add Github authentication (optional, increase request limit):
-
Register a Github Application to receive an oauth2
id
andsecret
. -
Define
process.env.github_oauth_id
andprocess.env.github_oauth_secret
somewhere (eg. at the top ofcontributor.coffee
) and set them equal to the keys you got in Step #1.
...Or as a package
# install dependencies npm install
And in your (coffee)script:
contributor = require 'contributor.io' contributor gem: 'bcherny' github: 'eighttrackmind' npm: 'bcherny' cpan: 'FAYLAND' nuget: 'microsoft'then # returns an object with counts, eg.: # { # gem: 20 # github: 50 # npm: 45 # cpan: 67 # nuget: 818 # }
Get supported platforms
contributor = require 'contributor.io' contributorsupport #=> returns an array of supported platforms
Environment support
- Node
- CommonJS
Contributing platform support
- Publish an NPM module which exports a single function that:
- Accepts one or more arguments. The first must be the
username
and the rest must be optional. - Returns a deferred promise.
- A resolved promise must return a single
Number
(aka. the number of contributions). - A rejected promise can return anything, but should ideally be a descriptive
Object
. - Ensure that your module is unit tested, and that promises are resolved and rejected appropriately.
- Accepts one or more arguments. The first must be the
- Fork contributor.io.
- Install your dependency with
npm install --save myNewModuleName
. - Require your module in the list at the top of
contributor.coffee
. - Add a human-readable description to the list at the top of
index.coffee
. - Add it to the list of supported modules in
README.md
, and as a keyword inpackage.json
. - Commit and send a pull request! :)