CT6: the seat git: its verbs with callers and error answers, tag, its events with hyphens, branch-moved kept
Builds: design 47 G §310, §311, §312 (an error answer fixture per verb), §313 (status, comment, view, note the forge bridge alone; merge-pull persons and sessions; the reads invokers), §370 (tag, callers the builder), §396 (event names with hyphens), §331 (branch-moved 64 MiB, 90 days), §11, §39 (state failed-steps), §129, §111 (statuses, status), §391 (class). Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
[
|
||||
{
|
||||
"name": "pull.updated is said",
|
||||
"of": "event:pull-updated",
|
||||
"subject": "mesh.seat.git.event.pull-updated",
|
||||
"given": {
|
||||
"repository": "novox/mesh-sdk",
|
||||
"number": 178,
|
||||
"branch": "feat/47-G",
|
||||
"head": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"base": "main",
|
||||
"title": "One wiring",
|
||||
"author": "jochen",
|
||||
"url": "https://forge.test/p/178",
|
||||
"base-head": "cccccccccccccccccccccccccccccccccccccccc",
|
||||
"change": {
|
||||
"paths": [
|
||||
"go/seatlist/seatlist.go"
|
||||
],
|
||||
"module-dirs": [
|
||||
"go"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pull.merged is said",
|
||||
"of": "event:pull-merged",
|
||||
"subject": "mesh.seat.git.event.pull-merged",
|
||||
"given": {
|
||||
"repository": "novox/mesh-sdk",
|
||||
"number": 178,
|
||||
"branch": "feat/47-G",
|
||||
"head": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"base": "main",
|
||||
"merge-commit": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
||||
"merged-at": "2026-11-09T19:40:00Z",
|
||||
"change": {
|
||||
"paths": [
|
||||
"go/seatlist/seatlist.go"
|
||||
],
|
||||
"module-dirs": [
|
||||
"go"
|
||||
]
|
||||
},
|
||||
"head-checks": {
|
||||
"mesh/check": "success"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pull.closed is said",
|
||||
"of": "event:pull-closed",
|
||||
"subject": "mesh.seat.git.event.pull-closed",
|
||||
"given": {
|
||||
"repository": "novox/mesh-sdk",
|
||||
"number": 179,
|
||||
"branch": "fix/x",
|
||||
"head": "cccccccccccccccccccccccccccccccccccccccc",
|
||||
"base": "main"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "forge.pull is said",
|
||||
"of": "event:forge-pull",
|
||||
"subject": "mesh.seat.git.event.forge-pull",
|
||||
"given": {
|
||||
"action": "synchronized",
|
||||
"repository": "novox/mesh-sdk",
|
||||
"number": 178,
|
||||
"branch": "feat/47-G",
|
||||
"head": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"base": "main",
|
||||
"author": "jochen",
|
||||
"sender": "jochen"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "forge.status is said",
|
||||
"of": "event:forge-status",
|
||||
"subject": "mesh.seat.git.event.forge-status",
|
||||
"given": {
|
||||
"repository": "novox/mesh-sdk",
|
||||
"commit": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"context": "mesh/check",
|
||||
"state": "failure",
|
||||
"description": "failed",
|
||||
"sender": "mesh-delivery-checker"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "forge.delete is said",
|
||||
"of": "event:forge-delete",
|
||||
"subject": "mesh.seat.git.event.forge-delete",
|
||||
"given": {
|
||||
"repository": "novox/mesh-sdk",
|
||||
"ref": "feat/47-G",
|
||||
"ref-type": "branch",
|
||||
"sender": "jochen"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "repo.writable is said",
|
||||
"of": "event:repo-writable",
|
||||
"subject": "mesh.seat.git.event.repo-writable",
|
||||
"given": {
|
||||
"repository": "jochen/notes",
|
||||
"account": "mesh-delivery"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "a branch moved by a merge",
|
||||
"of": "event:branch-moved",
|
||||
"subject": "mesh.seat.git.event.branch-moved",
|
||||
"given": {
|
||||
"repository": "novox/mesh-catalog",
|
||||
"branch": "main",
|
||||
"head": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
||||
"at": "2026-11-10T10:00:00Z"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,19 @@
|
||||
[
|
||||
{
|
||||
"name": "a failed required step kept",
|
||||
"of": "state:failed-steps/<module>.<fingerprint>.<step>",
|
||||
"given": {
|
||||
"v": 1,
|
||||
"module": "nats",
|
||||
"fingerprint": "fp-0123",
|
||||
"step": "unit",
|
||||
"artifact": "nats:program",
|
||||
"run": "main.12.nats",
|
||||
"commits": [
|
||||
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||
],
|
||||
"said": "TestTheBusWhole failed",
|
||||
"at": "2026-11-10T10:00:00Z"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,522 @@
|
||||
[
|
||||
{
|
||||
"name": "pull asks",
|
||||
"of": "verb:pull.input",
|
||||
"given": {
|
||||
"repository": "novox/mesh-sdk",
|
||||
"merge-commit": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pull answers",
|
||||
"of": "verb:pull.answer",
|
||||
"given": {
|
||||
"pull": {
|
||||
"repository": "novox/mesh-sdk",
|
||||
"number": 178,
|
||||
"title": "One wiring of the seat list",
|
||||
"author": "jochen",
|
||||
"branch": "feat/47-G",
|
||||
"head": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"base": "main",
|
||||
"state": "merged",
|
||||
"merge-commit": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
||||
"merged-at": "2026-11-09T19:40:00Z",
|
||||
"url": "https://forge.test/novox/mesh-sdk/pulls/178"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pull answers an open one with what the forge would merge now",
|
||||
"of": "verb:pull.answer",
|
||||
"given": {
|
||||
"pull": {
|
||||
"repository": "novox/mesh-sdk",
|
||||
"number": 179,
|
||||
"title": "One wiring of the seat list",
|
||||
"author": "jochen",
|
||||
"branch": "feat/47-G",
|
||||
"head": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"base": "main",
|
||||
"state": "open",
|
||||
"url": "https://forge.test/novox/mesh-sdk/pulls/179"
|
||||
},
|
||||
"merging": {
|
||||
"mergeable": false,
|
||||
"protected": true,
|
||||
"required": [
|
||||
"mesh/check"
|
||||
],
|
||||
"writes": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "pull answers an error, never none",
|
||||
"of": "verb:pull.answer",
|
||||
"why": "a failed read or act is an error the caller reads as a failure (design 47 *The seat git*)",
|
||||
"given": {
|
||||
"error": "the forge holds no pull request novox/mesh-sdk#999",
|
||||
"error-kind": "refused"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "open-pulls asks",
|
||||
"of": "verb:open-pulls.input",
|
||||
"given": {}
|
||||
},
|
||||
{
|
||||
"name": "open-pulls answers",
|
||||
"of": "verb:open-pulls.answer",
|
||||
"given": {
|
||||
"pulls": [
|
||||
{
|
||||
"pull": {
|
||||
"repository": "novox/mesh-sdk",
|
||||
"number": 178,
|
||||
"title": "One wiring of the seat list",
|
||||
"author": "jochen",
|
||||
"branch": "feat/47-G",
|
||||
"head": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"base": "main",
|
||||
"state": "open",
|
||||
"url": "https://forge.test/novox/mesh-sdk/pulls/178"
|
||||
},
|
||||
"required": [
|
||||
"mesh/check"
|
||||
],
|
||||
"checks": {
|
||||
"mesh/check": {
|
||||
"context": "mesh/check",
|
||||
"state": "success",
|
||||
"description": "passed",
|
||||
"target": "https://forge.test/x",
|
||||
"at": "2026-11-09T19:00:00Z",
|
||||
"by": "mesh-delivery-checker"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "open-pulls answers none open as an empty list",
|
||||
"of": "verb:open-pulls.answer",
|
||||
"given": {
|
||||
"pulls": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "open-pulls answers an error, never none",
|
||||
"of": "verb:open-pulls.answer",
|
||||
"why": "a failed read or act is an error the caller reads as a failure (design 47 *The seat git*)",
|
||||
"given": {
|
||||
"error": "the forge answered 502",
|
||||
"error-kind": "failed",
|
||||
"pulls": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tags asks",
|
||||
"of": "verb:tags.input",
|
||||
"given": {
|
||||
"repository": "novox/mesh-sdk",
|
||||
"prefix": "go/v",
|
||||
"page": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tags answers",
|
||||
"of": "verb:tags.answer",
|
||||
"given": {
|
||||
"repository": "novox/mesh-sdk",
|
||||
"tags": [
|
||||
"go/v0.1.15",
|
||||
"go/v0.1.14"
|
||||
],
|
||||
"page": 1,
|
||||
"bound": 50,
|
||||
"more": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tags answers an error, never none",
|
||||
"of": "verb:tags.answer",
|
||||
"why": "a failed read or act is an error the caller reads as a failure (design 47 *The seat git*)",
|
||||
"given": {
|
||||
"error": "the forge answered 404 for novox/nothing",
|
||||
"error-kind": "refused"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "trees asks",
|
||||
"of": "verb:trees.input",
|
||||
"given": {
|
||||
"repository": "novox/mesh-delivery",
|
||||
"commit": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"files": [
|
||||
"contracts"
|
||||
],
|
||||
"paths": {
|
||||
"": [
|
||||
"go.work"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "trees answers",
|
||||
"of": "verb:trees.answer",
|
||||
"given": {
|
||||
"commit": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"root": "dddddddddddddddddddddddddddddddddddddddd",
|
||||
"trees": {
|
||||
"": "dddddddddddddddddddddddddddddddddddddddd",
|
||||
"contracts": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
|
||||
},
|
||||
"files": {
|
||||
"contracts": {
|
||||
"module.json": "ffffffffffffffffffffffffffffffffffffffff"
|
||||
}
|
||||
},
|
||||
"paths": {
|
||||
"": {
|
||||
"go.work": "1111111111111111111111111111111111111111"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "trees answers an error, never none",
|
||||
"of": "verb:trees.answer",
|
||||
"why": "a failed read or act is an error the caller reads as a failure (design 47 *The seat git*)",
|
||||
"given": {
|
||||
"error": "the forge's tree listing of novox/mesh-delivery at aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa was cut; no trees are answered from a part",
|
||||
"error-kind": "refused"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "file asks",
|
||||
"of": "verb:file.input",
|
||||
"given": {
|
||||
"repository": "novox/mesh-contracts",
|
||||
"path": "seats/index.json",
|
||||
"ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "file answers",
|
||||
"of": "verb:file.answer",
|
||||
"given": {
|
||||
"path": "seats/index.json",
|
||||
"ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"blob": "2222222222222222222222222222222222222222",
|
||||
"size": 31,
|
||||
"content": "{\"format\":1,\"seats\":[\"mesh-broker\"]}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "file answers",
|
||||
"of": "verb:file.answer",
|
||||
"given": {
|
||||
"path": "seats/gone.json",
|
||||
"ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"absent": true
|
||||
},
|
||||
"why": "the forge said no such file: absent, never an empty content"
|
||||
},
|
||||
{
|
||||
"name": "file answers an error, never none",
|
||||
"of": "verb:file.answer",
|
||||
"why": "a failed read or act is an error the caller reads as a failure (design 47 *The seat git*)",
|
||||
"given": {
|
||||
"error": "seats/big.json is over 512 KiB",
|
||||
"error-kind": "refused"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "contains asks",
|
||||
"of": "verb:contains.input",
|
||||
"given": {
|
||||
"repository": "novox/mesh-sdk",
|
||||
"commit": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"in": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "contains answers",
|
||||
"of": "verb:contains.answer",
|
||||
"given": {
|
||||
"commit": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"in": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
||||
"contains": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "contains answers an error, never none",
|
||||
"of": "verb:contains.answer",
|
||||
"why": "a failed read or act is an error the caller reads as a failure (design 47 *The seat git*)",
|
||||
"given": {
|
||||
"error": "the forge cannot compare bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb with aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"error-kind": "refused"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "contains answers a commit the forge does not have as not-found",
|
||||
"of": "verb:contains.answer",
|
||||
"why": "a caller tells a commit the forge no longer has from a failed read by its kind, never by the forge's status in error's words",
|
||||
"given": {
|
||||
"error": "the forge has no commit aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"error-kind": "not-found"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "statuses asks",
|
||||
"of": "verb:statuses.input",
|
||||
"given": {
|
||||
"repository": "novox/mesh-sdk",
|
||||
"commit": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "statuses answers",
|
||||
"of": "verb:statuses.answer",
|
||||
"given": {
|
||||
"commit": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"combined": "success",
|
||||
"statuses": [
|
||||
{
|
||||
"context": "mesh/check",
|
||||
"state": "success",
|
||||
"description": "passed",
|
||||
"target": "https://forge.test/x",
|
||||
"at": "2026-11-09T19:00:00Z",
|
||||
"by": "mesh-delivery-checker"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "statuses answers an error, never none",
|
||||
"of": "verb:statuses.answer",
|
||||
"why": "a failed read or act is an error the caller reads as a failure (design 47 *The seat git*)",
|
||||
"given": {
|
||||
"error": "the forge answered 500",
|
||||
"error-kind": "failed"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "status asks",
|
||||
"of": "verb:status.input",
|
||||
"given": {
|
||||
"id": "owed-1",
|
||||
"repository": "novox/mesh-sdk",
|
||||
"commit": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"context": "mesh/check",
|
||||
"state": "pending",
|
||||
"description": "checking"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "status answers",
|
||||
"of": "verb:status.answer",
|
||||
"given": {
|
||||
"id": "owed-1",
|
||||
"performed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "status answers an error, never none",
|
||||
"of": "verb:status.answer",
|
||||
"why": "a failed read or act is an error the caller reads as a failure (design 47 *The seat git*)",
|
||||
"given": {
|
||||
"error": "the forge account cannot write novox/mesh-sdk",
|
||||
"error-kind": "refused"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "comment asks",
|
||||
"of": "verb:comment.input",
|
||||
"given": {
|
||||
"id": "owed-2",
|
||||
"repository": "novox/mesh-sdk",
|
||||
"number": 178,
|
||||
"text": "the delivery reached every node"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "comment answers",
|
||||
"of": "verb:comment.answer",
|
||||
"given": {
|
||||
"id": "owed-2",
|
||||
"held": true
|
||||
},
|
||||
"why": "an id the pull request already holds is skipped"
|
||||
},
|
||||
{
|
||||
"name": "comment answers an error, never none",
|
||||
"of": "verb:comment.answer",
|
||||
"why": "a failed read or act is an error the caller reads as a failure (design 47 *The seat git*)",
|
||||
"given": {
|
||||
"error": "the forge answered 403",
|
||||
"error-kind": "refused"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "view asks",
|
||||
"of": "verb:view.input",
|
||||
"given": {
|
||||
"id": "owed-3",
|
||||
"repository": "novox/mesh-sdk",
|
||||
"number": 178,
|
||||
"text": "## Delivery"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "view answers",
|
||||
"of": "verb:view.answer",
|
||||
"given": {
|
||||
"id": "owed-3",
|
||||
"performed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "view answers an error, never none",
|
||||
"of": "verb:view.answer",
|
||||
"why": "a failed read or act is an error the caller reads as a failure (design 47 *The seat git*)",
|
||||
"given": {
|
||||
"error": "the forge answered 502",
|
||||
"error-kind": "failed"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "note asks",
|
||||
"of": "verb:note.input",
|
||||
"given": {
|
||||
"id": "owed-4",
|
||||
"repository": "novox/mesh-sdk",
|
||||
"commit": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
|
||||
"line": "owed-4 delivered to ace"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "note answers",
|
||||
"of": "verb:note.answer",
|
||||
"given": {
|
||||
"id": "owed-4",
|
||||
"performed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "note answers an error, never none",
|
||||
"of": "verb:note.answer",
|
||||
"why": "a failed read or act is an error the caller reads as a failure (design 47 *The seat git*)",
|
||||
"given": {
|
||||
"error": "the note ref could not be pushed",
|
||||
"error-kind": "failed"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "merge-pull asks",
|
||||
"of": "verb:merge-pull.input",
|
||||
"given": {
|
||||
"id": "owed-5",
|
||||
"repository": "novox/mesh-sdk",
|
||||
"number": 178,
|
||||
"head": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "merge-pull answers",
|
||||
"of": "verb:merge-pull.answer",
|
||||
"given": {
|
||||
"id": "owed-5",
|
||||
"performed": true,
|
||||
"merge-commit": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "merge-pull answers",
|
||||
"of": "verb:merge-pull.answer",
|
||||
"given": {
|
||||
"id": "owed-5",
|
||||
"refused": "the head moved: cccccccccccccccccccccccccccccccccccccccc, not the named aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"refused-kind": "head-moved"
|
||||
},
|
||||
"why": "a head that moved is refused by name, not performed"
|
||||
},
|
||||
{
|
||||
"name": "merge-pull answers an error, never none",
|
||||
"of": "verb:merge-pull.answer",
|
||||
"why": "a failed read or act is an error the caller reads as a failure (design 47 *The seat git*)",
|
||||
"given": {
|
||||
"error": "the forge answered 502",
|
||||
"error-kind": "failed"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "merge-pull refuses a failed required step, naming the run, the module and the step",
|
||||
"of": "verb:merge-pull.answer",
|
||||
"given": {
|
||||
"id": "merge-7",
|
||||
"refused": "unit of nats:program failed at fp-0123 in main.12.nats",
|
||||
"refused-kind": "policy-failed",
|
||||
"run": "main.12.nats",
|
||||
"module": "nats",
|
||||
"step": "unit"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "branch asks a branch",
|
||||
"of": "verb:branch.input",
|
||||
"given": {
|
||||
"repository": "novox/mesh-catalog",
|
||||
"branch": "main"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "branch answers its head and protection",
|
||||
"of": "verb:branch.answer",
|
||||
"given": {
|
||||
"repository": "novox/mesh-catalog",
|
||||
"branch": "main",
|
||||
"head": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"protected": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "branch answers a branch the forge does not hold",
|
||||
"of": "verb:branch.answer",
|
||||
"given": {
|
||||
"error": "no branch beta in novox/mesh-catalog",
|
||||
"error-kind": "not-found"
|
||||
},
|
||||
"why": "an unknown branch is an error, never an absent head"
|
||||
},
|
||||
{
|
||||
"name": "tag asks",
|
||||
"of": "verb:tag.input",
|
||||
"given": {
|
||||
"repository": "novox/mesh-sdk",
|
||||
"tag": "go/v0.1.15",
|
||||
"commit": "0123456789abcdef0123456789abcdef01234567"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tag answers performed",
|
||||
"of": "verb:tag.answer",
|
||||
"given": {
|
||||
"tag": "go/v0.1.15",
|
||||
"performed": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tag answers an error, never none",
|
||||
"of": "verb:tag.answer",
|
||||
"why": "a failed act is an error the caller reads as a failure (design 47 G section 312)",
|
||||
"given": {
|
||||
"error": "the forge answered 403",
|
||||
"error-kind": "refused"
|
||||
}
|
||||
}
|
||||
]
|
||||
+1561
-2
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user