Examples¶
Runnable, token-free samples live in the repository under examples/.
examples/local-plan/¶
Safe preview with no namespace discovery (namespaces: []):
repoman config validate --config examples/local-plan/repoman.yaml
repoman local plan --config examples/local-plan/repoman.yaml
To try live discovery, copy the YAML outside Git, add your namespaces and remotes, set tokens, then run
local plan with --config pointing at your copy.
Never commit customised configs that contain real tokens or private inventory.
Namespace include and exclude¶
On each namespaces[] entry you can set include and exclude: lists of glob patterns matched
against the repository path relative to that namespace’s name (the forge path_with_namespace /
full_name with the namespace prefix removed).
- GitHub user or org
acme: projectacme/my-app→ relative pathmy-app(usually a single segment). - GitLab with nested groups: namespace
acme, projectacme/platform/api→ relative pathplatform/api.
Order: archived repositories are dropped first, then optional visibility, then include
(a repo is kept if any pattern matches), then exclude (any match drops the repo). If include is
omitted or empty, the default is ["**/*"] (everything under the namespace that passed earlier steps).
Patterns use fnmatch rules (*, ?, [seq], **). The pattern **/* is treated specially: it matches
any non-empty relative path (including top-level repo names).
Only specific repositories (allowlist)¶
namespaces:
- remote: github
name: dfabianus
include:
- "repoman"
- "my-dotfiles"
Everything except named repositories (denylist)¶
namespaces:
- remote: github
name: dfabianus
include: ["**/*"]
exclude:
- "scratch-repo"
- "temp-import"
Only repositories under a GitLab subgroup path¶
namespaces:
- remote: gitlab
name: acme
include_subgroups: true
include:
- "platform/**"
Exclude a whole subtree¶
namespaces:
- remote: gitlab
name: acme
include_subgroups: true
include: ["**/*"]
exclude:
- "archive/**"
- "experiments/**"
Glob by prefix or suffix¶
namespaces:
- remote: github
name: dfabianus
include:
- "infra-*"
exclude:
- "*-archive"
- "legacy-*"
Combine a broad include with a narrow exclude¶
namespaces:
- remote: github
name: dfabianus
include:
- "app-*"
exclude:
- "app-spike-*"
Explicit list plus a subtree (GitLab-style)¶
namespaces:
- remote: gitlab
name: acme
include_subgroups: true
include:
- "billing-service"
- "auth-service"
- "shared-libs"
- "shared-libs/**"
Replace remote kind, namespace name, and slugs with your own. Avoid exclude: ["**/*"] together with
include: ["**/*"] unless you intend to match no repositories (exclude wins after include).
For the full design notes, see Design specification §10 — Discovery filters.