Qqulie's GitHub Commit Generator is a sophisticated Python CLI tool that creates realistic GitHub contribution patterns. Meet Qqulie, your charming AI companion who guides you through the process of generating backdated commits with beautiful terminal UI and intuitive menus!
Perfect for:
- ๐ Learning about Git internals
- ๐งช Testing GitHub integrations
- ๐ Creating demonstration repositories
- ๐จ Visualizing contribution patterns
- ๐ค Qqulie AI Companion - Interactive and friendly guide (inspired by Astro's Houston)
- ๐จ Beautiful Terminal UI - Rich, colorful interface with icons and panels
- โ๏ธ Flexible Configuration - JSON-based settings for complete customization
- ๐ Smart Date Ranges - Configure start dates and working days
- โฐ Time-Based Commits - Set specific time windows for commits
- ๐ฒ Random Patterns - Create natural-looking contribution patterns
- ๐พ Persistent Config - Save your preferences for future use
- ๐ Easy to Use - Intuitive menu system, no command-line arguments needed
- Python 3.7 or higher
- Git installed and configured
- pip (Python package manager)
-
Clone this repository:
git clone https://github.com/yourusername/qqulie-commit-generator.git cd qqulie-commit-generator -
Install required dependencies:
pip install rich
Or let Qqulie install it automatically on first run! The application will detect missing dependencies and install them for you.
โ ๏ธ IMPORTANT: Before you start, you MUST change the repository name!
-
Change the project name to something unique:
# If you haven't already, create a new repository on GitHub # Then update your remote URL: git remote set-url origin https://github.com/yourusername/your-new-repo-name.git
-
Initialize the repository (if starting fresh):
mkdir my-awesome-project cd my-awesome-project git init # Copy main.py into this directory cp /path/to/qqulie-commit-generator/main.py .
-
Create a GitHub repository:
- Go to GitHub and create a new repository
- DO NOT initialize it with README, .gitignore, or license
- Copy the repository URL
-
Link your local repository:
git remote add origin https://github.com/yourusername/your-repo-name.git
Simply run the main script:
python main.pyOr make it executable:
chmod +x main.py
./main.pyWhen you start Qqulie, you'll see a beautiful menu with these options:
- ๐ Generate Commits - Create fake commits based on your configuration
- โ๏ธ Configure Settings - Customize your commit generation parameters
- ๐ View Current Configuration - See all your current settings
- ๐ Help & Information - Learn how to use Qqulie
- ๐ Exit - Say goodbye to Qqulie
-
Run the program:
python main.py
-
Configure your settings (Option 2):
- Set start date (default: last month)
- Choose active days (default: Monday-Friday)
- Set time range (default: 14:00-19:00)
- Configure commits per day (default: 1-3 random)
-
Generate commits (Option 1):
- Qqulie will create commits based on your configuration
- Progress bar shows real-time generation status
-
Push to GitHub:
git push -f origin main
โ ๏ธ Note: Using-f(force) is necessary to push backdated commits -
Check your GitHub profile! ๐ Your contribution graph should now display the generated commits!
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ
โ ๐ Qqulie's GitHub Commit Generator ๐ โ
โ โ
โ Paint your GitHub calendar green! ๐จ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โญโโโโโโโโโโโโโโ ๐ Qqulie โโโโโโโโโโโโโโโโฎ
โ Hello there, friend! ๐ I'm Qqulie, โ
โ your GitHub contribution companion! โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Select an option [1/2/3/4/5]: 1
โญโโโโโโโโโโโโโโ ๐ Qqulie โโโโโโโโโโโโโโโโฎ
โ Preparing to create 45 commits... ๐ฏ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Creating commits... โโโโโโโโโโโโโโโ 100%
โญโโโโโโโโโโโโโโ ๐ Qqulie โโโโโโโโโโโโโโโโฎ
โ Successfully created 45 commits! ๐ โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Configuration is stored in config.json and is automatically created on first run with sensible defaults.
{
"start_date": "2024-09-30",
"days_of_week": [0, 1, 2, 3, 4],
"time_range": {
"start_hour": 14,
"start_minute": 0,
"end_hour": 19,
"end_minute": 0
},
"commits_per_day": {
"min": 1,
"max": 3,
"random": true
},
"random_daily": true,
"commit_messages": [
"Update documentation",
"Fix bug",
"Add new feature",
"Refactor code",
"Improve performance",
"Update dependencies",
"Fix typo",
"Add tests",
"Update README",
"Clean up code"
]
}| Setting | Type | Description | Default |
|---|---|---|---|
start_date |
String | Start date for commits (YYYY-MM-DD) | Last month |
days_of_week |
Array | Active days (0=Mon, 6=Sun) | Mon-Fri [0,1,2,3,4] |
time_range |
Object | Hours for commits | 14:00-19:00 |
commits_per_day.min |
Integer | Minimum commits per day | 1 |
commits_per_day.max |
Integer | Maximum commits per day | 3 |
commits_per_day.random |
Boolean | Random commits per day | true |
random_daily |
Boolean | Randomize each day | true |
commit_messages |
Array | Pool of commit messages | 10 default messages |
You can change all settings through Qqulie's interactive menu (Option 2):
- Start Date: Choose when to begin generating commits
- Days of Week: Select which days should have commits
- Time Range: Set the hours during which commits are created
- Commits Per Day: Define minimum and maximum commits
- Random Toggle: Enable/disable randomization
You can also edit config.json directly before running the program:
nano config.json # or vim, or your favorite editorThis tool is designed for educational and legitimate purposes only:
- โ Learning about Git internals
- โ Testing and development
- โ Creating demo repositories
- โ Personal projects and experimentation
- โ DO NOT use to misrepresent your contribution activity
- โ DO NOT use for deceptive purposes
- Repository Name: Always change the repository name before starting
- Force Push: You'll need to use
git push -fto push backdated commits - Existing Commits: This tool works best on fresh repositories
- Rate Limits: GitHub may rate-limit if you push too many commits at once
- Contribution Graph: It may take a few minutes for GitHub to update your contribution graph
- Test First: Try on a test repository before using on important projects
- Backup: Always backup important repositories before running
- Review Config: Check your configuration before generating commits
- Commit Messages: Customize the commit message pool for more realistic patterns
- Time Zones: The tool uses your local timezone
We love contributions! Please see our CONTRIBUTING.md file for details on how to help make Qqulie even better!
Quick start:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Security is important to us. If you discover a security vulnerability, please see our SECURITY.md file for information on how to report it responsibly.
This project is licensed under the MIT License - see the LICENSE file for details.
- Rich Library - For the beautiful terminal UI
- Astro's Houston - Inspiration for Qqulie's personality
- Open Source Community - For all the amazing tools and libraries
Having issues? Here's how to get help:
- Check the Help Menu in the application (Option 4)
- Review this README thoroughly
- Check existing GitHub Issues
- Create a new issue with detailed information
If you find this project helpful, please consider giving it a star! โญ
Made with โค๏ธ by the Qqulie Team
Happy Committing! ๐