Skip to content

side-projects-overkill/github-commit-updater

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Contribution Graph Filler

Disclaimer: This is a joke project for fun. It does not reflect real contributions and should not be used to misrepresent your work. Please don't take it seriously.

Make your GitHub contribution graph solid green — or spell out text and draw pixel art on it. Creates backdated commits to fill every day in your history.

Quick Start

# Fill the last 365 days with 1-5 random commits per day
./contribute.sh

# Or draw "HI" on your graph
python3 contribute-art.py text "HI"

# Or draw a heart
python3 contribute-art.py design heart

# Push to GitHub
git push -u origin main

Uniform Fill (contribute.sh)

Fills every day in a date range with a random number of commits.

./contribute.sh [DAYS_BACK] [MIN_COMMITS] [MAX_COMMITS]
Argument Default Description
DAYS_BACK 365 Number of days to go back
MIN_COMMITS 1 Minimum commits per day
MAX_COMMITS 5 Maximum commits per day
# Light green everywhere (subtle)
./contribute.sh 365 1 2

# Medium intensity
./contribute.sh 365 2 5

# Full dark green (go big or go home)
./contribute.sh 365 5 10

Graph Art (contribute-art.py)

Draw text or pixel designs on the contribution graph. Each character or design maps onto the 7-row × 52-week grid that GitHub displays.

python3 contribute-art.py {text,design} VALUE [options]

Write Text

Supports A–Z, 0–9, and common symbols (! ? - . + * / : _). Each character is 5 weeks wide with 1 week of spacing, so you can fit roughly 8 characters across the graph.

# Write your name
python3 contribute-art.py text "HELLO"

# Preview without creating commits
python3 contribute-art.py text "GIT" --preview

# Max brightness
python3 contribute-art.py text "WOW" --intensity 4

Draw Designs

Pick from built-in pixel art patterns.

# Draw a heart
python3 contribute-art.py design heart

# Preview a space invader
python3 contribute-art.py design invader --preview

# List all available designs
python3 contribute-art.py --list-designs

Available designs: heart, smiley, star, diamond, invader, ghost, pacman, wave, check, cross, music, anchor, sword, tree, skull, arrow-right, lightning, dna

Options

Flag Description
--intensity {1,2,3,4} Brightness level: 1=light, 2=medium, 3=dark, 4=max (default: 3)
--preview Show the pattern in the terminal without creating commits
--invert Invert the pattern (negative-space effect)
--start-weeks-ago N Place column 0 at N weeks ago (default: auto-center)
--reset Wipe all existing commits first (clean slate)
--list-designs Show all preset designs with previews
--list-font Show all supported text characters

Intensity Guide

Level Commits/pixel GitHub color
1 2 Light green
2 5 Medium green
3 10 Dark green
4 16 Darkest green

Reset & Replace

Want to clear your graph and start over with a new design? Use --reset to wipe all existing commits before drawing.

# Remove everything, then write "HI"
python3 contribute-art.py text "HI" --reset

# Remove everything, then draw a heart
python3 contribute-art.py design heart --reset

# After reset, force-push to update GitHub
git push -f origin main

This creates an orphan branch (deleting all history), resets contributions.json, and then creates only the new art commits. You'll be prompted for confirmation before anything is deleted.

How It Works

Both scripts create real git commits with backdated timestamps (GIT_AUTHOR_DATE / GIT_COMMITTER_DATE). GitHub uses the author date to place commits on the contribution graph. Each commit updates a contributions.json file with a unique entry.

The art script maps each "pixel" in a letter or design to a specific day on the graph (7 rows = days of the week, columns = weeks). Active pixels get multiple commits to hit the desired green intensity; inactive pixels get none.

Requirements

  • Git
  • Bash
  • Python 3

Reset

To start fresh, delete the repo and re-clone, or:

git checkout --orphan fresh
git add -A
git commit -m "reset"
git branch -D main
git branch -m main
git push -f origin main

About

This is a joke project for fun. It does not reflect real contributions and should not be used to misrepresent your work. Please don't take it seriously.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors