Track velocity metrics, earn achievements, compete on leaderboards. Generate beautiful dashboards that make your contributions shine.
$ 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
Everything you need to track and gamify developer productivity
Track commits, PRs, reviews, issues, lines of code, and more across all repositories
Earn points, unlock 115 achievements, climb leaderboards, progress through tiers
Configure teams, see aggregated metrics, team leaderboards, and member breakdowns
Automate analysis in CI/CD, deploy to GitHub Pages, upload as artifacts
Modern Vue.js SPA with dark/light mode, responsive design, interactive charts
Local git analysis, smart caching, concurrent API requests for maximum speed
Automatically excludes Dependabot, Renovate, and other bot contributions
Personal Access Token or GitHub App authentication with env var support
Map multiple git emails and names to single GitHub accounts for accurate stats
Comprehensive developer activity metrics in real-time
115 achievements to earn across 26 categories
1 commit
100 commits
1000 commits
50 PRs opened
100 reviews
<1h review time
30-day streak
25 midnight commits
...and 107 more achievements to unlock!
Get started in under a minute
go install github.com/lukaszraczylo/git-velocity/cmd/git-velocity@latest
Download from the releases page.
Automate your velocity reports in CI/CD
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
github_token - API access (required)config_file - Config pathoutput_dir - Output directoryverbose - Verbose outputoutput_dir - Generated dashboard pathRequired permissions for each authentication method
| 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.
More secure with granular control over permissions.
| 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 |
Customize everything via 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"]
Simple and powerful command-line interface
Analyze repositories and generate dashboard
git-velocity analyze --config .git-velocity.yaml --output ./dist --verbose
Start local preview server
git-velocity serve --directory ./dist --port 8080
Print version information
git-velocity version
Start tracking your velocity, earn achievements, and make development more engaging today.