A CLI tool to fetch GitHub issues and save them as Markdown files.
🚧 Work in progress
- ✅ Fetch issues from GitHub via REST API (currently first 30 issues)
- ✅ Export to Markdown format
- ✅ CLI interface with argument parsing and validation
- ✅ User-friendly error handling
- ✅ Convert GitHub data to internal domain models
- Export to HTML format
- Support multiple repositories via config file
- Track sync state to avoid re-fetching
- Fetch comments for issues
- Pagination support for larger repositories (currently fetches first 30 issues)
- Custom formatting
Fetch issues from a GitHub repository and save to Markdown:
go-fetch fetch golang/go
# Creates golang-go-issues.mdShow help:
go-fetch --helpIssues are saved to {owner}-{repo}-issues.md in the current directory with:
- Repository title and fetch timestamp
- Issue number, title, author, state, and creation date
- Full issue body text
- Markdown formatting for easy reading
Example output structure:
# Issues for golang/go
Fetched: 2025-01-17T20:30:00Z
## Issue #12345: Bug in runtime
**Author:** username
**State:** open
**Created:** 2025-01-15
Issue description here...
---Run:
go run cmd/go-fetch/main.go fetch golang/goFormat code:
go fmt ./...Lint code:
golangci-lint runBuild binary:
go build -o go-fetch cmd/go-fetch/main.goRun binary:
./go-fetch fetch golang/gogo-fetch
├── LICENSE
├── README.md
├── cmd
│ └── go-fetch
│ └── main.go # entry point
├── go-fetch
├── go.mod
└── internal
├── api # external API clients
│ ├── client.go
│ └── github
│ ├── client.go
│ └── types.go
├── commands
│ └── fetch.go
├── models # domain models
│ ├── comment.go
│ └── issue.go
└── output
├── formatter.go
└── markdown.go
See the LICENSE file.