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.

Add browser auth, contributor access, and gated CI

6c84d387e5f608360e30484a1a5b1cff41076850 · Keenan Nemetz · 16d ago · parent c36d5073

Add browser auth, contributor access, and gated CI

Browser sign-in now uses passkeys. Enrollment links are one-time, sessions are hashed in users.db, and issue/comment/approval writes use the session account. HTTPS public_url is required for WebAuthn.

Add the contributor role between read and maintain. Contributors can discuss and open change requests, and may push only refs/heads/contrib/<account-id>/. Contributor CI is held per commit until a maintainer allows the exact tip from the repository page.

Rename the write role to maintain. write remains accepted as the historical spelling, and access.Write remains as a Go alias so existing callers and ACL rows keep working.

Update the web, CLI, queue schema, and guides for the new flows, and cover the role, namespace, auth, and CI-gating paths in tests.

README.md +10

@@ -17,6 +17,8 @@ you do not own.
17 17 a box in the closet.
18 18 - **It is easy to run.** One binary, one config file, and no extra services to
19 19 operate. You do not need a cloud account to get started.
20 - **Browser sign-in without passwords.** People who file issues can enroll a
21 passkey from a one-time link; there is no password database to protect.
20 22 - **Admins can work from anywhere.** Instance admins can create users,
21 23 repositories, and access rules over the same SSH connection, from any machine.
22 24 - **It is small on purpose.** Fewer moving parts, fewer things to break, and a
@@ -48,6 +50,14 @@ git clone ssh://git@127.0.0.1:2222/demo.git # read/write, key required
48 50 git clone http://127.0.0.1:8080/git/demo.git # read only, no credentials
49 51 ```
50 52
53 To let people file issues and approve changes in a browser, set `public_url` to
54 the instance's `https://` address, then create an account and its enrollment
55 link:
56
57 ```sh
58 vole admin user create reporter
59 ```
60
51 61 New repositories are private. If someone opens a private repository on the web,
52 62 they get a `404` — the same answer as a repository that does not exist — so Vole
53 63 never confirms that it is there.