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.
Drop the legacy run-record import
59badc638dde0655b11d01eebfe3a457735d2501 · Keenan Nemetz · 10d ago · parent b312e166
Drop the legacy run-record import There is no released instance to stay compatible with, so the file format under runs/, the branch importer, and the pre-receive allowance for that directory are gone. The Record value is now only the finish wire format and the shape stored in run_attempts. metadata.ValidateIssues rejects runs/ like any other unknown directory, and vole admin index rebuild no longer reads run history from Git. An existing instance migrates once with the previous build, then rewrites the vole branch to remove the old records. Nothing in this build reads them.
docs/architecture.md +3−6
| @@ -88,12 +88,9 @@ validates the request tree before committing it. A tagged build that publishes | |||
| 88 | 88 | release artifacts writes those pointers the same way. Everything that is pushed is | |
| 89 | 89 | checked at the boundary. | |
| 90 | 90 | ||
| 91 | Run records are not on the branch. A runner sends its result over the authenticated | ||
| 92 | SSH channel that leased the job, and the server stores it in `data/runs.db`; a clone | ||
| 93 | or backup of a repository does not carry CI history. An instance upgraded from an | ||
| 94 | older build may still have historical `runs/` files in its `vole` branch history; | ||
| 95 | `vole admin index rebuild` imports them into the database, and new results never go | ||
| 96 | there. | ||
| 91 | Run records are not in Git. A runner sends its result over the authenticated SSH | ||
| 92 | channel that leased the job, and the server stores it in `data/runs.db`; a clone or | ||
| 93 | backup of a repository does not carry CI history. | ||
| 97 | 94 | ||
| 98 | 95 | ## Why these choices | |
| 99 | 96 | ||