Expand description
GitHub API adapter for the Quarb query engine.
GitHub is three shapes at once, and the arbor keeps each in
its native register. The tree mirrors github.com URLs:
users and organizations at the root (addressed by login —
the root does not enumerate GitHub), their repositories as
direct children (/torvalds/linux), and each repository’s
sections below (files, issues, pulls, releases).
File content, issue bodies, and release notes are node
values. The social graph is edge fabric, every label
API-backed in both directions: follows (<-follows are
the followers), starred (<-starred the stargazers),
owner, parent (<-parent the forks), author /
assignee, org (<-org the members), and contributor
— whose edge carries data: $-::contributions. The
metadata splits by kind: counts and scalars are
properties (::stars, ::language, timestamps as
instants), while boolean flags (<fork>, <archived>,
<open>, <merged>), issue labels (<bug>), and repo
topics (<cli>) are traits — unary facts filter, values
compare.
Direct addressing skips enumeration: /rust-lang/rust is
one GET, /rust-lang/rust/issues/12345 another (closed
issues included — enumeration lists open ones, the API’s
default). Everything loads lazily and is cached for the
session; listing costs one paginated sweep per touched
container. Read-only — the adapter only ever GETs.
Transport and auth: the adapter shells out to gh api,
so authentication, hosts, and rate limits behave exactly as
the gh CLI does. Target: github: (whole GitHub, address
from the root), github:OWNER, or github:OWNER/REPO to
anchor the arbor. QUARB_GH overrides the binary.
Structs§
- Github
Adapter - GitHub, exposed as an arbor.
Enums§
- Github
Error - An error connecting to or reading GitHub.