A GitHub CLI extension for comprehensive milestone management.
No more gh api workarounds! Manage GitHub milestones with intuitive commands, beautiful formatting, and full CRUD operations.
β¨ Full CRUD Operations - Create, read, update, and delete milestones
π Beautiful Formatting - Table and JSON output with progress indicators
π Flexible Queries - Find milestones by number or title
π
Due Date Management - Set and update milestone deadlines
π― State Management - Quick close/reopen commands
π Multi-Repository - Work across different repos with --repo flag
The GitHub CLI doesn't provide native milestone commands, requiring users to use raw REST API calls for all milestone operations. This extension provides intuitive, full-featured milestone management.
gh extension install scttfrdmn/gh-milestone-manager# List all open milestones
gh milestone list
# Create a new milestone
gh milestone create --title "v1.0.0" --due-date "2025-12-31"
# View milestone details
gh milestone view 1
# Close a milestone
gh milestone close 1gh milestone create "v1.0.0" \
--title "Version 1.0.0 Release" \
--description "First stable release" \
--due-date "2025-12-31"Flags:
--title/-t(required): Milestone title--description/-d: Description--due-date: Due date (YYYY-MM-DD format)--state:open(default) orclosed--repo/-R: Target repository (default: current repo)
gh milestone list
gh milestone list --state closed
gh milestone list --state allFlags:
--state/-s: Filter by state (open,closed,all) - default:open--sort: Sort by (due-on,completeness,title) - default:due-on--json: Output JSON--repo/-R: Target repository
gh milestone view 1
gh milestone view "v1.0.0"View detailed information about a milestone including progress and issue list.
gh milestone edit 1 --title "v1.0.0 - Updated Title"
gh milestone edit 1 --due-date "2026-01-15"
gh milestone edit 1 --state closedFlags:
--title/-t: Update title--description/-d: Update description--due-date: Update due date--state: Update state (openorclosed)
gh milestone close 1
gh milestone reopen 1Convenient shortcuts for changing milestone state.
gh milestone delete 1
gh milestone delete 1 --yes # Skip confirmation- Go 1.21 or later
- GitHub CLI (
gh) installed
git clone https://github.com/scttfrdmn/gh-milestone-manager.git
cd gh-milestone-manager
go build
gh extension install .# Test the extension locally
gh milestone list
# Run Go tests
go test ./...# Build for current platform
go build -o gh-milestone
# Cross-compile for release (done automatically by GitHub Actions)
GOOS=linux GOARCH=amd64 go build -o gh-milestone-linux-amd64
GOOS=darwin GOARCH=amd64 go build -o gh-milestone-darwin-amd64
GOOS=darwin GOARCH=arm64 go build -o gh-milestone-darwin-arm64
GOOS=windows GOARCH=amd64 go build -o gh-milestone-windows-amd64.exegh-milestone-manager/
βββ main.go # Entry point and CLI setup
βββ cmd/ # Command implementations
β βββ create.go
β βββ list.go
β βββ view.go
β βββ edit.go
β βββ delete.go
βββ pkg/
β βββ api/ # GitHub API client wrapper
β βββ format/ # Output formatting (tables, JSON)
βββ .github/
βββ workflows/
βββ release.yml # Automated cross-platform builds
- Update version in code
- Commit changes:
git commit -am "Release v1.0.0" - Create tag:
git tag v1.0.0 - Push tag:
git push --tags - GitHub Actions automatically builds cross-platform binaries and creates release
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes with tests
- Submit a pull request
MIT License - see LICENSE file for details
- gh-label-sync - Companion extension for label management
- GitHub CLI
- go-gh - Go library for building GitHub CLI extensions
This extension was created because GitHub CLI maintainers decided not to include native milestone commands in the core CLI, preferring users create extensions for this functionality.
The design is based on comprehensive real-world experience setting up GitHub projects.