A comprehensive, professional-grade Python tool for GitHub automation with multiple operation modes, intelligent rate limiting, multi-threading support, and robust error handling.
- ✅ Token Validation - Secure authentication with GitHub API
- 👥 Follow Users - Manual or automatic user following
- ⭐ Star Repositories - Manual or automatic repository starring
- 🎯 Follow Stargazers - Follow all users who starred a specific repository
- 🔄 Multi-threading - Concurrent operations for optimal performance
- ⏳ Smart Rate Limiting - Automatic detection and handling with countdown
- 📊 Real-time Statistics - Live progress tracking and final summaries
- 📝 Comprehensive Logging - Optional file logging for audit trails
- 🎨 Color-coded CLI - Beautiful, informative terminal interface
- 🛡️ Graceful Shutdown - Clean exit on Ctrl+C with summary
- 🔁 Retry Mechanisms - Exponential backoff for network errors
- 🌐 Cross-platform - Works on Windows, Linux, macOS, Termux
- Follow specific users by username
- Star specific repositories by owner/repo
- Automatically follow random GitHub users
- Configurable count and threading
- Automatically star trending repositories
- Filter by programming language
- Configurable parameters
- Follow all users who starred a repository
- Pagination support for large lists
- Batch processing with configurable parameters
- View current API rate limit status
- See when limits reset
- Python 3.6 or higher
- Internet connection
- GitHub Personal Access Token
requests- Clone or download the script:
# Download the script
git clone https://github.com/mrwhite4939/GitForce
# or
git clone https://github.com/mrwhite4939/GitForce- Install dependencies:
pip install requests
# or on some systems:
pip3 install requests- Make executable (Linux/macOS):
chmod +x GitForce# Update packages
pkg update && pkg upgrade
# Install Python
pkg install python
# Install pip
pkg install python-pip
# Install requests
pip install requests
# Download the script
git clone https://github.com/mrwhite4939/GitForce
# Run the script
python GitForce# Update system
sudo apt update
# Install Python and pip
sudo apt install python3 python3-pip
# Install requests
pip3 install requests
# Download and run
git clone https://github.com/mrwhite4939/GitForce
python3 GitForce-
Install Python:
- Download from python.org
- Check "Add Python to PATH" during installation
-
Install dependencies:
pip install requests- Run the script:
python GitForceThe tool requires a GitHub Personal Access Token for authentication:
- Go to GitHub Settings → Developer settings → Personal access tokens
- Click "Generate new token" → "Generate new token (classic)"
- Give it a descriptive name (e.g., "Automation Tool")
- Select the following scopes:
- ✅
user:follow- To follow/unfollow users - ✅
public_repo- To star repositories
- ✅
- Click "Generate token"
- Copy the token immediately (you won't see it again!)
| Permission | Purpose | Required For |
|---|---|---|
user:follow |
Follow/unfollow users | Following users |
public_repo |
Star repositories | Starring repos |
python GitForce
# or
python3 GitForce
# or (if made executable)
./GitForce- Launch the tool
- Enter your GitHub Personal Access Token (input is hidden for security)
- Token validation - Confirms authentication
- Choose operation mode from the menu:
- Manual Mode
- Auto Follow Users
- Auto Star Repos
- Follow Repo Stargazers
- Check Rate Limit
- Exit
SELECT MODE
1. Manual Mode
...
Enter your choice (1-6): 1
Choose action:
1. Follow a user
2. Star a repository
Enter choice (1-2): 1
Enter GitHub username to follow: torvalds
✓ Followed: torvalds
SELECT MODE
...
Enter your choice (1-6): 2
How many users to follow? (default=50): 100
Number of workers (default=10): 15
Rest time between batches in seconds (default=5): 3
🚀 Following up to 100 random users...
✓ Followed: user1
✓ Followed: user2
...
SELECT MODE
...
Enter your choice (1-6): 4
Enter repository (owner/repo): microsoft/vscode
Number of workers (default=10): 20
Rest time between batches (default=5): 5
Batch size (default=50): 100
🚀 Following stargazers of microsoft/vscode...
📄 Processing page 1...
✓ Followed: user1
✓ Followed: user2
...
SELECT MODE
...
Enter your choice (1-6): 3
How many repos to star? (default=30): 50
Filter by language? (optional, e.g., Python): Python
Number of workers (default=10): 10
Rest time between batches in seconds (default=5): 5
🚀 Starring up to 50 trending repositories (Python)...
⭐ Starred: django/django
⭐ Starred: pallets/flask
...
| Parameter | Description | Default | Recommended Range |
|---|---|---|---|
workers |
Number of concurrent threads | 10 | 5-20 |
rest_time |
Seconds to rest between batches | 5 | 3-10 |
batch_size |
Items per batch before rest | 50 | 30-100 |
- Small tasks (< 100 items): workers=10, rest_time=3
- Medium tasks (100-500 items): workers=15, rest_time=5
- Large tasks (> 500 items): workers=20, rest_time=10
- Conservative (avoid rate limits): workers=5, rest_time=10
The tool tracks and displays:
- ✅ Users Followed - Successfully followed users
- ⭐ Repos Starred - Successfully starred repositories
- ⊘ Items Skipped - Already followed/starred
- ✗ Actions Failed - Failed operations
- ⏳ Rate Limits - Number of times rate limit was hit
- 📄 Pages Processed - Total pages processed
- 🎯 Total Actions - Total operations attempted
FINAL SUMMARY
=====================================
✓ Users Followed: 150
⭐ Repos Starred: 30
⊘ Items Skipped: 25
✗ Actions Failed: 5
⏳ Rate Limits: 2
📄 Pages Processed: 10
🎯 Total Actions: 180
- ✅ Token input is hidden (using
getpass) - ✅ Token is never logged or printed
- ✅ Secure HTTPS communication with GitHub API
- ✅ No token storage - enter each session
- Use dedicated tokens for automation
- Set minimum required scopes only
- Regenerate tokens periodically
- Never share your token
- Revoke tokens if compromised
- Monitor your account activity
- GitHub allows 5,000 API requests/hour for authenticated users
- Tool automatically detects and waits when limits are hit
- Countdown timer shows remaining wait time
- Operations resume automatically after reset
pip install requests
# or
pip3 install requests- Check token has correct permissions (
user:follow,public_repo) - Ensure token hasn't expired
- Verify no extra spaces when pasting
- Reduce number of
workers - Increase
rest_time - Reduce
batch_size
- Check internet connection
- GitHub API may be temporarily unavailable
- Tool will retry automatically
- Ensure Python is in PATH
- Use
pythoninstead ofpython3 - Run as administrator if needed
| Code | Meaning | Solution |
|---|---|---|
| 401 | Unauthorized | Check token validity |
| 403 | Rate limited or forbidden | Wait for rate limit reset |
| 404 | User/repo not found | Verify username/repo exists |
| 500+ | GitHub server error | Retry later |
When prompted at startup:
Enable logging to file? (y/n, default=n): y
github_automation_YYYYMMDD_HHMMSS.log
- Timestamp for each operation
- Successful follows/stars
- Errors and failures
- Rate limit events
- Network issues
2025-01-15 14:23:45 - INFO - Token validated for user: username
2025-01-15 14:24:12 - INFO - Successfully followed user: torvalds
2025-01-15 14:24:15 - WARNING - Rate limit hit. Waiting 10m 5s
2025-01-15 14:24:20 - ERROR - Failed to follow octocat: HTTP 404
| Color | Meaning | Example |
|---|---|---|
| 🟢 Green | Success | "✓ Followed: username" |
| 🔴 Red | Error/Failure | "✗ Failed: username" |
| 🟡 Yellow | Warning | "⏳ Rate limit hit" |
| 🔵 Blue | Information | "📄 Processing page 1" |
| 🟣 Magenta | Special action | "⭐ Starred: repo" |
| ⚪ Cyan | Prompts/Headers | Menu selections |
Press Ctrl+C at any time to:
- Stop current operations cleanly
- Complete in-progress requests
- Display final statistics
- Save logs (if enabled)
- Exit gracefully
GET /user- Validate tokenGET /rate_limit- Check rate limitsPUT /user/following/{username}- Follow usersPUT /user/starred/{owner}/{repo}- Star reposGET /repos/{owner}/{repo}/stargazers- Get stargazersGET /users- Get random usersGET /search/repositories- Search trending repos
This tool is provided as-is for educational and automation purposes. Use responsibly and in accordance with GitHub's Terms of Service and API rate limits.
- Use this tool responsibly
- Respect GitHub's Terms of Service
- Don't spam or abuse the automation features
- Be mindful of rate limits
- The author is not responsible for account suspensions due to misuse
Contributions, issues, and feature requests are welcome!
For issues or questions:
- Check the troubleshooting section
- Review GitHub API documentation
- Check your token permissions
- Review the log files (if enabled)
Potential features for future versions:
- Unfollow users functionality
- Unstar repositories
- Export followed users list
- Import user lists from file
- Follow users by location/language
- Statistics export to JSON/CSV
- GUI version
- Webhook integration
Made with ❤️ for GitHub automation