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.

server/server.go +6−7

@@ -171,7 +171,6 @@ func (s *Server) routes() *http.ServeMux {
171 171 mux.HandleFunc("POST /auth/invite/begin", w.InviteBegin)
172 172 mux.HandleFunc("POST /auth/invite/finish", w.InviteFinish)
173 173 mux.HandleFunc("GET /account", w.AccountPage)
174 mux.HandleFunc("POST /account/display", w.SetAccountDisplay)
175 174 mux.HandleFunc("POST /account/keys", w.AddAccountKey)
176 175 mux.HandleFunc("POST /account/keys/remove", w.RemoveAccountKey)
177 176 mux.HandleFunc("POST /account/passkeys/begin", w.AddPasskeyBegin)
@@ -183,12 +182,12 @@ func (s *Server) routes() *http.ServeMux {
183 182 mux.HandleFunc("POST /admin/repos", w.CreateAdminRepo)
184 183 mux.HandleFunc("GET /admin/users", w.AdminUsersPage)
185 184 mux.HandleFunc("POST /admin/users", w.CreateAdminUser)
186 mux.HandleFunc("GET /admin/users/{id}", w.AdminUserPage)
187 mux.HandleFunc("POST /admin/users/{id}/admin", w.SetAdminUser)
188 mux.HandleFunc("POST /admin/users/{id}/retire", w.RetireAdminUser)
189 mux.HandleFunc("POST /admin/users/{id}/invite", w.InviteAdminUser)
190 mux.HandleFunc("POST /admin/users/{id}/sessions/revoke", w.RevokeAdminUserSessions)
191 mux.HandleFunc("POST /admin/users/{id}/keys/remove", w.RemoveAdminUserKey)
185 mux.HandleFunc("GET /admin/users/{name}", w.AdminUserPage)
186 mux.HandleFunc("POST /admin/users/{name}/admin", w.SetAdminUser)
187 mux.HandleFunc("POST /admin/users/{name}/retire", w.RetireAdminUser)
188 mux.HandleFunc("POST /admin/users/{name}/invite", w.InviteAdminUser)
189 mux.HandleFunc("POST /admin/users/{name}/sessions/revoke", w.RevokeAdminUserSessions)
190 mux.HandleFunc("POST /admin/users/{name}/keys/remove", w.RemoveAdminUserKey)
192 191 mux.HandleFunc("GET /admin/repos/{name}/access", w.AdminAccessPage)
193 192 mux.HandleFunc("POST /admin/repos/{name}/access", w.SaveAdminAccess)
194 193 mux.HandleFunc("GET /r/{name}", w.Overview)