Skip to main content

Crate quarb_github

Crate quarb_github 

Source
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§

GithubAdapter
GitHub, exposed as an arbor.

Enums§

GithubError
An error connecting to or reading GitHub.