Each change of an artifact's series the checked head makes is {module, artifact, from, to} under series; the
fixture carries one and the regenerated round trip reads it back (seatgen -check clean).
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
132 lines
4.3 KiB
Go
132 lines
4.3 KiB
Go
// Code generated by seatgen from the seat definitions; DO NOT EDIT.
|
|
|
|
// Package meshdeliverychecker is the contract of the seat "mesh-delivery-checker", defined whole (seats/mesh-delivery-checker/seat.json): The merge check's tries: start one, read one, end one. The checker's own events stay under its own subjects (ADR 0620 §2).
|
|
package meshdeliverychecker
|
|
|
|
// Seat is the seat's name.
|
|
const Seat = "mesh-delivery-checker"
|
|
|
|
const (
|
|
VerbTry = "try"
|
|
VerbTryRead = "try-read"
|
|
VerbTryEnd = "try-end"
|
|
)
|
|
|
|
// Verbs is every verb the seat serves, in its definition's order: a new copy each call.
|
|
func Verbs() []string {
|
|
return []string{VerbTry, VerbTryRead, VerbTryEnd}
|
|
}
|
|
|
|
// The holder's own events, listed beside the seat and published under the holder's subjects (ADR 0620 §2).
|
|
const (
|
|
HolderEventVerdict = "verdict"
|
|
HolderEventTagWanted = "tag-wanted"
|
|
HolderEventPreviewWritten = "preview.written"
|
|
)
|
|
|
|
// HolderSubjectVerdict is where the holder publishes verdict, kept in checker.asks.
|
|
func HolderSubjectVerdict(holder string) string { return "mesh.stream." + holder + ".event.verdict" }
|
|
|
|
// HolderSubjectTagWanted is where the holder publishes tag-wanted, kept in checker.asks.
|
|
func HolderSubjectTagWanted(holder string) string {
|
|
return "mesh.stream." + holder + ".event.tag-wanted"
|
|
}
|
|
|
|
// HolderSubjectPreviewWritten is where the holder publishes preview.written, kept in checks.
|
|
func HolderSubjectPreviewWritten(holder string) string {
|
|
return "mesh.stream." + holder + ".event.preview.written"
|
|
}
|
|
|
|
// TryInput is what try takes.
|
|
type TryInput struct {
|
|
// the full commit to try, 40 or 64 hex digits
|
|
Head string `json:"head"`
|
|
// unit or integration: only this level; both when absent
|
|
Level string `json:"level,omitempty"`
|
|
// <owner>/<name>
|
|
Repository string `json:"repository"`
|
|
// a go test -run pattern: only those tests run, and nothing is kept
|
|
Tests string `json:"tests,omitempty"`
|
|
// the trunk commit to merge it onto, or the trunk's branch for its head now; the trunk's head when absent
|
|
Trunk string `json:"trunk,omitempty"`
|
|
}
|
|
|
|
// TryAnswer is what try answers.
|
|
type TryAnswer struct {
|
|
// the try's id
|
|
ID string `json:"id"`
|
|
// its state
|
|
State string `json:"state,omitempty"`
|
|
}
|
|
|
|
// TryReadInput is what try-read takes.
|
|
type TryReadInput struct {
|
|
// the try's id, try-<digits>
|
|
ID string `json:"id"`
|
|
}
|
|
|
|
// TryReadAnswer is what try-read answers.
|
|
type TryReadAnswer = map[string]any
|
|
|
|
// TryEndInput is what try-end takes.
|
|
type TryEndInput struct {
|
|
// the try's id, try-<digits>
|
|
ID string `json:"id"`
|
|
// why it is ended, in words
|
|
Why string `json:"why"`
|
|
}
|
|
|
|
// TryEndAnswer is what try-end answers.
|
|
type TryEndAnswer struct {
|
|
// it is ended
|
|
Ended bool `json:"ended"`
|
|
// the try
|
|
ID string `json:"id"`
|
|
}
|
|
|
|
// VerdictHolderEventSeriesItem is a type of the contract.
|
|
type VerdictHolderEventSeriesItem struct {
|
|
// its artifact, or the package's ecosystem name as the module's packages name it
|
|
Artifact string `json:"artifact"`
|
|
// the series on trunk
|
|
From string `json:"from"`
|
|
// the module whose artifact's series changes
|
|
Module string `json:"module"`
|
|
// the series the checked head gives it
|
|
To string `json:"to"`
|
|
}
|
|
|
|
// VerdictHolderEvent is the body of the holder's event verdict.
|
|
type VerdictHolderEvent struct {
|
|
// the commit checked
|
|
Head string `json:"head"`
|
|
// the generated files out of step with their seat definitions, each path (design 26)
|
|
OutOfStep []string `json:"out-of-step,omitempty"`
|
|
// the pull request's number, for a pull request's check
|
|
Pull int64 `json:"pull,omitempty"`
|
|
// owner/repo
|
|
Repository string `json:"repository"`
|
|
// each change of an artifact's series the checked head makes against trunk's manifests, once each (design 32); absent when it changes none
|
|
Series []VerdictHolderEventSeriesItem `json:"series,omitempty"`
|
|
// pass or fail
|
|
Verdict string `json:"verdict"`
|
|
}
|
|
|
|
// TagWantedHolderEvent is the body of the holder's event tag-wanted.
|
|
type TagWantedHolderEvent struct {
|
|
// the pull request's branch: its tag is removed when the branch ends
|
|
Branch string `json:"branch"`
|
|
// its head
|
|
Head string `json:"head"`
|
|
// the group member
|
|
Module string `json:"module"`
|
|
// the package it declares
|
|
Package string `json:"package"`
|
|
// the pull request
|
|
Pull int64 `json:"pull,omitempty"`
|
|
// owner/repo
|
|
Repository string `json:"repository"`
|
|
// the tag wanted
|
|
Tag string `json:"tag,omitempty"`
|
|
}
|