Resource typedef

Resource = String

A forge-qualified resource, all lowercase: <forge-host>/<owner> for a namespace, or <forge-host>/<owner>/<repo-path> for one repository — github.com/acme, github.com/acme/widgets, codeberg.org/acme. On a forge with nested groups (GitLab) the repository path holds the subgroups between the top-level owner and the project: gitlab.com/acme/platform/tools/cli is one repository of the namespace gitlab.com/acme, and a subgroup such as gitlab.com/acme/platform is not a resource. A repository path has 1 to 21 segments (GitLab: 20 levels of subgroup and the project); GitHub and Forgejo repository paths are always one. The forge is never implied: acme/widgets alone is not a resource. Containment is by whole segment: github.com/acme contains github.com/acme/widgets and does not contain github.com/acme-labs/x or codeberg.org/acme/widgets.

Implementation

typedef Resource = String;