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.
Search every issue, change and comment from the top bar
6c03e6d3243d31a82210cc7bc689ab3e28226b6c · Keenan Nemetz · 10d ago · parent 389317ee
Search every issue, change and comment from the top bar The top bar's search now opens a command palette instead of a text field. The dialog asks the same index and visibility rule as /search, so private repositories stay out, and it answers with a short list plus a link to the full results. A button that looks like the old input launches it, labelled with the platform's shortcut; Ctrl K or Cmd K works anywhere. The bar's contents also line up with the page column now, and Home is marked current only on the landing page rather than on every repository page.
server/polish_test.go −3
| @@ -43,9 +43,6 @@ func TestRepositorySearchOnlyFindsVisibleRepositories(t *testing.T) { | |||
| 43 | 43 | if _, body := f.get("/?q=nothingmatches"); !strings.Contains(body, "No repositories match") { | |
| 44 | 44 | t.Fatalf("empty search state missing:\n%s", body) | |
| 45 | 45 | } | |
| 46 | if _, body := f.get("/"); !strings.Contains(body, `name="q"`) { | ||
| 47 | t.Fatalf("index page has no search form:\n%s", body) | ||
| 48 | } | ||
| 49 | 46 | } | |
| 50 | 47 | ||
| 51 | 48 | func TestIssueListPaginates(t *testing.T) { | |