Expand description
GitLab API adapter for the Quarb query engine.
GitLab’s defining shape is the deep tree — groups nest
arbitrarily, and a group’s children mix subgroups and
projects — which the REST API makes you walk by URL-encoded
full paths and numeric ids. The arbor restores it to what it
is: /tesslab/instruments/gauge/issues/7 addresses a project
three levels down and its issue in one path, each segment one
GET. Under a project: files (the default branch’s tree,
content as the node value), issues and mrs (the open
sets; direct addressing by iid reaches any state),
releases, and pipelines (jobs as children — CI is half of
what a GitLab project is).
GitLab is about the code, not the social graph, and the edge
fabric follows: no follows, stars as a count (::stars).
The relation that matters is membership — ->member
edges on groups and projects carry their access level as edge
data ($-::access, $-::role) — plus parent on forks
(<-parent enumerates a project’s forks) and author /
assignee / reviewer on issues and merge requests.
Metadata splits by register: comparable values are properties
(::stars, ::open-issues, timestamps as instants); unary
facts are traits — visibility (<private>), <archived>,
<fork>, project topics, issue/MR labels verbatim (scoped
labels included), <draft>, <confidential>, and
pipeline/job statuses (<failed>).
Transport and auth: the adapter shells out to glab api,
so hosts (GITLAB_HOST), tokens, and self-managed instances
behave exactly as the glab CLI does. Read-only — only GETs.
Target: gitlab: (address from the root), or
gitlab:PATH to anchor a group, project, or user namespace.
QUARB_GLAB overrides the binary.
Structs§
- Gitlab
Adapter - GitLab, exposed as an arbor.
Enums§
- Gitlab
Error - An error connecting to or reading GitLab.