The forge carries the operator's own repositories (jschoubben/hal, jschoubben/novadock) beside the mesh's; the indexer writes their pull requests as candidates, the gate never names their trunk, so the checker said each "cannot be judged" and owed the status error on mesh/check, which the forge module wrote into repositories the mesh's forge account may not write: 403, 119 times each (sweep 2026-10-30 item 7). Quick fix: name the two repositories as not the mesh's in the checker. Thorough fix, chosen because any repository on the forge can meet it: a candidate every pull request of which is of a repository the gate's source.main names no trunk of and touches no module is outside the mesh. The checker writes it no verdict and owes it no status, takes away a status owed before, says it once in the log, and lists it in checker_status as outside_the_mesh. A new mesh repository's first pull request adds a module, so it is still said untrunked and owed error (issue 1422). Nothing is outside before the gate's source is read.
25 lines
935 B
Go
25 lines
935 B
Go
package check
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
)
|
|
|
|
// ErrConflict is what a KV answers when a Create finds the key or an Update finds another revision than the one given.
|
|
var ErrConflict = errors.New("the key exists or changed")
|
|
|
|
// KV is one of the checker's buckets: read, create and compare-and-set, each write answering the key's new revision. Only
|
|
// the checker's credential writes them (ADR 0444 clause 5, ADR 0484 clause 2).
|
|
type KV interface {
|
|
Get(ctx context.Context, key string) (value []byte, revision uint64, found bool, err error)
|
|
Create(ctx context.Context, key string, value []byte) (uint64, error)
|
|
Update(ctx context.Context, key string, value []byte, revision uint64) (uint64, error)
|
|
// Keys are every key of the bucket.
|
|
Keys(ctx context.Context) ([]string, error)
|
|
}
|
|
|
|
// Deleter is a KV that can take a key away; a KV that cannot leaves it.
|
|
type Deleter interface {
|
|
Delete(ctx context.Context, key string) error
|
|
}
|