A powerful tool for automatically tracking GitHub trending repositories and analyzing community activity
Features • Installation • Configuration • Usage • Development • Contributing
- 🔍 Track GitHub trending repositories across multiple programming languages
- 📊 Deep analysis of repository community activity (issues, commits, contributors)
- 💾 Historical data storage using SQLite database
- 📧 Automated daily trend analysis reports
- 🔄 GitHub Actions automation support
- 📝 Comprehensive logging and error handling
pip install github-trending-tracker
git clone https://github.com/yourusername/github-trending-tracker.git
cd github-trending-tracker
pip install -e .
pip install -e ".[dev]"
- Copy configuration template:
cp .env.example .env
- Edit
.env
file:
GITHUB_TOKEN=your_github_token
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SENDER_EMAIL[email protected]
SENDER_PASSWORD=your-app-password
RECIPIENT_EMAILS[email protected],[email protected]
# Run tracker
github-trending
# Specify programming languages
github-trending --languages python,java,javascript
# Set time period
github-trending --period weekly
from github_trending_tracker import GitHubTrendingCrawler, DatabaseManager, EmailNotifier
# Initialize components
crawler = GitHubTrendingCrawler()
db_manager = DatabaseManager()
email_notifier = EmailNotifier()
# Fetch trending repositories
repos = crawler.fetch_trending_repositories(languages=['python', 'java'])
# Save to database
db_manager.save_repositories(repos)
# Send report
email_notifier.send_trending_report(repos)
# Install development dependencies
pip install -e ".[dev]"
# Setup pre-commit hooks
pre-commit install
# Run all tests
pytest
# Generate coverage report
pytest --cov=src tests/
# Run specific test file
pytest tests/test_crawler.py
This project uses:
- 🎨 Black for code formatting
- 🔍 Flake8 for style enforcement
- ✅ MyPy for type checking
- 📋 isort for import sorting
# Format code
black src tests
# Check style
flake8 src tests
# Sort imports
isort src tests
# Type check
mypy src
This project is licensed under the MIT License - see the LICENSE file for details
Contributions are welcome! Feel free to submit a Pull Request.
- 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
Made with ❤️ by Contributors