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.
Render the styled error page for every miss and failure
e84a66f5b53c269d8b0c207d0335b537e1646cb3 · Keenan Nemetz · 15d ago · parent f6f4b1db
Render the styled error page for every miss and failure Handler-level 404s now use the same view as the catch-all, including unknown detail resources and download paths. Internal 500s render the shared error layout and log the detail instead of exposing it. A panic before the first byte is recovered into that page; a partial response is left to net/http. Also mark label/assignee triage and inline review comments done in the UI plan, where the slice order was stale.
server/web/requests.go +3−3
| @@ -77,7 +77,7 @@ func (w *Web) Requests(rw http.ResponseWriter, r *http.Request) { | |||
| 77 | 77 | } | |
| 78 | 78 | list, err := metadata.LoadRequests(m.Git(), metadata.Ref) | |
| 79 | 79 | if err != nil { | |
| 80 | http.Error(rw, "cannot read change requests: "+err.Error(), http.StatusInternalServerError) | ||
| 80 | w.serverError(rw, r, "cannot read change requests: "+err.Error()) | ||
| 81 | 81 | return | |
| 82 | 82 | } | |
| 83 | 83 | state := strings.TrimSpace(r.URL.Query().Get("state")) | |
| @@ -627,7 +627,7 @@ func (w *Web) RequestCommentForm(rw http.ResponseWriter, r *http.Request) { | |||
| 627 | 627 | } | |
| 628 | 628 | req, err := metadata.GetRequest(m.Git(), r.PathValue("id")) | |
| 629 | 629 | if err != nil { | |
| 630 | http.NotFound(rw, r) | ||
| 630 | w.notFound(rw, r) | ||
| 631 | 631 | return | |
| 632 | 632 | } | |
| 633 | 633 | target := commentTargetFromQuery(r) | |
| @@ -685,7 +685,7 @@ func (w *Web) RequestView(rw http.ResponseWriter, r *http.Request) { | |||
| 685 | 685 | } | |
| 686 | 686 | req, err := metadata.GetRequest(m.Git(), r.PathValue("id")) | |
| 687 | 687 | if err != nil { | |
| 688 | http.NotFound(rw, r) | ||
| 688 | w.notFound(rw, r) | ||
| 689 | 689 | return | |
| 690 | 690 | } | |
| 691 | 691 | ||