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.
Compact the change request target controls
41d1fee900568b1bff5c7cff3b4c52942f47fabd · Keenan Nemetz · 13d ago · parent e050e14a
Compact the change request target controls Replace the separate base and head forms and the duplicated labels with one row: base picker, head picker, update. The pickers preselect the current targets, and a pinned head appears as the current commit. Collapse the help text to one line. Post both targets to one /target handler and write them in one metadata commit. Either change invalidates approvals; keeping the current value is allowed even if its branch has gone missing so the other side can still be repaired.
server/routes.go +1−2
| @@ -149,8 +149,7 @@ func (s *Server) repoRoutes(mux *http.ServeMux) { | |||
| 149 | 149 | mux.HandleFunc("POST /r/{name}/requests/{id}/comments/{comment}/edit", w.EditRequestComment) | |
| 150 | 150 | mux.HandleFunc("POST /r/{name}/requests/{id}/comments/{comment}/delete", w.DeleteRequestComment) | |
| 151 | 151 | mux.HandleFunc("POST /r/{name}/requests/{id}/state", w.ChangeRequestState) | |
| 152 | mux.HandleFunc("POST /r/{name}/requests/{id}/head", w.UpdateRequestHead) | ||
| 153 | mux.HandleFunc("POST /r/{name}/requests/{id}/base", w.UpdateRequestBase) | ||
| 152 | mux.HandleFunc("POST /r/{name}/requests/{id}/target", w.UpdateRequestTarget) | ||
| 154 | 153 | mux.HandleFunc("POST /r/{name}/ci/allow", w.AllowContributorCI) | |
| 155 | 154 | ||
| 156 | 155 | // Releases. A tag may contain "/", so the detail route takes the rest of the | |