A cross-platform CLI and GUI tool to extract GitHub data (PRs, commits, issues, releases) into Markdown/JSON/PDF formats.
GitHub Extractor is a comprehensive tool that extracts and analyzes GitHub repository data including:
- Data Extraction: Pull Requests, Issues, Commits, Branches, and Release notes
- Multiple Interfaces:
- CLI (Command Line Interface) for automation and scripting
- GUI (Graphical User Interface) with Electron for interactive use
- Export Formats: Markdown, JSON, and PDF (with charts and visualizations)
- Analytics: Automatic report generation with metrics, trends, and recommendations
- Batch Processing: Export multiple repositories simultaneously
- Smart Mode: Incremental exports fetch only new/updated items (80-95% faster)
- Two Interfaces: Choose between CLI for automation or GUI for interactive use
- Comprehensive Exports: Markdown, JSON, and PDF with charts and visualizations
- Intelligence: Automatic analytics generation with trends, predictions, and insights
- Efficiency: Incremental exports (80-95% faster) - only fetch new/updated items
- Scalability: Batch process dozens of repositories in a single command
- Universal Access: Works with your repositories, collaborators, or any public repository
- Consistency: Reports adapt to export scope - complete for backups, accurate for filtered exports
Install and run:
# Install GitHub CLI (if not already installed) # Visit https://cli.github.com/ for installation instructions # Install ghextractor npm install -g ghextractor # Authenticate with GitHub (if not already authenticated) gh auth login # Run the interactive tool ghextractor
You'll see an interactive menu:
π GitHub Extractor
Choose your interface:
1) CLI - Command Line Interface (original)
2) GUI - Graphical User Interface (with filters)
q) Quit
Your choice (1/2/q):
Launch CLI directly:
ghextractor --cli
# or use any CLI arguments
ghextractor --help
ghextractor --versionLaunch GUI directly:
ghextractor --gui
The GUI mode includes:
- π Date Filters: Last week, last month, custom range, or all time
- π€ User Filters: Filter by specific contributors
- π¦ Multi-Export: Select multiple data types at once
- π Progress Tracking: Real-time export progress
- π¨ Modern UI: Beautiful, user-friendly interface
Example Use Case: Your PM asks "What did Daniel do last week?"
- Run
ghextractor --gui - Select repository
- Choose "Last Week" + "Daniel" from filters
- Export PRs, Commits, Issues
- Get instant report!
# Clone and install dependencies git clone https://github.com/LeSoviet/GithubCLIExtractor.git cd GithubCLIExtractor npm install # Development scripts npm run dev # Run CLI in development mode npm run dev:gui # Run GUI in development mode (with hot-reload) npm run build # Build CLI for production npm run build:gui # Build GUI for production npm run test # Run tests npm run test:coverage # Run tests with coverage
Production Ready - All core features implemented and tested:
- GitHub CLI integration and authentication
- Complete data extraction (PRs, Issues, Commits, Branches, Releases)
- Incremental exports (80-95% faster)
- Multiple export formats (Markdown, JSON)
- Batch processing for multiple repositories
- Automatic analytics generation with offline mode
- Auto update notifications
- Cross-platform support
Latest (v0.9.3):
- β Full Electron GUI with dark/light theme support
- β Custom cross-platform titlebar with window controls
- β Theme-aware UI components (scrollbar, buttons, menus)
- β Enhanced export limits (PRs/Issues: 1000, Commits: 500)
- β Data completeness validation for consistent reports
- β PDF export with proper Unicode handling
- β Auto-build and launch - no manual setup needed
- β Verified on Windows, macOS, and Linux (Nobara/Fedora)
- β 206 tests passing with comprehensive coverage
- β Production-ready with full documentation
Planned Enhancements:
- Performance benchmarking and optimization
- Advanced security scanning integration
- Custom report templates and theming
- Real-time collaboration features
MIT Β© Daniel Khadour https://github.com/LeSoviet