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/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.

Let the browser edit issue and change details

a4e7a99a9ecf697586abdb884351a722fc25a864 · Keenan Nemetz · 6d ago · parent de84c32b

Let the browser edit issue and change details

An issue's title and description could only be corrected with the CLI, and a
change request's prose could not be corrected at all after it was opened. Add an
edit page for each, offered to the author and to a maintainer. A change edit writes
through a new metadata writer so the record is still validated, and neither edit
touches the discussion, labels, or review state.

server/routes.go +4

@@ -141,6 +141,8 @@ func (s *Server) repoRoutes(mux *http.ServeMux) {
141 141 mux.HandleFunc("GET /r/{name}/issues/new", w.NewIssuePage)
142 142 mux.HandleFunc("POST /r/{name}/issues", w.CreateIssue)
143 143 mux.HandleFunc("GET /r/{name}/issues/{id}", w.IssueView)
144 mux.HandleFunc("GET /r/{name}/issues/{id}/edit", w.IssueEditPage)
145 mux.HandleFunc("POST /r/{name}/issues/{id}/edit", w.UpdateIssueDetails)
144 146 // One alias route for both kinds. `#42` in a body may name an issue or a
145 147 // change request, and the index is what knows which.
146 148 mux.HandleFunc("GET /r/{name}/n/{num}", w.NumberAlias)
@@ -157,6 +159,8 @@ func (s *Server) repoRoutes(mux *http.ServeMux) {
157 159 mux.HandleFunc("GET /r/{name}/requests/new", w.NewChangePage)
158 160 mux.HandleFunc("POST /r/{name}/requests", w.CreateChangeRequest)
159 161 mux.HandleFunc("GET /r/{name}/requests/{id}", w.RequestView)
162 mux.HandleFunc("GET /r/{name}/requests/{id}/edit", w.RequestEditPage)
163 mux.HandleFunc("POST /r/{name}/requests/{id}/edit", w.UpdateRequestDetails)
160 164 mux.HandleFunc("GET /r/{name}/requests/{id}/files", w.RequestFiles)
161 165 mux.HandleFunc("GET /r/{name}/requests/{id}/files/{path...}", w.RequestFiles)
162 166 mux.HandleFunc("GET /r/{name}/requests/{id}/runs", w.RequestRuns)