Sometimes it's hard to keep up to date with changes made in forks, this tool may help.
A terminal tool that analyzes forks of a GitHub repository to extract and categorize changes like bugfixes, new features, and improvements. Now with powerful keyword search capabilities to discover what the community has been working on in repository forks! (Note: This project is vibe-coded!)
- Comprehensive Fork Analysis: Analyzes all forks of a given GitHub repository
- Smart Categorization: Automatically categorizes commits into:
- π Features: New functionality and enhancements
- π Bugfixes: Bug fixes and problem resolutions
- π‘ Ideas: Improvements, refactoring, and optimizations
- π Keyword Search: Search for specific keywords across all fork commits
- Find forks working on particular features or technologies
- Track keyword frequency across the fork ecosystem
- Get contextual matches with commit details
- Activity-Based Sorting: Prioritizes forks by star count and recent activity
- Rate Limit Friendly: Respects GitHub API limits with automatic delays
- Token Support: Optional GitHub token support for higher API rate limits
- Flexible CLI: Multiple argument order support for ease of use
- Nim compiler (>= 2.2.4)
git clone https://github.com/your-username/what_the_fork
cd what_the_fork
nimble build
The compiled binary will be available in the bin/
directory.
what_the_fork <github_url> [github_token]
what_the_fork --search "keyword1,keyword2" <github_url> [github_token]
what_the_fork <github_url> [github_token] --search "keyword1,keyword2"
-
github_url: GitHub repository URL in one of these formats:
https://github.com/owner/repo
https://github.com/owner/repo.git
github.com/owner/repo
owner/repo
-
github_token (optional): GitHub personal access token for higher API rate limits
- Without token: 60 requests/hour
- With token: 5000 requests/hour
- Get your token at: https://github.com/settings/tokens
-
--search (optional): Comma-separated keywords for search mode
- Case-insensitive matching
- Searches commit messages across forks
- Example:
--search "async,performance,memory"
# Basic usage
what_the_fork https://github.com/nim-lang/Nim
# Short format
what_the_fork nim-lang/Nim
# With GitHub token for higher rate limits
what_the_fork https://github.com/nim-lang/Nim ghp_your_token_here
# Analyze Ormin ORM forks
what_the_fork https://github.com/Araq/ormin
# Search for async-related work
what_the_fork --search "async,coroutine,await" https://github.com/nim-lang/Nim
# Find performance improvements (with token)
what_the_fork https://github.com/nim-lang/Nim ghp_token --search "performance,optimize,speed"
# Search for memory management changes
what_the_fork --search "memory,gc,allocation" nim-lang/Nim
# Look for documentation improvements
what_the_fork --search "docs,readme,documentation" https://github.com/nim-lang/Nim
Here's what you'll see when analyzing the Ormin repository:
π Analyzing forks of Araq/ormin...
π₯ Fetching forks...
β
Found 20 forks
π¬ Analyzing top 10 most active forks...
β³ Analyzing sair770/ormin (1/10)...
================================================================================
π΄ FORK: sair770/ormin
================================================================================
β Stars: 1 | π΄ Forks: 0
π Description: Ormin -- An ORM for Nim.
π URL: https://github.com/sair770/ormin
π
Last Updated: 2023-03-08T01:43:58Z
π Total Commits Analyzed: 73
π FEATURES (10):
----------------------------------------
β’ [PMunch] Implement named tuples (#12)
β’ [Andreas Rumpf] first implementation of serverhttp
β’ [Andreas Rumpf] fixes the protocol implementation; export all generated fields
β’ [Andreas Rumpf] added support for globals in the client section
β’ [Andreas Rumpf] protocol macro: added support for 'common' sections
β’ [Andreas Rumpf] added support for the 'bool' type
β’ [Andreas Rumpf] added support for 'case when'
β’ [Andreas Rumpf] better support for verbatim SQL
β’ [Andreas Rumpf] added ormin_sqlite implementation
β’ [Andreas Rumpf] implemented backend specific placeholder
π BUGFIXES (1):
----------------------------------------
β’ [Andreas Rumpf] ormin_importer: proper error handling
================================================================================
π SUMMARY
================================================================================
π΄ Total Forks: 20
π¬ Analyzed: 10
π Total Features Found: 45
π Total Bugfixes Found: 12
π‘ Total Ideas/Improvements Found: 23
π Total Insights: 80
Here's what you'll see when searching for keywords:
π Analyzing forks of nim-lang/Nim...
π― Search mode: Looking for keywords: async, performance
π₯ Fetching forks...
β
Found 156 forks
π Searching for keywords: async, performance
π Searching across 156 forks...
================================================================================
π KEYWORD SEARCH RESULTS
================================================================================
π Total Matches: 23
π KEYWORD FREQUENCY:
----------------------------------------
π 'async': 15 matches
π 'performance': 8 matches
π― MATCHES FOR 'ASYNC' (15):
--------------------------------------------------
π someone/Nim
π¬ Add async support for HTTP client
π€ John Doe | π
2024-01-15 | π abc1234
π developer/Nim
π¬ Fix async/await memory leak issue
π€ Jane Smith | π
2024-01-10 | π def5678
π― Context: Fix async/await memory leak in coroutine cleanup
π― MATCHES FOR 'PERFORMANCE' (8):
--------------------------------------------------
π optimizer/Nim
π¬ Improve performance of string operations
π€ Bob Wilson | π
2024-01-12 | π ghi9012
- Fetches Forks: Retrieves all forks of the specified repository using GitHub API
- Sorts by Activity: Ranks forks by star count to focus on the most active ones
- Analyzes Commits: Examines recent commits from each fork's default branch
- Categorizes Changes: Uses pattern matching on commit messages to categorize:
- Features:
feat:
,add:
,implement
,new:
, etc. - Bugfixes:
fix:
,bug:
,resolve
,issue
, etc. - Ideas:
improve:
,refactor:
,optimize:
,enhance
, etc.
- Features:
- Generates Report: Provides a comprehensive summary of findings
- Fetches Forks: Retrieves all forks and sorts by activity (stars)
- Searches Commits: Examines commit messages for specified keywords
- Extracts Context: Finds the specific lines containing keywords
- Aggregates Results: Groups matches by keyword with frequency analysis
- Provides Details: Shows commit info, authors, dates, and context
- Fork Discovery: Find the most active and interesting forks
- Change Tracking: See what improvements the community is making
- Innovation Monitoring: Discover new features being developed
- Technology Tracking: Find forks working with specific technologies (
--search "wasm,javascript,python"
) - Feature Hunting: Look for particular features (
--search "async,parallel,concurrent"
) - Bug Investigation: Track specific issues (
--search "memory,crash,segfault"
) - Performance Focus: Find optimization work (
--search "performance,speed,optimize"
)
- Standard mode: Analyzes up to 10 most active forks by default
- Search mode: Searches up to 20 most active forks by default
- Examines up to 90 recent commits per fork
- Categorization depends on commit message patterns
- Subject to GitHub API rate limits
Contributions are welcome! Please feel free to submit issues and pull requests.
MIT License - see LICENSE file for details.