Skip to content
Code review is a vital pillar of the software development process.
JavaScript Vue Python Dockerfile Shell HTML
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
web
.gitignore
.travis.yml
Dockerfile
LICENSE.md
Pipfile
Pipfile.lock
README.md
config.ini
genesis.json
master-wallet
pr_metrics.py
run.sh

README.md

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
You can’t perform that action at this time.