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.
Fold admin work into repository settings and a Users page
9579c1f976254fdeb2ec73d4016db5b25c7921c1 · Keenan Nemetz · 14d ago · parent 381d6aac
Fold admin work into repository settings and a Users page Remove the combined /admin tabs. Per-repository access rules now live on the repository's Settings page, visible to instance admins while repository details and the danger zone stay with repository admins. User management moves to /users, linked from the top navigation only for instance admins, and repository creation moves to /repos/new. Align the invite, danger-zone, and settings forms with the shared card-and-actions layout, and make settings section headings consistent.
server/web/auth.go +4−2
| @@ -330,8 +330,10 @@ func (w *Web) page(r *http.Request, title string) Page { | |||
| 330 | 330 | if p.LoggedIn && w.Repos != nil { | |
| 331 | 331 | if name := r.PathValue("name"); name != "" { | |
| 332 | 332 | if m, err := w.Repos.Open(name); err == nil { | |
| 333 | if acl, err := m.ACL(); err == nil && acl.Can(p.AccountName, access.Admin) { | ||
| 334 | p.CanAdmin = true | ||
| 333 | if acl, err := m.ACL(); err == nil { | ||
| 334 | // Instance admins get the Settings tab for its access section, | ||
| 335 | // even when the repository has no role for them. | ||
| 336 | p.CanAdmin = p.InstanceAdmin || acl.Can(p.AccountName, access.Admin) | ||
| 335 | 337 | } | |
| 336 | 338 | } | |
| 337 | 339 | } | |