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.
Add instance-wide roles and refine access UI
5b814e9958090cfd1fa826efb2d375bf613547c1 · Keenan Nemetz · 14d ago · parent 9579c1f9
Add instance-wide roles and refine access UI Instance roles now live on accounts, apply to public repositories, and the Admin role is the unified instance-admin permission with access to every repository. Repository ACLs can raise an instance role but not lower it. Adds role assignment to the users UI and CLI, open-registration role config, a reusable role picker, and separates adding a repository account from saving access rules.
server/server.go +2−1
| @@ -183,7 +183,7 @@ func (s *Server) routes() *http.ServeMux { | |||
| 183 | 183 | mux.HandleFunc("GET /users", w.AdminUsersPage) | |
| 184 | 184 | mux.HandleFunc("POST /users", w.CreateAdminUser) | |
| 185 | 185 | mux.HandleFunc("GET /users/{name}", w.AdminUserPage) | |
| 186 | mux.HandleFunc("POST /users/{name}/admin", w.SetAdminUser) | ||
| 186 | mux.HandleFunc("POST /users/{name}/role", w.SetAdminUserRole) | ||
| 187 | 187 | mux.HandleFunc("POST /users/{name}/retire", w.RetireAdminUser) | |
| 188 | 188 | mux.HandleFunc("POST /users/{name}/invite", w.InviteAdminUser) | |
| 189 | 189 | mux.HandleFunc("POST /users/{name}/sessions/revoke", w.RevokeAdminUserSessions) | |
| @@ -232,6 +232,7 @@ func (s *Server) routes() *http.ServeMux { | |||
| 232 | 232 | mux.HandleFunc("GET /r/{name}/settings", w.SettingsPage) | |
| 233 | 233 | mux.HandleFunc("POST /r/{name}/settings", w.SaveSettings) | |
| 234 | 234 | mux.HandleFunc("POST /r/{name}/settings/access", w.SaveRepositoryAccess) | |
| 235 | mux.HandleFunc("POST /r/{name}/settings/access/add", w.AddRepositoryAccess) | ||
| 235 | 236 | mux.HandleFunc("POST /r/{name}/settings/rename", w.RenameRepository) | |
| 236 | 237 | mux.HandleFunc("POST /r/{name}/settings/delete", w.DeleteRepository) | |
| 237 | 238 | mux.HandleFunc("GET /r/{name}/releases", w.Releases) | |