37 lines
1.8 KiB
Go
37 lines
1.8 KiB
Go
package delivery
|
|
|
|
import "time"
|
|
|
|
// BuildRecord is the layout mesh-controller internal/chain/records.go Build writes (line 91), the fields a reader outside
|
|
// the controller reads (novox/hq ADR 0437 §4 §5, issue 1223). The controller's record carries more; a decode ignores
|
|
// what is not here. SourceInputs has no json keys of its own: it is written under its Go field names, as the controller
|
|
// writes it.
|
|
type BuildRecord struct {
|
|
ID string `json:"id"`
|
|
State string `json:"state,omitempty"`
|
|
Repository string `json:"repository"`
|
|
Ref string `json:"ref,omitempty"`
|
|
Module string `json:"module,omitempty"`
|
|
Commit string `json:"commit,omitempty"`
|
|
At time.Time `json:"at,omitzero"`
|
|
SourceFingerprint string `json:"source-fingerprint,omitempty"`
|
|
SourceInputs *SourceInputs `json:"source-inputs,omitempty"`
|
|
}
|
|
|
|
// BuildsBucket is the bucket the builds are kept in: mesh-controller internal/broker/controller_buckets.go:101,
|
|
// BucketName(ControllerSeat, ChainBuilds), with ControllerSeat "mesh-controller" (internal/broker/streams.go:359) and
|
|
// ChainBuilds "builds" (controller_buckets.go:113).
|
|
const BuildsBucket = "mesh-controller_builds"
|
|
|
|
// BuildKey is a build's record under its module, a build that knew none under the request's key: copied from
|
|
// mesh-controller internal/chain/keys.go:35-41 (BuildKey, with RequestKey at line 43).
|
|
func BuildKey(module, id string) string {
|
|
if module == "" {
|
|
return "req." + id
|
|
}
|
|
return module + ".build." + id
|
|
}
|
|
|
|
// NewestKey is the key of a module's newest build, of any state: copied from mesh-controller internal/chain/keys.go:46.
|
|
func NewestKey(module string) string { return module + ".newest" }
|