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) | |