Issue fetcher port
Definition¶
Hexagonal port for fetching GitHub issues from the upstream source of truth. Exposes two methods consumed by domain code (phases and background loops): fetch_issue_by_number for single-issue lookups and fetch_issues_by_labels for label-scoped batch fetches. Implemented by issue_fetcher.IssueFetcher, which shells out to the gh CLI and applies internal caching and rate-limit back-off.
Invariants¶
- Pure Protocol — no implementation, no state.
- Only the two methods domain code actually calls are declared here; the concrete
IssueFetchercarries additional infrastructure methods (PR cache, collaborator cache) that stay off the port. fetch_issues_by_labelsaccepts an optionalexclude_labelslist and arequire_completeflag so callers can narrow results without extra filtering passes.