package resolution import ( mcat "git.novox.be/novox/mesh-sdk/go/catalogue" ) // deliveryRemovedInR6 is the row of a verb release 6 removed from the delivery seat. func deliveryRemovedInR6(name string) mcat.Verb { return mcat.Verb{Name: name, Description: "Removed in R6 (ADR 0539): refused by name, naming its replacement: " + mcat.RemovedDeliveryVerbs[name], Input: schema(nil, nil), Optional: true} } // deliveryVerbs are the delivery seat's tools: what reads the merges and checks, and the acts of a person and healer H2 // on a merge (ADR 0539 clause 17). func deliveryVerbs() []mcat.Verb { return []mcat.Verb{ {Name: "deliveries", Description: "Every delivery not final, and those that ended in the last day, one line " + "each: its id (owner/repository@commit), its state, its group, what it waits for and since when. Narrowed " + "by state, repository or group.", Input: schema(map[string]string{"state": "one state, e.g. delivering or held", "repository": "owner/repository", "group": "a group's id (its branch name)", "all": "\"true\": the final ones of the last thirty days too"}, nil, "all")}, deliveryRemovedInR6("times"), {Name: "show", Description: "One delivery or group whole: its delivery plan (what it builds, what each " + "machine receives, what is not an ordinary send), every transition with when and why, the machine " + "steps of its walk, its group and its order.", Input: schema(map[string]string{"id": "a delivery's id, or a group's"}, []string{"id"})}, {Name: "groups", Description: "Every delivery group: its members in order, why each pair is ordered " + "(declared, built by, version skew, engine before controller, by name), its composed check and its " + "state, derived from its members.", Input: schema(map[string]string{"all": "\"true\": the groups that ended too"}, nil, "all")}, deliveryRemovedInR6("what-if"), {Name: "checks", Description: "What the mesh's checks said of a pull request's head or of one commit: each " + "of the commit's mesh statuses (mesh/check, the one a main requires from R4e, hq's mesh/repo-check, " + "mesh/delivery, …) with its state, " + "description and when it was set; the merge check's full verdict as the controller said it — each " + "layer's summary, the machine that ran it, when, its build id and its report; and whether the branch's " + "protection would let it merge, every required status being success.", Input: schema(map[string]string{"repository": "owner/repository", "number": "a pull request's number: its head is read", "commit": "a commit's sha, or the start of one, instead of a pull request"}, []string{"repository"}), // Added after the seat's first holder shipped: optional until mesh-delivery serves it everywhere. Optional: true}, {Name: "table", Description: "The state table every delivery runs by: each transition with its guard, " + "each state's bound and what healer H2 may do once it has passed; and the machine steps' table.", Input: schema(map[string]string{}, nil)}, {Name: "stalled", Description: "Every delivery held past its state's bound, with the transition the table " + "lets healer H2 take for it, or none.", Input: schema(map[string]string{}, nil)}, {Name: "recheck", Description: "Check a rejected or ready delivery again: it goes back to proposed and the " + "controller is asked for its check. With why.", Input: schema(map[string]string{"id": "the delivery's id", "why": "why, kept with the transition"}, []string{"id", "why"})}, deliveryRemovedInR6("release"), deliveryRemovedInR6("stop"), {Name: "close", Description: "Healer H2's verb: take the one transition the table names for a delivery held " + "past its bound. Refused for any other.", Input: schema(map[string]string{"id": "the delivery's id", "why": "the condition it answers"}, []string{"id", "why"})}, deliveryRemovedInR6("retire-history"), {Name: "settle", Description: "Ask the operator to settle deliveries held because their merge reached the " + "trunk without a passing check: one ask on the operator's channel for all of them, as an Approve is asked. " + "The verb moves nothing; on the operator's answer each goes to merged, and whether it is on the machines " + "is derived as for any merge (novox/hq ADR 0556). Refused for a delivery not held, or held for another " + "reason, naming why.", Input: map[string]any{"type": "object", "additionalProperties": false, "required": []string{"ids", "why"}, "properties": map[string]any{ "ids": map[string]any{"type": "array", "items": map[string]any{"type": "string"}, "minItems": 1, "description": "the held deliveries' ids (owner/repository@commit)"}, "why": map[string]any{"type": "string", "description": "why they may be settled, shown to the operator"}, }}, // Added after the seat's release 6 holder shipped: optional until the gate serves it everywhere. Optional: true}, } }