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

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0: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/commit.go +3−3

@@ -23,17 +23,17 @@ func (w *Web) CommitView(rw http.ResponseWriter, r *http.Request) {
23 23 g := m.Git()
24 24 sha, err := g.RevParse(r.PathValue("sha"))
25 25 if err != nil || sha == "" {
26 http.NotFound(rw, r)
26 w.notFound(rw, r)
27 27 return
28 28 }
29 29 log, err := g.Log(sha, 1)
30 30 if err != nil || len(log) == 0 {
31 http.NotFound(rw, r)
31 w.notFound(rw, r)
32 32 return
33 33 }
34 34 patch, truncated, err := g.ShowPatch(sha, diffCap)
35 35 if err != nil {
36 http.Error(rw, "vole: cannot read that commit", http.StatusInternalServerError)
36 w.serverError(rw, r, "cannot read that commit: "+err.Error())
37 37 return
38 38 }
39 39 body, _ := g.CommitBody(sha)