<!-- Add the related story/sub-task/bug number, like Resolves #123, or remove if NA --> **Related issue:** NA — resolves high-severity code-scanning alerts in `tools/` Bumps the outdated `golang.org/x/net` and `golang.org/x/crypto` indirect dependencies in the four `tools/` Go modules to clear 39 high-severity code-scanning (SCA) alerts on `main`. Target versions match the root Fleet module. | Module | x/net | x/crypto | | --- | --- | --- | | `tools/dibble` | v0.53.0 → **v0.55.0** | v0.50.0 → **v0.52.0** | | `tools/hangar` | v0.53.0 → **v0.55.0** | v0.50.0 → **v0.52.0** | | `tools/terraform` | v0.48.0 → **v0.55.0** | v0.46.0 → **v0.52.0** | | `tools/github-manage` | v0.38.0 → **v0.55.0** | — | CVEs cleared: - **x/net v0.55.0**: CVE-2026-25681, -27136, -33814, -39821, -42502 - **x/crypto v0.52.0**: CVE-2026-39827, -39828, -39829, -39830, -39832, -39835, -42508, -46595, -46597 All four modules `go mod verify` clean and build. Dependency-only change to internal dev tooling — no product code, no user-visible behavior. > The remaining 8 high-severity alerts in `tools/` are OpenSSF Scorecard > "Binary-Artifacts" findings for embedded dibble seed installers; those are > tracked separately and not addressed here. # Checklist for submitter - [x] Input data is properly validated, `SELECT *` is avoided, SQL injection is prevented (using placeholders for values in statements), JS inline code is prevented especially for url redirects, and untrusted data interpolated into shell scripts/commands is validated against shell metacharacters. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated several bundled Go dependencies across internal tooling to newer versions. * This includes refreshes to common networking, cryptography, text, and system packages, plus one added telemetry-related dependency. * No user-facing features or behavior changes were introduced. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
🚀 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 and 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
oto 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.logfor 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 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
# 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
# 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
- Filter Issues: Press
/to narrow down the list by typing keywords - Select Issues: Use
Space/Enterto select multiple issues (selections persist across filters) - Start Workflow: Press
wto open workflow menu - Choose Operation: Navigate with
↑/↓, confirm withEnter - Watch Progress: Real-time progress bars and status updates
- 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 repository and follows the same licensing terms.
Built with 💪 by the Fleet team
Making GitHub management a joy, one bulk operation at a time

