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/vole.git

Write over SSH with a registered key:

git clone ssh://git@rodent.software:2222/vole.git

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

Create accounts with a key and find the instance config

c36d507302c0f7fb24af6eba390c4121d67318c3 · Keenan Nemetz · 16d ago · parent 3abbe749

Create accounts with a key and find the instance config

An account is now written with its first key in one transaction, so a name cannot be claimed without a credential. add-key remains for additional keys, and remote user create forwards the key on stdin.

Local commands now resolve the config from --config, VOLE_CONFIG, ./vole.toml, or ~/.vole/vole.toml before falling back to defaults. init prints --config in its next steps when the instance will not be discovered automatically.

server/hook/records_test.go +2−8

@@ -57,15 +57,9 @@ func newRecordFixture(t *testing.T) *recordFixture {
57 57 {"runner", &f.runnerID},
58 58 {"other", &f.otherID},
59 59 } {
60 acct, err := ident.Create(u.name, "test")
61 if err != nil {
62 t.Fatal(err)
63 }
64 // A key is still needed for the account to be a plausible pusher; nothing signs
65 // with it, but the roster refuses an account with no key at some call sites and
66 // the fixture should look like an instance.
67 60 _, pub := writeKey(t, filepath.Join(dir, u.name))
68 if _, err := ident.AddKey(acct.ID, pub, "test"); err != nil {
61 acct, err := ident.Create(u.name, pub, "test")
62 if err != nil {
69 63 t.Fatal(err)
70 64 }
71 65 *u.into = acct.ID