2018-08-24 05:04:43 +00:00
# [SourceCred](https://sourcecred.io)
2018-02-04 20:04:40 +00:00
2018-10-03 18:43:10 +00:00
[![Build Status ](https://circleci.com/gh/sourcecred/sourcecred.svg?style=svg )](https://circleci.com/gh/sourcecred/sourcecred)
2019-03-26 23:01:39 +00:00
[![Discourse topics ](https://img.shields.io/discourse/https/discourse.sourcecred.io/topics.svg )](https://discourse.sourcecred.io)
2018-06-08 19:30:44 +00:00
[![Discord ](https://img.shields.io/discord/453243919774253079.svg )](https://discord.gg/tsBTgc9)
2019-07-05 19:10:02 +00:00
[![Greenkeeper badge ](https://badges.greenkeeper.io/sourcecred/sourcecred.svg )](https://greenkeeper.io/)
2018-03-02 23:06:46 +00:00
2018-08-24 05:04:43 +00:00
SourceCred creates reputation networks for open-source projects.
Any open-source project can create its own _cred_ , which is a reputational metric showing how much credit contributors deserve for helping the project.
To compute cred, we organize a project’ s contributions into a graph, whose edges connect contributions to each other and to contributors.
We then run PageRank on that graph.
2018-07-04 08:11:23 +00:00
2018-08-30 02:16:57 +00:00
To learn more about SourceCred’ s vision and values, please check out [our website] and our [forum].
One good forum post to start with is [A Gentle Introduction to Cred].
2018-08-24 05:04:43 +00:00
For an example of SourceCred in action, you can see SourceCred’ s own [prototype cred attribution][prototype].
2018-07-04 08:11:23 +00:00
2018-08-24 05:04:43 +00:00
[our website]: https://sourcecred.io/
[prototype]: https://sourcecred.io/prototype/
2019-03-26 23:01:39 +00:00
[A Gentle Introduction to Cred]: https://discourse.sourcecred.io/t/a-gentle-introduction-to-cred/20
2018-07-04 08:11:23 +00:00
2018-08-24 05:04:43 +00:00
## Current Status
2018-04-09 05:49:54 +00:00
2018-08-24 05:04:43 +00:00
We have a [prototype] that can generate a cred attribution based on GitHub interactions (issues, pull requests, comments, references, etc.).
We’ re working on adding more information to the prototype, such as tracking modifications to individual files, source-code analysis, GitHub reactions, and more.
2018-07-04 08:11:23 +00:00
2018-08-24 05:04:43 +00:00
### Running the Prototype
2018-04-09 05:49:54 +00:00
2018-08-24 05:04:43 +00:00
If you’ d like to try it out, you can run a local copy of SourceCred as follows.
First, make sure that you have the following dependencies:
2018-04-09 05:49:54 +00:00
2019-07-06 14:21:10 +00:00
- Install [Node] (tested on v12.x.x and v10.x.x).
2018-08-24 05:04:43 +00:00
- Install [Yarn] (tested on v1.7.0).
- Create a [GitHub API token]. No special permissions are required.
2018-08-30 15:58:32 +00:00
- For macOS users: Ensure that your environment provides GNU
coreutils. [See this comment for details about what, how, and
why.][macos-gnu]
2018-04-09 05:49:54 +00:00
2018-08-24 05:04:43 +00:00
[Node]: https://nodejs.org/en/
[Yarn]: https://yarnpkg.com/lang/en/
[GitHub API token]: https://github.com/settings/tokens
2018-04-09 05:49:54 +00:00
2018-08-30 15:58:32 +00:00
[macos-gnu]: https://github.com/sourcecred/sourcecred/issues/698#issuecomment-417202213
2018-08-24 05:04:43 +00:00
Then, run the following commands to clone and build SourceCred:
2018-04-09 05:49:54 +00:00
2018-07-04 08:11:23 +00:00
```
git clone https://github.com/sourcecred/sourcecred.git
cd sourcecred
yarn install
yarn backend
2018-07-28 03:59:54 +00:00
export SOURCECRED_GITHUB_TOKEN=YOUR_GITHUB_TOKEN
2018-07-28 06:44:41 +00:00
node bin/sourcecred.js load REPO_OWNER/REPO_NAME
2018-07-24 20:38:40 +00:00
# this loads sourcecred data for a particular repository
2019-01-11 00:52:08 +00:00
# it can take a few mins to run and will exit when finished
2018-07-04 08:11:23 +00:00
yarn start
2018-08-24 05:04:43 +00:00
# then navigate to localhost:8080 in your browser
2018-07-04 08:11:23 +00:00
```
2018-04-09 05:49:54 +00:00
2018-07-24 20:38:40 +00:00
For example, if you wanted to look at cred for [ipfs/js-ipfs], you could run:
2018-08-24 05:04:43 +00:00
2018-07-24 20:38:40 +00:00
```
2018-07-28 03:59:54 +00:00
$ export SOURCECRED_GITHUB_TOKEN=0000000000000000000000000000000000000000
2018-07-28 06:44:41 +00:00
$ node bin/sourcecred.js load ipfs/js-ipfs
2018-07-24 20:38:40 +00:00
```
2018-07-28 03:59:54 +00:00
replacing the big string of zeros with your actual token.
2018-07-24 20:38:40 +00:00
[ipfs/js-ipfs]: https://github.com/ipfs/js-ipfs
2018-08-29 21:52:26 +00:00
You can also combine data from multiple repositories into a single graph.
To do so, pass multiple repositories to the `load` command, and specify an “output name” for the repository.
For instance, the invocation
```
node bin/sourcecred.js load ipfs/js-ipfs ipfs/go-ipfs --output ipfs/meta-ipfs
```
will create a graph called `ipfs/meta-ipfs` in the cred explorer, containing the combined contents of the js-ipfs and go-ipfs repositories.
2018-08-24 05:04:43 +00:00
## Early Adopters
2018-04-09 05:49:54 +00:00
2018-08-24 05:04:43 +00:00
We’ re looking for projects who want to be early adopters of SourceCred!
2018-08-30 00:51:54 +00:00
If you’ re a maintainer of an open-source project and would like to start using SourceCred, please reach out to us on our [Discord] or our [forum].
2018-08-24 05:04:43 +00:00
## Contributing
We’ d love to accept your contributions!
2018-08-30 00:51:54 +00:00
You can reach out to us by posting on our [forum], or chatting with us on [Discord].
We'd be happy to help you get started and show you around the codebase.
Please also take a look at our [contributing guide].
2018-08-24 05:04:43 +00:00
2019-01-15 19:51:53 +00:00
If you’ re looking for a place to start, we’ ve tagged some [good first issues].
2018-08-02 20:58:06 +00:00
2019-07-05 19:10:02 +00:00
[forum]: https://discourse.sourcecred.io/
2018-07-24 20:38:40 +00:00
[Discord]: https://discord.gg/tsBTgc9
2018-08-02 20:58:06 +00:00
[contributing guide]: https://github.com/sourcecred/sourcecred/blob/master/CONTRIBUTING.md
2019-01-15 19:51:53 +00:00
[good first issues]: https://github.com/sourcecred/sourcecred/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
2018-08-24 05:04:43 +00:00
2018-09-27 02:28:41 +00:00
## License
SourceCred is dual-licensed under Apache 2.0 and MIT terms:
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or < https: // www . apache . org / licenses / LICENSE-2 . 0 > )
* MIT License ([LICENSE-MIT](LICENSE-MIT) or < https: // opensource . org / licenses / MIT > )
2018-08-24 05:04:43 +00:00
## Acknowledgements
We’ d like to thank [Protocol Labs] for funding and support of SourceCred.
2019-01-30 12:28:25 +00:00
We’ d also like to thank the many open-source communities that produced the software that SourceCred is built on top of, such as [Git] and [Node][Node github].
2018-08-24 05:04:43 +00:00
[Protocol Labs]: https://protocol.ai
2019-01-26 00:45:10 +00:00
[Git]: https://github.com/git/git
2019-01-30 12:28:25 +00:00
[Node github]: https://github.com/nodejs/node