vole
Clone
Read only, no credentials:
https://rodent.software/vole.git
Write over SSH with a registered key:
git clone ssh://git@rodent.software: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/admin_repos.go +2−2
| @@ -2,7 +2,7 @@ package web | |||
| 2 | 2 | ||
| 3 | 3 | // Creating a repository is an instance-admin operation because it chooses the | |
| 4 | 4 | // owner and the name that every clone URL will use. After creation the admin is | |
| 5 | // sent straight to the access editor, which is the next thing they usually need. | ||
| 5 | // sent straight to the repository's Settings page, where access rules live. | ||
| 6 | 6 | ||
| 7 | 7 | import ( | |
| 8 | 8 | "net/http" | |
| @@ -79,5 +79,5 @@ func (w *Web) CreateAdminRepo(rw http.ResponseWriter, r *http.Request) { | |||
| 79 | 79 | } | |
| 80 | 80 | } | |
| 81 | 81 | w.audit("web.admin.repo.create", pr.account.Name, m.Name+" owner="+owner.Name) | |
| 82 | http.Redirect(rw, r, "/admin/repos/"+m.Name+"/access", http.StatusSeeOther) | ||
| 82 | http.Redirect(rw, r, "/r/"+m.Name+"/settings", http.StatusSeeOther) | ||
| 83 | 83 | } | |