A GitHub Actions workflow system that automatically discovers, categorizes, and summarizes interesting repositories to help organize and expand your GitHub stars.
- Discover Interesting Repos: Dual-model AI analysis (DeepSeek + Ollama) identifies 13 unique repositories per week that are unusual, innovative, or solve problems in creative ways
- Keyword-Based Categorization: Automatically categorizes repositories by topic using configurable keywords
- Weekly Organization: Creates GitHub issues for interesting discoveries with AI-generated summaries; uncategorized popular repositories are tracked in a local state DB (no issue/comment noise) for later keyword-growth distillation
- Smart Deduplication: Removes already-starred repos and previously flagged discoveries to prevent redundant suggestions
Runs weekly (Saturdays 11pm UTC) to discover new interesting repositories:
- Fetches popular repos from GitHub (created after 2023, 1000+ stars)
- Splits into uncategorized (Stage 1) and categorized (Stage 2+3)
- Records new uncategorized repos in the state DB for keyword expansion
- Uses DeepSeek and Ollama to identify 13 interesting repos per run
- Creates GitHub issues with AI-generated summaries
Output: ~13 new interesting repositories + uncategorized repos for keyword growth each week
Automatically stars/unstarred repos based on discovery issue state
Reads pending uncategorized repos from the state DB and uses DeepSeek to
suggest config.json keyword/category updates, opening a PR with the result
Edit config.json to customize:
- Category keywords for auto-categorization
- Exclusion patterns
- Repository search criteria
The workflows require:
DEEPSEEK_API_KEY: DeepSeek API accessOLLAMA_CLOUD_KEY: Ollama Cloud access- GitHub token with
issues:writeandcontents:readpermissions
Run unit tests:
python -m pytest tests/unit/ -v.
├── .github/workflows/ # GitHub Actions workflows
├── github_star_organizer/ # Main package
│ ├── categorizer.py # Category matching logic
│ ├── gh_client.py # GitHub GraphQL client
│ ├── issue_manager.py # Discovery issue creation
│ └── state_db.py # SQLite state (dedup, uncategorized tracking)
├── discover_repos.py # Main discovery workflow
├── distill.py # Category consolidation
├── config.json # Configuration
└── tests/ # Unit tests
- Search: Fetches up to 100 popular repos from GitHub
- Split: Separates into categorized and uncategorized repos
- Dedup: Removes user's starred repos and already-flagged discoveries
- Identify: DeepSeek analyzes first half (identifies 7), Ollama analyzes second half (identifies 6)
- Summarize: Both models generate detailed summaries for the 13 selected repos
- Report: Posts results to GitHub issues for weekly review
Changes to the discover-repos workflow are developed on feature branches and require PR review before merging to main.