# đ GitHub Management (GM) Tool > **Supercharge your GitHub workflow with bulk operations and beautiful terminal UI**   --- ## ⨠What is GM? GM (GitHub Management) is a powerful command-line tool that brings **bulk operations** and **beautiful visualization** to GitHub issue management. Built with â¤ī¸ using [Bubble Tea](https://github.com/charmbracelet/bubbletea) and [Glamour](https://github.com/charmbracelet/glamour), it transforms tedious GitHub workflows into delightful interactive experiences. ## đ¯ Features ### đ **Smart Issue Discovery** - **Search Issues**: Powerful GitHub search syntax support - **Project Views**: Browse issues by project with estimates - **Scrollable Lists**: Navigate through hundreds of issues with ease - **Live Filtering**: Press `/` to filter issues by number, title, labels, or description - **Real-time Filtering**: Filter updates instantly as you type ### đ **Detailed Issue Views** - **Full Issue Details**: Press `o` to view complete issue information - **Markdown Rendering**: Beautiful, styled markdown with syntax highlighting - **Scrollable Content**: Navigate through long descriptions smoothly - **Metadata Display**: Labels, estimates, assignees, milestones at a glance ### ⥠**Bulk Operations & Workflows** - **đˇī¸ Bulk Label Management**: Add/remove labels across multiple issues - **đ Sprint Kickoff**: Move issues from drafting to active sprint - **đ Milestone Close**: Batch close milestones and move issues - **âŠī¸ Kick Out of Sprint**: Remove issues from current sprint back to drafting - **đ Progress Tracking**: Real-time visual progress with async operations ### đ ī¸ **Developer Experience** - **File-based Logging**: All operations logged to `dgm.log` for debugging - **Command Debugging**: Track all commands and arguments - **Error Handling**: Graceful error recovery with detailed messages - **GitHub CLI Integration**: Leverages your existing GitHub authentication ## đ Quick Start ### Prerequisites - [GitHub CLI](https://cli.github.com/) installed and authenticated ``` gh auth login gh auth refresh -s project # This will give gh project access which is not included by default ``` - Go 1.24+ for building from source ### Installation ```bash # Clone the repository git clone https://github.com/fleetdm/fleet.git cd fleet/tools/github-manage # Build the tool go build -o gm cmd/gm/*.go # or make # Make it executable (optional - add to PATH) chmod +x gm ``` ### Basic Usage ```bash # Search for issues ./gm issues --search "is:open label:bug" # View project items ./gm project 58 --limit 50 # Don't know your project number off the top of your head? # There are some easy to use aliases defined in pkg/ghapi/project.go in `Aliases` # View estimated tickets ./gm estimated mdm --limit 25 # Pre-sprint report for one or more teams # Single team (alias or project id) ./gm pre-sprint report mdm # Multiple teams (comma-separated) ./gm pre-sprint report mdm,soft --limit 1000 # CSV format for spreadsheet use (outputs values per team in provided order) ./gm pre-sprint report mdm,soft --format csv ``` ## đŽ Interactive Controls ### đ **Issue List Navigation** | Key | Action | |-----|--------| | `â/â` or `j/k` | Move cursor up/down | | `PgUp/PgDn` or `Ctrl+b/f` | Page up/down | | `Home/End` or `Ctrl+a/e` | Jump to first/last issue | | `Space/Enter/x` | Toggle issue selection | | `/` | **Start filtering issues** | | `o` | **View full issue details** | | `w` | Open workflow menu | | `q` | Quit application | ### đ **Filter Mode** | Key | Action | |-----|--------| | `Type` | Filter by number, title, labels, description | | `Backspace` | Remove last character from filter | | `Enter` | **Apply filter and return to list** | | `Esc` | **Clear filter and return to list** | | `q` | Quit application | ### đ **Issue Detail View** | Key | Action | |-----|--------| | `â/â` or `j/k` | Scroll up/down | | `PgUp/PgDn` | Page up/down | | `Home/End` | Jump to top/bottom | | `Esc` | **Return to issue list** | | `q` | Quit application | ### ⥠**Workflow Operations** 1. **Filter Issues**: Press `/` to narrow down the list by typing keywords 2. **Select Issues**: Use `Space/Enter` to select multiple issues (selections persist across filters) 3. **Start Workflow**: Press `w` to open workflow menu 4. **Choose Operation**: Navigate with `â/â`, confirm with `Enter` 5. **Watch Progress**: Real-time progress bars and status updates 6. **Review Results**: Success/failure summary with error details ## đ§ Advanced Features ### đ **Project Management** - **Project Integration**: Seamlessly work with GitHub Projects - **Estimate Tracking**: View and sync story point estimates - **Sprint Management**: Automate sprint transitions - **Status Updates**: Bulk status changes across project items ### đ¨ **Beautiful UI** - **Syntax Highlighting**: Code blocks in issue descriptions rendered beautifully - **Progress Visualization**: Animated progress bars for long operations - **Color-coded Status**: Visual indicators for task states - **Responsive Design**: Adapts to your terminal size ### đ **Logging & Debugging** - **Comprehensive Logging**: All operations logged to `dgm.log` - **Command Tracing**: Debug mode tracks all GitHub CLI commands - **Error Context**: Detailed error messages with actionable information - **Performance Metrics**: Operation timing and success rates ## đī¸ Architecture GM is built with modern Go patterns and best practices: - **đ§Š Modular Design**: Separate packages for GitHub API, logging, and UI - **⥠Async Operations**: Non-blocking bulk operations with real-time updates - **đ State Management**: Robust state handling with Bubble Tea - **đ Clean UI**: Separation of business logic and presentation - **đ Comprehensive Logging**: Debug-friendly logging throughout ## đ¤ Contributing We welcome contributions! Whether it's: - đ Bug fixes - ⨠New features - đ Documentation improvements - đ¨ UI enhancements ## đ License This project is part of the [Fleet](https://github.com/fleetdm/fleet) repository and follows the same licensing terms. ---