mesh/delivery held for a person: merged without a passing check: only a person decides what follows
mesh/check pass 32ad59fc6402 on 609013a2638f | unit 2010 run, 2322 kept, 5 skipped | integration 2032 run, 2341 kept, 9 skipped | over bound: unit, in…
The operator, 2026-10-25 22:56: "run the check locally only, but not as a gate, it loses us too much time". Tonight each merge ask waited 3-7 minutes for mesh/check, and every merge into main refused the next approved merge for a check judged on the trunk before (mesh-delivery#52). Both settings default to true, so nothing changes until the operator sets them. False: the gate makes a reviewed pull request ready and asks its Approve with no verdict, a trunk's move puts nothing out of date, a verdict is kept and shown, and a group still merges in one pass; the merge tool merges a head the Approve names whatever its mesh/check says. delivery_status and show say the mode.
30 lines
920 B
Go
30 lines
920 B
Go
package main
|
|
|
|
import "time"
|
|
|
|
var t0 = time.Date(2026, 10, 6, 12, 0, 0, 0, time.UTC)
|
|
|
|
// mergedAt is the forge's `pull.merged` at a moment.
|
|
func mergedAt(p PullEvent, merge string, at time.Time) PullEvent {
|
|
p.MergeCommit = merge
|
|
p.MergedAt = at.UTC().Format(time.RFC3339)
|
|
return p
|
|
}
|
|
|
|
// verdictMoving is a passing verdict. The gate plans no delivery any more (ADR 0539 §17), so it names no module.
|
|
func verdictMoving(repo string, number int, sha string, _ ...string) CheckedEvent {
|
|
return verdict(repo, number, sha, "pass")
|
|
}
|
|
|
|
// ungated is the setting check-gates-merge false: mesh/check gates no merge (the operator, 2026-10-25 22:56).
|
|
func ungated(w *world) {
|
|
off := false
|
|
w.h.Settings = func() Settings { return Settings{CheckGatesMerge: &off} }
|
|
}
|
|
|
|
func statusOn(w *world, repo, commit string) string {
|
|
w.forge.mu.Lock()
|
|
defer w.forge.mu.Unlock()
|
|
return w.forge.statuses[repo+"@"+commit+" mesh/delivery"]
|
|
}
|