Git Velocity Logo

Turn Your GitHub Activity
Into a Game

Track velocity metrics, earn achievements, compete on leaderboards. Generate beautiful dashboards that make your contributions shine.

Version License Go Report
terminal
$ git-velocity analyze --config .git-velocity.yaml
Fetching data from GitHub...
Processing 3 repositories...
Calculating scores and achievements...
Generated dashboard at ./dist

$ git-velocity serve --port 8080
Starting preview server at http://localhost:8080
115
Achievements
15+
Metrics Tracked
10x
Faster with Local Git
100%
Open Source

Powerful Features

Everything you need to track and gamify developer productivity

Comprehensive Metrics

Track commits, PRs, reviews, issues, lines of code, and more across all repositories

Gamification Engine

Earn points, unlock 115 achievements, climb leaderboards, progress through tiers

Team Analytics

Configure teams, see aggregated metrics, team leaderboards, and member breakdowns

GitHub Action

Automate analysis in CI/CD, deploy to GitHub Pages, upload as artifacts

Beautiful Dashboard

Modern Vue.js SPA with dark/light mode, responsive design, interactive charts

Blazing Fast

Local git analysis, smart caching, concurrent API requests for maximum speed

Bot Filtering

Automatically excludes Dependabot, Renovate, and other bot contributions

Flexible Auth

Personal Access Token or GitHub App authentication with env var support

User Aliases

Map multiple git emails and names to single GitHub accounts for accurate stats

What Gets Tracked

Comprehensive developer activity metrics in real-time

Commits

  • Total commit count
  • Lines added & deleted
  • Files changed
  • Commits with tests

Pull Requests

  • PRs opened, merged, closed
  • Average PR size
  • Time to merge
  • Perfect PRs (no changes requested)

Code Reviews

  • Reviews given
  • Review comments
  • Approvals & change requests
  • Average response time

Activity Patterns

  • Active days & streaks
  • Early bird / night owl commits
  • Weekend activity
  • Repositories contributed

Unlock Achievements

115 achievements to earn across 26 categories

First Steps

1 commit

Committed

100 commits

Code Warrior

1000 commits

Merge Master

50 PRs opened

Review Guru

100 reviews

Speed Demon

<1h review time

Month Master

30-day streak

Nosferatu

25 midnight commits

...and 107 more achievements to unlock!

Installation

Get started in under a minute

Go Install (Recommended)

go install github.com/lukaszraczylo/git-velocity/cmd/git-velocity@latest

Download Binary

Download from the releases page.

macOS (amd64, arm64) Linux (amd64, arm64) Windows (amd64)

GitHub Action

Automate your velocity reports in CI/CD

Workflow Example

name: Git Velocity Report

on:
  schedule:
    - cron: '0 0 * * 1'  # Weekly on Monday
  workflow_dispatch:      # Manual trigger

jobs:
  analyze:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Run Git Velocity Analysis
        uses: lukaszraczylo/git-velocity@v1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          config_file: '.git-velocity.yaml'
          output_dir: './velocity-report'

      - name: Deploy to GitHub Pages
        uses: peaceiris/actions-gh-pages@v4
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          publish_dir: ./velocity-report

Inputs

  • github_token - API access (required)
  • config_file - Config path
  • output_dir - Output directory
  • verbose - Verbose output

Outputs

  • output_dir - Generated dashboard path
Features
  • Docker-based (fast startup)
  • Multi-arch (amd64/arm64)
  • Pre-built image from GHCR

GitHub Token Permissions

Required permissions for each authentication method

Personal Access Token (Classic)

Scope Required Description
repo Yes Full access to private repositories
read:org If using patterns Required for pattern: "*" org listing

For public repos only, public_repo scope is sufficient.

Fine-Grained Token (Recommended)

More secure with granular control over permissions.

Repository Permissions

  • Contents: Read
  • Pull requests: Read
  • Issues: Read
  • Metadata: Read (auto)

Account Permissions

  • Email addresses: Read

GitHub App Authentication

Repository Permissions

  • Contents: Read
  • Pull requests: Read
  • Issues: Read
  • Metadata: Read

Organization Permissions

  • Members: Read (if using patterns)

Account Permissions

  • Email addresses: Read

API Endpoints Used

Endpoint Purpose
GET /orgs/{org}/repos List organization repositories
GET /repos/{owner}/{repo}/commits Fetch commit history
GET /repos/{owner}/{repo}/commits/{sha} Fetch commit details with diff
GET /repos/{owner}/{repo}/pulls List pull requests
GET /repos/{owner}/{repo}/pulls/{n}/reviews Fetch PR reviews
GET /repos/{owner}/{repo}/issues List issues
GET /users/{username} Fetch user profile

Configuration

Customize everything via YAML

.git-velocity.yaml

version: "1.0"

auth:
  github_token: "${GITHUB_TOKEN}"
  # Or use GitHub App authentication:
  # github_app:
  #   app_id: 123456
  #   installation_id: 789012
  #   private_key_path: "./private-key.pem"

repositories:
  - owner: "your-org"
    name: "your-repo"
  - owner: "your-org"
    pattern: "*"  # All repos in org

date_range:
  start: "2024-01-01"
  end: "2024-12-31"

teams:
  - name: "Backend Team"
    members: ["dev1", "dev2", "dev3"]
    color: "#3B82F6"
  - name: "Frontend Team"
    members: ["dev4", "dev5"]
    color: "#10B981"

scoring:
  enabled: true
  points:
    commit: 10
    commit_with_tests: 15
    pr_opened: 25
    pr_merged: 50
    pr_reviewed: 30
    review_comment: 5
    fast_review_1h: 50
    fast_review_4h: 25

output:
  directory: "./dist"
  format: ["html", "json"]
  deploy:
    gh_pages: true
    artifact: true

cache:
  enabled: true
  directory: "./.cache"
  ttl: "24h"

options:
  concurrent_requests: 5
  include_bots: false
  user_aliases:
    - github_login: "johndoe"
      emails: ["john@work.com", "john@personal.com"]

CLI Commands

Simple and powerful command-line interface

analyze

Analyze repositories and generate dashboard

git-velocity analyze --config .git-velocity.yaml --output ./dist --verbose

serve

Start local preview server

git-velocity serve --directory ./dist --port 8080

version

Print version information

git-velocity version

Ready to Gamify Your Git?

Start tracking your velocity, earn achievements, and make development more engaging today.