This directory contains an automated GitHub activity system that generates realistic commit activity to maintain consistency in your GitHub contribution graph.
The system runs 12 times per day at random intervals and generates 4-26 commits daily with natural variance. It creates realistic-looking activity by:
- Daily Logs: Updates activity logs with timestamps and random development activities
- Statistics: Maintains repository statistics with realistic metrics
- Quotes: Adds inspirational programming quotes to a daily collection
Controls the behavior of the automation:
{
"enabled": true, // Turn system on/off
"update_types": ["log", "stats", "quote"], // Types of updates to perform
"max_changes_per_run": 3, // Max changes per execution
"schedule": {
"commits_per_day_min": 4, // Minimum commits per day
"commits_per_day_max": 26 // Maximum commits per day
},
"maintenance": {
"cleanup_old_logs": true, // Auto-cleanup old files
"max_log_entries": 365 // Keep logs for 1 year
}
}
- Daily log files:
activity_YYYY-MM-DD.log
- Contains timestamps and random development activities
- Examples: "Code review and optimization", "Bug fixes and improvements"
repository_stats.json
- Tracks daily commit metrics- Includes: commits count, lines added/removed, files changed
- Auto-cleanup after 30 days
daily_quotes.txt
- Collection of programming quotes- Adds one quote per execution with timestamp
- 15 different inspirational programming quotes
The system runs at these times (UTC):
- 1:00 AM, 3:30 AM, 6:15 AM, 8:45 AM
- 10:30 AM, 12:15 PM, 2:45 PM, 4:30 PM
- 6:15 PM, 8:45 PM, 10:30 PM, 12:15 AM
Generated commit messages include:
- "Update activity log - 2024-01-15"
- "Daily maintenance - Jan 15"
- "Routine update 2024/01/15"
- "Activity tracking update"
- And 10 more variations with different date formats
- 40% skip rate: Randomly skips runs for natural variance
- 1-3 changes per run: Randomly selects which updates to perform
- Random timing: Spreads activity throughout the day
- Random content: Different activities and quotes each time
You can manually trigger the workflow:
- Go to Actions tab in your repository
- Select "Auto Commit Activity" workflow
- Click "Run workflow" button
Check the generated files to monitor activity:
data/logs/activity_YYYY-MM-DD.log
- Daily activitydata/stats/repository_stats.json
- Commit statisticsdata/quotes/daily_quotes.txt
- Quote collection
- Add new function in
scripts/update_activity.py
- Add to
update_types
in config - Add case in main() function
Modify in config/activity_config.json
:
commits_per_day_min
andcommits_per_day_max
- Adjust
max_changes_per_run
and skip rate accordingly
Edit the activities
list in update_daily_log()
function to add your own development activities.
- Uses
GITHUB_TOKEN
for authentication - Runs on GitHub's hosted runners
- No external dependencies or API calls
- All data is stored locally in the repository
- Check if system is enabled in config
- Verify workflow is running in Actions tab
- Check for errors in workflow logs
- Adjust
max_changes_per_run
in config - Modify skip rate in
update_activity.py
- Change number of scheduled runs in workflow
- Ensure
.gitignore
allowsdata/
directory - Check workflow has proper permissions
- Verify Git configuration in workflow