Skip to content

Code review is a vital pillar of the software development process.

License

Notifications You must be signed in to change notification settings

PicnicSupermarket/pr-leaderboard

Repository files navigation

PR Game

A leaderboard to rank developers based on their contributions to code reviewing, coupled with an Ethereum based cryptocurrency reward scheme.

Dashboard

About

The PR Game is a gamification of the code review process. We all love writing code, and some of us love reviewing code. But for a large number of us, code reviewing isn't how we necessarily want to spend our time but a necessity it is! The PR Game adds an extra incentive to code reviewing in the form of a cryptocurrency where developers mine coins based on their contributions to code reviews.

The default score is simply the ratio between the number of PRs that a developer has reviewed versus the number of PRs that they have authored. This score can easily be adopted in the pr_metrics.py to take into account other PR related metrics such as number or length of comments in the PR, or decaying PR lead time for example. The possibilities are numerous, whatever KPI it is you are looking to optimise.

Checkout the original blog post.

Setup

Configuration

To setup the PR Game for your organisation there are a few properties that need to be configured in the config.ini file.

GitHub

To scrape pull request information from your organisations GitHub you need to create a Github app organisation app then you need to configure the AccessToken and Organisation name in the config.ini file accordingly.

The dashboard is open to all users and authentication is up to you as the owner. Users who have a score below 1 aren't listed and their names are randomised. To allow for users in your organisation to sign into the dashboard to reveal their position then you need to setup and configure your GitHub app provide an OAuth flow. Once this has been done you can configure the Secret, ReturnUrl and ClientId accordingly in the config.ini.

Ethereum

The default PaymentWalletAddress in the config.ini is configured to be the same as which the Ethereum node is initialised. This account is gifted a large quantity of ETH and is responsible for paying out the developers periodically. The default developer account password is configured in PaymentWalletPassword and can be changed and updated by them via their wallet app.

Deploy Service

# Install JS dependencies
yarn --cwd web install

# Build JS
yarn --cwd web build

# Build Docker image
docker build . -t pr-game:latest

# Run Docker container
docker run -d -p 8081:8081 -p 9999:9999 -p 8545:8545 pr-game:latest

Run wallet

Download and install Mist Wallet. Then run:

mist --rpc http://node-ip:8545

About

Code review is a vital pillar of the software development process.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages