๐ŸŽฏ Open Sourceโ€ขbyAlexandre Enouf

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.

Git League Dashboard Preview

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 ๐Ÿ‘‡)

1

๐Ÿ Install the Python Client

Get gitleague-client and configure it with your API key

โญ Key Step
2

Point to Your Repos

Add Git repositories (local, SSH, or HTTPS) in repos.yaml

3

๐Ÿ“ค Sync Your Commits

Run "gitleague-client sync" to push all commit data instantly

โญ Key Step
4

๐Ÿ€ Watch the Magic Happen

See NBA metrics, leaderboards, awards, and stats calculated in real-time

โญ

GitHub Stars

Growing

MIT

Open Source

License

100%

Self-Hosted

Private

<5

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.

โœ“Server-side: The Git League backend, frontend, database
โœ“Client-side: Python client for data submission
โœ“Communication: Secure HTTPS/API with authentication
๐Ÿณ
1

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
๐Ÿ’ก Required for running The Git League server
โš™๏ธ
2

Setup The Git League

Clone the repo and start the stack

git clone https://github.com/Boblebol/TheGitLeague.git
cd TheGitLeague
cp .env.example .env
nano .env # Configure settings
docker-compose up -d
๐Ÿ”— Access at http://localhost:3000
๐Ÿ
3

Install Python Client

Get the client on your local machine

pip install gitleague-client
# Or from source:
git clone https://github.com/Boblebol/TheGitLeague.git
cd TheGitLeague/gitleague-client
pip install -e .
๐Ÿ“ค Install on the machine where your Git repos are

System Architecture

๐Ÿ–ฅ๏ธ Server (Docker)

  • โ€ข Next.js Frontend
  • โ€ข FastAPI Backend
  • โ€ข PostgreSQL Database
  • โ€ข Redis Cache
๐ŸŒ
HTTPS API
Port 8000

๐Ÿ’ป Client (Python)

  • โ€ข gitleague-client CLI
  • โ€ข Local Git repos
  • โ€ข API Key auth
  • โ€ข Data submission

Complete Data Collection Workflow

1.Start The Git League: Docker Compose starts the web interface and API (accessible at http://localhost:3000)
2.Create API Key: Generate an API key from the web UI for data submission
3.Configure Client: On your local machine, create repos.yaml with the API key and repository paths
4.Sync Data: Run gitleague-client sync to push commits
5.View Results: Watch leaderboards, stats, and awards update in real-time
6.Automate: Schedule the client to run periodically (cron job, CI/CD, etc.)

๐Ÿ 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.

โœ“ Your data stays in control โ€” PAT tokens never leave your machine
โœ“ Works offline โ€” Sync commits whenever you want
โœ“ Automatic & reliable โ€” Retry logic, rate limiting, deduplication
โœ“ Multi-repo support โ€” Sync all your projects at once

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.

๐Ÿ“ Local Execution: Runs on your machine or CI/CD
๐Ÿ”„ Incremental Sync: Only new commits sent
๐Ÿ” Zero Trust: Your credentials stay safe
โš™๏ธ Fully Automated: Scheduled or on-demand

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

1
gitleague-client init

Create your repos.yaml configuration with API key

2
gitleague-client test

Validate repositories and API credentials

3
gitleague-client sync

Push all commits to The Git League

How Your Data Flows

1

Extract Local Commits

Client scans your Git repositories and extracts commit metadata

2

Batch & Deduplicate

Commits are batched together and duplicates are removed automatically

3

Push to The Git League

Data is securely transmitted via API with your authentication credentials

4

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/infrastructure

Ready 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