A comprehensive desktop application for managing all your GitHub repositories in one place. Built with Python and Tkinter, this tool provides a powerful interface to view, filter, and manage your entire GitHub portfolio.
- Complete Repository List - View all your repositories in a sortable table
- Real-time Statistics - See totals for repos, stars, forks, and more
- Status Indicators - Visual status showing activity level (π₯ Hot, π Active,
β οΈ Inactive, π΄ Stale, ποΈ Archived) - Visual Repository Types - Color-coded rows for private, archived, and forked repositories
- Visibility Filter - Show All, Public only, or Private only repositories
- Language Filter - Filter by programming language
- Text Search - Real-time search across repository names
- Smart Sorting - Click column headers to sort by any attribute
- Bulk Operations - Select multiple repositories for batch actions
- Quick Access - Double-click to open repositories in browser
- Clone Management - Clone single or multiple repositories locally
- License Updates - Update licenses across multiple repositories
- Bulk Settings - Apply settings to multiple repositories at once
- Context Menus - Right-click for repository-specific actions
- Keyboard Shortcuts - Efficient navigation and selection
- Progress Tracking - Visual progress bars for long-running operations
- Status Updates - Real-time status messages and feedback
- Python 3.7 or higher
pass
password manager (for GitHub token storage)- Git (for cloning functionality)
pip install -r requirements.txt
Store your GitHub personal access token in pass:
pass insert github/token
Enter your GitHub personal access token when prompted. You can create one at: https://github.com/settings/tokens
Required token permissions:
repo
- Full repository accessadmin:org
- Organization access (if managing org repos)
python3 github_repo_manager.py
Or make it executable:
chmod +x github_repo_manager.py
./github_repo_manager.py
The application window consists of several key areas:
- Control Panel (Left) - Buttons, filters, and statistics
- Repository Table (Center) - Main data display with sortable columns
- Status Bar (Bottom) - Progress and status information
Column | Description |
---|---|
β | Selection checkbox |
Repository Name | Name and link to repository |
Visibility | π Private or π Public |
Language | Primary programming language |
β | Star count |
π΄ | Fork count |
π | Open issues count |
License | Repository license type |
Size (KB) | Repository size |
Last Updated | Date of last commit |
Status | Activity status indicator |
Actions | Quick action menu |
- Single Selection: Click the checkbox in the first column
- Multiple Selection: Click multiple checkboxes
- Select All: (Feature to be implemented)
- Open in Browser: Double-click or use "Open in Browser" button
- Clone Repository: Right-click β Clone or use "Clone Selected" button
- View Settings: Right-click β Repository Settings
- Visibility: Use dropdown to show All/Public/Private repositories
- Language: Filter by specific programming language
- Search: Type in search box to filter by repository name
- Select multiple repositories using checkboxes
- Use bulk action buttons: Open, Clone, Update License, Bulk Settings
Your GitHub token needs the following scopes:
repo
- Access to repositoriesadmin:org
- Organization access (optional)
- Clone Directory:
~/git
(customizable per operation) - Refresh Interval: Manual refresh only
- GitHub API: Uses GitHub REST API v3
- π₯ Hot - Updated within 30 days
- π Active - Updated 30-180 days ago
β οΈ Inactive - Updated 180-365 days ago- π΄ Stale - Updated over 365 days ago
- ποΈ Archived - Repository is archived
- Yellow Background - Private repositories
- Red Background - Archived repositories
- Green Background - Forked repositories
- Blue Background - Selected repositories
Real-time statistics showing:
- Total repositories (filtered)
- Public/Private count
- Total stars across all repos
- Total forks across all repos
"Failed to get GitHub token from pass store"
- Ensure
pass
is installed and configured - Store your GitHub token:
pass insert github/token
"Failed to load repositories"
- Check your internet connection
- Verify your GitHub token has correct permissions
- Check if you've hit GitHub API rate limits
Repositories not loading
- Click the "π Refresh" button to reload
- Check the status bar for error messages
- Authenticated requests: 5,000 per hour
- Search API: 30 requests per minute
- The app shows progress bars for rate limit awareness
github-repo-manager/
βββ github_repo_manager.py # Main application
βββ requirements.txt # Python dependencies
βββ README.md # This file
βββ LICENSE # MIT License
βββ .gitignore # Git ignore rules
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
- Repository creation and deletion
- Issue and pull request management
- Branch management interface
- Repository templates
- Export/import repository lists
- Automated license updates
- Repository health scoring
- Integration with other Git providers
- GitHub token is stored securely in pass
- No tokens are logged or displayed in the UI
- All API calls use HTTPS
- Local repository data is cached in memory only
This project is licensed under the MIT License - see the LICENSE file for details.
Philip S Wright - GitHub Profile
- GitHub REST API for repository data
- Python Tkinter for the GUI framework
- Pass password manager for secure token storage