Skip to content

GitHub provider

The GitHub provider turns repository state into files. Issues and pull requests are object-shaped: listings preload useful field leaves, and later reads can render from cached canonical bytes. Repository contents use a tree-ref handoff so the host can expose a cloned repo tree as a real backing path.

FieldValue
Provider idgithub
Default mount/github
WASMomnifs_provider_github.wasm
Manifestproviders/github/omnifs.provider.json
Routesproviders/github/src/lib.rs
AuthGitHub OAuth device flow by default; personal access token also supported
Capabilitiesapi.github.com for API reads; git@github.com:* for repo tree handoff; declared memory need 256 MB
Terminal window
omnifs init github
omnifs up
omnifs shell

GitHub supports host-managed auth. The manifest declares api.github.com, git@github.com:*, expected memory needs, and authorization-header injection for GitHub API calls. The provider does not receive your token directly.

/github/{owner}
/github/{owner}/{repo}
/github/{owner}/{repo}/repo
/github/{owner}/{repo}/issues/{filter}
/github/{owner}/{repo}/issues/{filter}/{number}
/github/{owner}/{repo}/pulls/{filter}
/github/{owner}/{repo}/pulls/{filter}/{number}
/github/{owner}/{repo}/actions/runs/{run_id}

{filter} is the listing filter exposed by the provider, such as open or all. Issue and pull request comments are 1-indexed.

Terminal window
ls /omnifs/github/0xff-ai/omnifs
ls /omnifs/github/0xff-ai/omnifs/issues/open
cat /omnifs/github/0xff-ai/omnifs/issues/open/42/title
cat /omnifs/github/0xff-ai/omnifs/issues/open/42/item.json | jq .
cat /omnifs/github/0xff-ai/omnifs/issues/open/42/item.md
cat /omnifs/github/0xff-ai/omnifs/issues/open/42/comments/1
cat /omnifs/github/0xff-ai/omnifs/pulls/open/12/diff
ls /omnifs/github/0xff-ai/omnifs/repo

The repo path is not a metadata directory. It is a repository tree handoff. If clone/auth fails, inspect SSH agent forwarding and runtime logs.

Issue, pull request, and run reads use canonical object storage plus rendered view leaves. A first read may fetch a GitHub API payload; later field reads for the same object can render locally from the cached canonical payload until invalidated.

GitHub repo trees use SSH Git handoff. API token auth does not replace SSH agent access for /repo.