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.

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.

server/hook/hook.go +11−7

@@ -356,13 +356,6 @@ func PreReceive(cfg Config) int {
356 356 }
357 357 // The issues branch is user-authored content, so it is validated at the
358 358 // boundary: bad data never reaches the tree the web reads.
359 //
360 // Run records share the branch but not the authorship: they are written by
361 // the runner that ran the job, and the gate's question about them is who was
362 // allowed to. See records.go.
363 if c.ref == metadata.Ref {
364 problems = append(problems, recordFindings(g, c)...)
365 }
366 359 if c.ref == metadata.Ref && c.new != git.ZeroSHA {
367 360 for _, prob := range metadata.ValidateIssues(g, c.new) {
368 361 problems = append(problems, "issues: "+prob)
@@ -727,3 +720,14 @@ func shortOrNone(sha string) string {
727 720 }
728 721 return format.SHA(sha)
729 722 }
723
724 // openRuns opens the run queue for one gate check. The pre-receive hook is a
725 // process that answers one push and exits, so the store is opened per check and not
726 // closed: the close would come after the answer, and the process ends there anyway.
727 // The server, which is long-lived, passes its own open handle instead.
728 func openRuns(path string) func() (*runs.Store, error) {
729 if path == "" {
730 return nil
731 }
732 return func() (*runs.Store, error) { return runs.Open(path) }
733 }