Turn Your Git Activity Into an NBA Season
Transform your team's Git commits into engaging NBA-style competition with stats, leaderboards, awards, fantasy league, and Play of the Day highlights.

Power-Packed Features
Everything you need to gamify your team's development
NBA-Style Metrics
Transform commits into basketball stats - PTS, REB, AST, BLK, STL, TOV
Automated Awards
Player of the Week, MVP, Most Improved - celebrate achievements automatically
Fantasy League
Draft players and compete based on their real commit stats during seasons
Play of the Day
Highlight the best commit of each day to inspire your team
Hall of Fame
Honor retired players and preserve achievement history forever
100% Self-Hosted
Your code never leaves your infrastructure - complete data privacy
Simple Setup, Powerful Results
After installing The Git League, get your commit data flowing with the Python Client
(Installation instructions below ๐)
๐ Install the Python Client
Get gitleague-client and configure it with your API key
Point to Your Repos
Add Git repositories (local, SSH, or HTTPS) in repos.yaml
๐ค Sync Your Commits
Run "gitleague-client sync" to push all commit data instantly
๐ Watch the Magic Happen
See NBA metrics, leaderboards, awards, and stats calculated in real-time
GitHub Stars
Growing
Open Source
License
Self-Hosted
Private
Setup Time
Minutes
๐ Installation Overview
Three simple steps from zero to a fully functional Git League with data collection
๐ Complete Installation Flow
The Git League runs as a self-hosted stack on your machine or server. Once installed and configured, you'll use the Python client on your local machine to submit commit data to the running instance.
Install Docker
Docker is required to run The Git League stack
# Download Docker from https://www.docker.com/products/docker-desktop# Or via package manager on Linux:apt-get install docker.io docker-compose
Setup The Git League
Clone the repo and start the stack
git clone https://github.com/Boblebol/TheGitLeague.gitcd TheGitLeaguecp .env.example .envnano .env # Configure settingsdocker-compose up -d
http://localhost:3000Install Python Client
Get the client on your local machine
pip install gitleague-client# Or from source:git clone https://github.com/Boblebol/TheGitLeague.gitcd TheGitLeague/gitleague-clientpip install -e .
System Architecture
๐ฅ๏ธ Server (Docker)
- โข Next.js Frontend
- โข FastAPI Backend
- โข PostgreSQL Database
- โข Redis Cache
๐ป Client (Python)
- โข gitleague-client CLI
- โข Local Git repos
- โข API Key auth
- โข Data submission
Complete Data Collection Workflow
gitleague-client sync to push commits๐ Python Client
Push commits from your local machine with a lightweight CLI tool
๐ The Essential Tool for Data Collection
The gitleague-client is how your team's commit data gets into The Git League. Without it, your repositories stay invisible. This secure, push-based Python CLI extracts commits from your Git repos and submits them to power your leaderboards, stats, and awards.
How gitleague-client Works
A secure, push-based Python package that commissioners and developers use to submit commits directly from their local machines. No pull-based Celery workers โ just a simple CLI that extracts commits from your Git repos and pushes them via API to feed The Git League with fresh data.
Key Benefits
PAT Tokens Stay Local
GitHub/GitLab credentials never leave your machine
Fast & Efficient
Incremental syncing with deduplication and batch processing
Simple Configuration
YAML-based setup, easy to version control
Dry-Run Mode
Preview what will be synced before sending data
Quick Start
Create your repos.yaml configuration with API key
Validate repositories and API credentials
Push all commits to The Git League
How Your Data Flows
Extract Local Commits
Client scans your Git repositories and extracts commit metadata
Batch & Deduplicate
Commits are batched together and duplicates are removed automatically
Push to The Git League
Data is securely transmitted via API with your authentication credentials
Automatic Processing
Stats calculated, leaderboards updated, awards assigned instantly
Real-World Use Cases
Enterprise Teams
Sync commits from multiple repositories across the organization without exposing credentials to the cloud
Continuous Integration
Automate data collection in CI/CD pipelines with scheduled sync jobs
Real-Time Analytics
Push fresh commit data regularly to power live leaderboards and instant stats
Privacy-First Deployment
Maintain 100% data privacy by controlling when and what data gets submitted
Example Configuration (repos.yaml)
api:
url: http://localhost:8000
key: tgl_xxxxxxxxxxxxx_yyyyyyyyyyyyy
repositories:
- name: "backend"
path: /home/dev/projects/my-backend
- name: "frontend"
path: /home/dev/projects/my-frontend
- name: "infra"
path: /home/dev/projects/infrastructureReady to Start Pushing Data?
Get your team's commit data into The Git League in minutes. The client handles all the heavy lifting โ from extraction to batching to submission.
Enterprise-Grade Tech Stack
Built with modern, battle-tested technologies
Frontend
- โธNext.js 14
- โธReact 18
- โธTypeScript
- โธTailwind CSS
- โธTanStack Query
Backend
- โธFastAPI
- โธPostgreSQL
- โธRedis
- โธCelery
- โธSQLAlchemy
Deployment
- โธDocker
- โธDocker Compose
- โธAlembic
- โธDokploy
Security
- โธJWT Auth
- โธArgon2
- โธFernet Encryption
- โธCORS
- โธRate Limiting
Ready to Gamify Your Team?
Get started with The Git League in minutes. Self-hosted, fully private, completely customizable.
Open source โข MIT License โข 100% Self-Hosted
No external dependencies โข Your data never leaves your infrastructure