Skip to content

AmiXDme/Hacking-GitHub-Contribution-Graph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎨 Hacking GitHub Contribution Graph

Create beautiful text patterns on your GitHub contribution graph!

A Python GUI application that automates GitHub commits to draw text patterns (like "HELLO", "2026", or your name) on your GitHub contribution graph using backdated commits.

Python GUI License

πŸ€– Note: This project was built with AI. While it is a fun tool for artistic expression, AI-generated code may contain mistakes. If you find any bugs or have improvements, contributions are welcomeβ€”feel free to open a Pull Request!

✨ Features

  • 🎯 Text-to-Pattern: Type any text and see it previewed on the contribution grid
  • πŸ“Š Real-time Preview: Visual preview showing exactly how your pattern will look
  • πŸ’ͺ Intensity Control: Adjust commits per pixel (1-10) for darker green squares
  • ⚑ Character Validation: Automatically validates text length (max 8-9 characters)
  • πŸ“ˆ Progress Tracking: Real-time logs and progress bar
  • 🎨 Modern Dark UI: Beautiful GitHub-themed interface
  • πŸ”’ No Login Required: Uses your existing Git credentials

πŸ–ΌοΈ Screenshots

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   🎨 Hacking GitHub Contribution Graph      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Repository URL:                             β”‚
β”‚ https://github.com/AmiXDme/Hacking-GitHub-Contribution-Graph.git β”‚

β”‚                                             β”‚
β”‚ Text to Draw (Max 8 characters):            β”‚
β”‚ HELLO                                       β”‚
β”‚ βœ“ 5 chars | 120 commits | 29 weeks         β”‚
β”‚                                             β”‚
β”‚ Commit Intensity: β–“β–“β–“β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 3             β”‚
β”‚                                             β”‚
β”‚ β”Œβ”€β”€β”€ Pattern Preview ───────────────────┐  β”‚
β”‚ β”‚  β–ˆβ–ˆ β–ˆβ–ˆ     β–ˆβ–ˆ β–ˆβ–ˆ  β–ˆβ–ˆ     β–ˆβ–ˆ     β–ˆβ–ˆβ–ˆ    β”‚  β”‚
β”‚ β”‚  β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ  β–ˆβ–ˆ β–ˆβ–ˆ     β–ˆβ–ˆ        β–ˆβ–ˆ β–ˆβ–ˆ   β”‚  β”‚
β”‚ β”‚  β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ  β–ˆβ–ˆ β–ˆβ–ˆ     β–ˆβ–ˆ        β–ˆβ–ˆ β–ˆβ–ˆ   β”‚  β”‚
β”‚ β”‚  β–ˆβ–ˆβ–ˆ  β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ     β–ˆβ–ˆ        β–ˆβ–ˆ β–ˆβ–ˆ  β”‚  β”‚
β”‚ β”‚  β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ  β–ˆβ–ˆ β–ˆβ–ˆ     β–ˆβ–ˆ        β–ˆβ–ˆ β–ˆβ–ˆ   β”‚  β”‚
β”‚ β”‚  β–ˆβ–ˆ β–ˆβ–ˆ β–ˆβ–ˆ  β–ˆβ–ˆ β–ˆβ–ˆ     β–ˆβ–ˆ        β–ˆβ–ˆ β–ˆβ–ˆ   β”‚  β”‚
β”‚ β”‚  β–ˆβ–ˆ β–ˆβ–ˆ     β–ˆβ–ˆ β–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆ β–ˆβ–ˆβ–ˆ       β–ˆβ–ˆβ–ˆ    β”‚  β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                             β”‚
β”‚  [πŸš€ Generate Pattern]      [⏹ Stop]       β”‚
β”‚  Progress: β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 45%          β”‚
β”‚                                             β”‚
β”‚  β”Œβ”€β”€β”€ Logs ────────────────────────────┐   β”‚
β”‚  β”‚ 🎨 Creating pattern: 'HELLO'       β”‚   β”‚
β”‚  β”‚ [45/120] 'L' at Week 15, Day 3     β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Prerequisites

  • Python 3.11+ installed
  • uv package manager (Install uv)
  • Git configured with credentials
  • A Private GitHub Repository

Installation

  1. Clone or Download this project

  2. Create virtual environment:

    uv venv
  3. Install dependencies:

    .venv\Scripts\activate
    uv pip install gitpython

Running the Application

Windows:

run.bat

Or manually:

.venv\Scripts\activate
python main.py

πŸ“– How to Use

Step 1: Prepare Your Repository

  1. Create a NEW PRIVATE repository on GitHub
  2. Copy the repository URL (e.g., https://github.com/username/my-art.git)

⚠️ Important: Use a NEW, EMPTY private repository. Don't use existing projects!

Step 2: Configure the App

  1. Launch the application (run.bat)
  2. Paste Repository URL in the first field
  3. Type your text (e.g., "HELLO", "2026", "LOVE")
    • Maximum 8-9 characters (GitHub graph is 53 weeks wide)
    • Supports A-Z, 0-9, and some symbols (!, ?, +, -, .)
  4. Adjust Intensity slider (1-10 commits per pixel)
    • 1 = Light green
    • 5-7 = Medium green
    • 10 = Dark green

Step 3: Preview & Generate

  1. Preview automatically shows your pattern
  2. Click "Generate Pattern"
  3. Watch the progress in real-time
  4. Wait for completion (can take a few minutes depending on text length)

Step 4: View on GitHub

  1. Go to your GitHub profile
  2. Click "Contribution settings" (above the graph)
  3. Enable "Private contributions" checkbox
  4. Refresh the page - your pattern should appear!

⏰ Note: GitHub may take 5-10 minutes to update the contribution graph.

🎯 Technical Details

How It Works

  1. Text Conversion: Converts each character to a 5Γ—7 pixel pattern using a custom font
  2. Date Calculation: Maps each pixel to a specific date (week, day) one year ago
  3. Backdated Commits: Uses Git's --date flag to create commits at calculated dates
  4. Intensity Multiplier: Creates multiple commits per pixel for darker colors

Grid Specifications

  • GitHub Graph: 7 rows (Sun-Sat) Γ— 53 columns (weeks)
  • Character Size: 5 pixels wide Γ— 7 pixels tall
  • Spacing: 1 week between characters
  • Maximum Text: 8-9 characters (depends on character width)

Files Created

C:\Users\YourName\github-contribution-repo\
β”œβ”€β”€ .git\               # Git repository
└── data.json           # Modified with each commit

βš™οΈ Configuration

Change Commit Intensity

Use the slider in the GUI (1-10):

  • 1: Minimal green (1 commit/pixel)
  • 3-5: Medium green (good balance)
  • 10: Maximum green (10 commits/pixel)

Supported Characters

  • Letters: A-Z (automatically converted to uppercase)
  • Numbers: 0-9
  • Symbols: Space, !, ?, +, -, .
  • Future: Add custom characters in fonts.py

⚠️ Important Notes

GitHub Requirements

βœ… Must use a PRIVATE repository βœ… Enable "Private contributions" in profile settings βœ… Git credentials must be configured (git config user.name and user.email) βœ… Wait 5-10 minutes for GitHub to update the graph

Ethical Use

This project is for:

  • βœ… Learning how Git metadata works
  • βœ… Artistic expression and fun experiments
  • βœ… Educational purposes

NOT for:

  • ❌ Deceiving employers or recruiters
  • ❌ Faking open-source contributions
  • ❌ Misrepresenting your actual coding activity

πŸ’‘ Tip: Senior developers can easily spot these patterns. Use for art, not deception!

πŸ› οΈ Development

Project Structure

Hacking GitHub Contribution Graph/
β”œβ”€β”€ main.py                 # GUI application
β”œβ”€β”€ fonts.py                # 5Γ—7 pixel font definitions
β”œβ”€β”€ pattern_calculator.py   # Text-to-grid mapping
β”œβ”€β”€ git_bot.py             # Git operations & backdating
β”œβ”€β”€ requirements.txt        # Python dependencies
β”œβ”€β”€ run.bat                # Windows run script
β”œβ”€β”€ .venv/                 # Virtual environment
β”œβ”€β”€ .gitignore             # Git ignore rules
└── README.md              # This file

Adding Custom Characters

Edit fonts.py and add your character:

FONTS = {
    '❀': [
        [0, 1, 0, 1, 0],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [1, 1, 1, 1, 1],
        [0, 1, 1, 1, 0],
        [0, 0, 1, 0, 0],
        [0, 0, 0, 0, 0]
    ]
}

πŸ› Troubleshooting

"Module not found" error

# Reinstall dependencies
.venv\Scripts\activate
uv pip install gitpython

"Authentication failed"

# Configure Git credentials
git config --global user.name "Your Name"
git config --global user.email "you@example.com"

Pattern doesn't show on GitHub

  1. Enable "Private contributions" in GitHub settings
  2. Wait 10-15 minutes
  3. Hard refresh the page (Ctrl+F5)
  4. Check the repository has commits (git log)

Text exceeds limit

  • Maximum 8-9 characters
  • Use shorter text or abbreviations
  • Remove spaces to fit more letters

πŸ“Š Example Patterns

"HELLO"  β†’ 5 chars, ~120 commits, 29 weeks
"2026"   β†’ 4 chars, ~96 commits,  23 weeks  
"CODE"   β†’ 4 chars, ~96 commits,  23 weeks
"AI"     β†’ 2 chars, ~48 commits,  11 weeks
"LOVE ❀" β†’ 6 chars, ~144 commits, 35 weeks

πŸ“œ License

Educational Use Only

This project is provided for learning and artistic purposes. Use responsibly.

πŸ™ Credits

Created with:

  • Python - Programming language
  • Tkinter - GUI framework
  • GitPython - Git operations
  • uv - Fast Python package installer

Happy Contribution Crafting! 🎨✨

⭐ Star this repo if you created something cool!

About

🎨 Python GUI app to create artistic text patterns on your GitHub contribution graph using backdated commits. Type "HELLO" or "2026" and watch it appear on your profile! Features real-time preview, intensity control, and automatic pattern generation. Educational project showcasing Git metadata manipulation.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors