Expand description
GitHub provider (reference implementation, plans/0005): wraps the
REST Client — auth resolution, sha-keyed disk cache, ETag
revalidation all live inside it (PLAN.md §7/§8).
Modules§
- cache
- Content-addressable disk cache for the GitHub provider, under ~/.cache/rootle/providers/github (plans/0005: each provider owns its cache subtree; the TUI-level edit/ scratch stays at ~/.cache/rootle). Trees are immutable (sha-keyed) — never invalidated, only evicted. Ref mappings (owner/repo/branch → tree_sha + etag) are mutable and revalidated with If-None-Match on every open.
- client
- GitHub client composition. Resource operations live in sibling modules; only construction and shared session state belong in this file.
- types
- Serde models for the GitHub REST API (only what rootle consumes).
UI-facing types (
SearchItem,TreeNode, …) live incrate::provider— the trait boundary; these are wire models.