Skip to content

TheMajical/Contribution-Graph-Pattern-Generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

🎨 GitHub Contribution Graph Pattern Generator

A fun demonstration that GitHub's contribution graph is just pixels, not a measure of your worth as a developer.

🎯 Purpose

This project exists to make an important point: GitHub contribution graphs are NOT a measure of productivity, skill, or dedication.

Why This Matters

  • 📊 Contribution graphs can be easily manipulated - as this tool demonstrates
  • 🧠 Real work happens offline - architecture, planning, learning, mentoring, code reviews
  • 🤝 Many valuable contributions aren't tracked - pair programming, helping colleagues, documentation
  • 🏢 Private repositories don't show - most professional work is private
  • 🌍 Different workflows exist - some developers commit frequently, others in larger chunks
  • Life happens - health issues, family time, burnout recovery are all valid

The Green Squares Fallacy

Don't let anyone judge you by your contribution graph. Don't judge yourself by it either.

What actually matters:

  • Code quality and thoughtfulness
  • Problem-solving ability
  • Collaboration and communication
  • Learning and growth
  • Impact of your work
  • Your well-being and work-life balance

What doesn't matter:

  • How green your GitHub profile is
  • Daily commit streaks
  • Total number of contributions

🚀 Features

This tool lets you draw fun patterns on your GitHub contribution graph:

  • 🎭 19+ pre-made patterns: hearts, emojis, waves, text, and more
  • 👁️ Terminal preview: See the pattern before generating
  • ⚠️ Conflict detection: Checks if existing contributions will interfere
  • 🎨 Customizable intensity: Multiple commits per day for darker squares
  • 📅 Flexible dates: Choose any start date for your pattern
  • 🔧 Easy setup: Automatic git configuration

📦 Installation

# Clone the repository
git clone https://github.com/TheMajical/github-pattern-generator.git
cd github-pattern-generator

# Make sure you have Python 3.6+ installed
python3 --version

🎮 Usage

# Run the script
python3 github_pattern.py

# Follow the interactive prompts:
# 1. Choose a pattern (or type 'preview' to see all)
# 2. Set a start date
# 3. Configure commits per day
# 4. Check for conflicts (optional)
# 5. Generate!

Quick Example

$ python3 github_pattern.py

Available patterns:
  1. heart
  2. wave
  3. smile
  4. rocket
  ...

Enter pattern name, number, or 'preview': smile

# Preview shows, then continue...
Enter start date (YYYY-MM-DD) or press Enter for 52 weeks ago: 
Pattern will start on: 2024-01-07 (Sunday)

Commits per active day (default 1): 3
Repository name (default: github-pattern): my-pattern

✓ Pattern complete! Created 150 total commits

🎨 Available Patterns

  • Shapes: heart, diamond, skull, smile, rocket
  • Games: pacman, tetris, gamepad
  • Tech: code (brackets), fish, lightning
  • Abstract: wave, checker, stairs, infinity, mountain
  • Fun: music notes, pizza
  • And more!

📋 How It Works

  1. Creates backdated commits using Git's GIT_AUTHOR_DATE and GIT_COMMITTER_DATE
  2. Generates a local repository with commits on specific dates
  3. You push to GitHub and the pattern appears on your contribution graph

Technical Details

# The script sets environment variables to backdate commits
env["GIT_AUTHOR_DATE"] = "2024-01-15 12:00:00"
env["GIT_COMMITTER_DATE"] = "2024-01-15 12:00:00"

⚠️ Important Notes

  • For educational/demonstration purposes - Use responsibly!
  • Doesn't affect actual code quality - It's just visual
  • Check for conflicts - Existing contributions may interfere with patterns
  • Consider using a separate account - To keep your main profile clean
  • Future dates work too - Plan ahead for upcoming patterns

🤝 Contributing

This project welcomes contributions! Whether you want to:

  • Add new patterns
  • Improve conflict detection
  • Enhance the UI
  • Fix bugs
  • Improve documentation

Feel free to open issues or submit pull requests.

Adding New Patterns

Patterns are 7×N arrays (7 days × N weeks):

"your_pattern": [
    [0,1,1,0],  # Sunday
    [1,0,0,1],  # Monday
    [1,0,0,1],  # Tuesday
    [1,1,1,1],  # Wednesday
    [1,0,0,1],  # Thursday
    [1,0,0,1],  # Friday
    [0,0,0,0],  # Saturday
]

📜 License

Majical License - Feel free to use, modify, and share!

💭 Final Thoughts

Remember: You are not your GitHub contribution graph.

Your value as a developer (and as a person) cannot be reduced to a grid of green squares. Take breaks, work on private projects, contribute to non-code aspects of software development, and don't let anyone make you feel inadequate based on your contribution graph.

This tool exists to show how meaningless these metrics can be. Use it to have fun, make art, or prove a point - but never let GitHub's gamification affect your mental health or self-worth.


Made with 💚 to remind everyone that developers are humans, not commit machines.

🔗 Links


Star History

If this project helped you see contribution graphs in a new light, consider giving it a ⭐!

Remember: Stars are also just vanity metrics. But they do help others find the project. 😊

About

A fun demonstration that GitHub's contribution graph is just pixels, not a measure of your worth as a developer.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages