Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/git/vole.git

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0:2222/vole.git

A free and open-source forge that lives in your Git repo.

refactor

c5902451905acdaa478f8476844ccd4a510d9ca9 · Keenan Nemetz · 16d ago · parent ec2aba4b

README.md +24−2

@@ -128,6 +128,27 @@ so tell it once if the web is served through a proxy or another address:
128 128 public_url = "https://forge.example.com" # optional; the CLI prints links to it
129 129 ```
130 130
131 ## Extending Vole
132
133 The forge is also a Go library. The public packages are grouped by
134 responsibility, and a tool can talk to an instance or embed one without shelling
135 out to `vole`:
136
137 - `client` — the clone side: metadata branch writes, the roster and `whoami`
138 SSH verbs, object transfer, review helpers, and site deploys
139 - `core/id`, `core/git`, `core/lfs` — shared primitives and storage
140 - `forge` — instance lifecycle and administration; `forge/config`,
141 `forge/identity`, `forge/access`, `forge/repo`, and `forge/index` are its stores
142 - `metadata` — everything on `refs/heads/vole`: issues, requests, releases,
143 comments, approvals, and their validation
144 - `ci` — workflow validation and the queue (`ci/runs`); `ci/agent` is the
145 embeddable CI agent, used as `agent.Run`
146 - `server` — listeners and wiring; `server/ssh`, `server/githttp`,
147 `server/web`, `server/pages`, and `server/hook` are the edge adapters
148
149 `cmd/vole` stays a CLI: it parses git-style flags, chooses a command, and prints
150 the result. Logic that more than one caller needs lives in the packages above.
151
131 152 ## Filing an issue
132 153
133 154 An issue is one file on the `vole` branch. No client tooling is required:
@@ -197,8 +218,9 @@ clone.
197 218
198 219 Options follow git's conventions: `--long value`, `--long=value`, `-o value`,
199 220 `-ovalue`, repeatable `-l`, `--` to end option parsing, and `-h` for usage.
200 Options come before arguments — `vole issue comment -m text <id>`, not the other
201 way round — and a usage mistake exits 129, as git does.
221 Options may come before or after arguments, as in git itself — both
222 `vole issue comment -m text <id>` and `vole issue comment <id> -m text` work — and a
223 usage mistake exits 129, as git does.
202 224
203 225 The CLI writes the files, commits to the `issues` branch, validates locally and
204 226 pushes. Its author is the account your key resolves to — the CLI asks the instance