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.

Show real accounts as repository contributors

a32a859a08276681497be390d6f7195098a97ab4 · Keenan Nemetz · 5d ago · parent 802e0e52

Show real accounts as repository contributors

Count contributors from the change and issue records instead of the author text in commits: changes merged, issues those changes fixed, issues the reporter opened that were fixed, and reviews that named the merged head. The overview lists accounts by that work with compact icon counts and full labels in tooltips. The shortlog-derived contributor table and its refresh path are gone.

server/integration_test.go +23

@@ -2317,6 +2317,29 @@ func requestMeta(base, head, author string) string {
2317 2317 return requestFile(base, head, author, "")
2318 2318 }
2319 2319
2320 // requestFileMerged renders a request that already landed, for a fixture that
2321 // needs a merged change without running the landing flow. The merged head is the
2322 // same commit as the reviewed head, which is the fast-forward shape.
2323 func requestFileMerged(title, base, head, author, mergedBy string, closes []string) string {
2324 d := metadata.NewDoc()
2325 d.Text("title", title)
2326 d.Word("state", "merged")
2327 d.Word("author", author)
2328 d.Word("base", base)
2329 d.Word("head", head)
2330 d.Word("created", "2026-10-22T22:00:00Z")
2331 d.List("closes", closes)
2332 d.Word("merged_base", head)
2333 d.Word("merged_head", head)
2334 d.Word("merged_by", mergedBy)
2335 d.Word("merged_at", "2026-10-23T22:00:00Z")
2336 out, err := d.Bytes("")
2337 if err != nil {
2338 panic(err)
2339 }
2340 return string(out)
2341 }
2342
2320 2343 func approvalFile(base, head string) string {
2321 2344 d := metadata.NewDoc()
2322 2345 d.Word("base", base)