star repo
in progress
in progress landing now, in phase 2 of the roadmap.
star repo add <remote> [--name <namespace>]
Clone the remote into star’s cache, record the remote and its current HEAD commit as the pin, and
derive the namespace from the URL (or take --name).
star repo add https://git.jingus.dev/jingus/starters
star repo add git@github.com:acme/templates.git --name acme/templates
On success: namespace <short-commit> added.
The namespace is validated (#-free, no .., not absolute), and collisions are handled with
advice, not shrugs:
- Derived namespace already configured with the same remote → suggested:
star repo update <ns>. - Same namespace, different remote → suggested: pass
--name.
star repo update [<namespace>] [-f <file>] [--force]
Move pins deliberately.
star repo update jingus/starters # one repository, to remote HEAD
star repo update # every repository in the config
star repo update -f ./star.config.toml # operate on a specific config file
An update resolves remote HEAD (git ls-remote), fetches the cached clone so the new pin is
locally resolvable, rewrites the commit field, and saves:
star repo update jingus/starters abc1234 → def5678 star/starters ae3b135 (unchanged)
-f/--file retargets that invocation to an arbitrary config file — for people whose config is
generated (nix, dotfiles managers) and edited in a checkout.
star repo list [--templates]
One line per repository — namespace short-commit remote:
star repo list jingus/starters ae3b135 https://git.jingus.dev/jingus/starters star/starters 7f2c9ab https://git.jingus.dev/star/starters
With --templates, star ensures each clone is at its pin (fetching if stale) and prints every
discovered template as namespace#name — description. An empty config prints the first-run hint
instead.
star repo remove <namespace>
Drop the config entry and delete the cached clone. The cache is pure — nothing else references it, so removal is complete and safe.