Commit 9276ff4
authored
feat(fetchers): add GitHubIssueFetcher for structured issue/PR fetching (#61)
## What
Adds a dedicated `GitHubIssueFetcher` that matches
`github.com/{owner}/{repo}/issues/{number}` and `.../pull/{number}`
URLs, returning structured metadata and comment threads via the GitHub
API.
Closes #50
## Why
Agents constantly reference, triage, and cross-link GitHub issues and
PRs. The DefaultFetcher returns noisy HTML. A dedicated fetcher using
the GitHub API yields clean, structured data optimized for LLM
consumption.
## How
- New `GitHubIssueFetcher` following the existing `GitHubRepoFetcher`
pattern
- Fetches issue metadata via `/repos/{owner}/{repo}/issues/{number}`
- Fetches PR-specific data (diff stats, merge status) via
`/repos/{owner}/{repo}/pulls/{number}`
- Fetches comment threads via
`/repos/{owner}/{repo}/issues/{number}/comments`
- Formats as structured markdown with metadata, description, and
comments
- Format field: `"github_issue"` / `"github_pull_request"`
- Registered before `GitHubRepoFetcher` (more specific URL pattern)
## Risk
- Low
- Only adds a new fetcher; no changes to existing fetcher behavior
### Checklist
- [x] Unit tests passed
- [x] Clippy clean (`-D warnings`)
- [x] Docs build without warnings
- [x] Formatting applied1 parent ae27474 commit 9276ff4
3 files changed
+583
-5
lines changed
0 commit comments