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.

forge/access/acl.go +2−2

@@ -58,7 +58,7 @@ const Write = Maintain
58 58
59 59 // ACL is one repository's rules. They live in the instance database beside the roster
60 60 // (see the access package), not inside the repository: they are configuration the
61 // instance owns, and they are keyed by account id, so a copy in a clone would mean
61 // instance owns, and they are keyed by account name, so a copy in a clone would mean
62 62 // nothing without the roster that gives those ids names.
63 63 type ACL struct {
64 64 Version int `json:"version"`
@@ -207,7 +207,7 @@ func ContributorBranchPrefix(name string) string {
207 207 }
208 208
209 209 // IsContributorRef reports whether ref is a non-empty branch inside name's
210 // namespace. name is the account name, never a display name.
210 // namespace. name is the account name.
211 211 func IsContributorRef(name, ref string) bool {
212 212 if name == "" {
213 213 return false