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.

Identify accounts by their registered name

62576fa8157d431dcf2d360f3ebe481de77bda03 · Keenan Nemetz · 14d ago · parent 642e5994

Identify accounts by their registered name

Drop the internal account id and display name. Users, keys, passkeys,
invites, sessions, ACL entries, approvals, locks and CI records now all
use the registered name as the single identity.

The roster migrates in place: old id-keyed tables are rebuilt around the
name, and access-rule/lock references are rewritten through the same
mapping. Display-name editing and whoami --id are removed.

docs/change-requests.md +6−6

@@ -9,7 +9,7 @@ so if the branch changes after approval, the approval no longer applies.
9 9 ```text
10 10 requests/<ulid>/request.md # title, state, author, base, head
11 11 requests/<ulid>/comments/<ulid>.md # discussion
12 requests/<ulid>/approvals/<account-id>.md # one approval per account
12 requests/<ulid>/approvals/<account-name>.md # one approval per account
13 13 ```
14 14
15 15 ## Opening and landing a request
@@ -19,7 +19,7 @@ A contributor opens a request from the web after pushing a branch under
19 19 repository's change-request page lists their namespaced branches; the browser
20 20 builds the request from the branch's current commit. A contributor cannot name an
21 21 arbitrary commit or another account's branch. The namespace is the account name,
22 which is fixed at creation, so changing a display name never moves a branch. CI
22 which is fixed at creation. CI
23 23 for that commit is held until a maintainer allows the exact tip from the
24 24 repository page.
25 25
@@ -58,13 +58,13 @@ or a merge of that commit with the current branch. That is why "merge, then push
58 58 works, but adding an extra commit after approval does not.
59 59
60 60 An approval can also be recorded from the request page in the browser when the
61 signed-in account has maintain access. The approver is the session's account id, not
61 signed-in account has maintain access. The approver is the session's account name, not
62 62 a name from the page.
63 63
64 An approval is stored at `approvals/<account-id>.md`. Only the account named in
64 An approval is stored at `approvals/<account-name>.md`. Only the account named in
65 65 that path can create, change, or remove it. `request.md` records the author's
66 account name in `author` and their id in `author_id`; the page shows the author's
67 display name, but neither field carries authority. An admin can repair an
66 account name in `author`; that is the only author field and it is what blocks
67 self-approval. An admin can repair an
68 68 approval, and the override is recorded in `data/audit.log`.
69 69
70 70 The request page has three tabs. **Conversation** holds the description,