dev.knotless.defs
Schema Diff
+234 -0
Compatibility Analysis
Breaking Changes Detected
16 breaking changes, 68 non-breaking changes.
Breaking Changes (16)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#lineTextView", src: "dev.knotless.defs#lineTextView", tgt: "dev.knotless.defs#lineTextView.text", kind: "prop", name: Some("text") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#lineTextView", src: "dev.knotless.defs#lineTextView", tgt: "dev.knotless.defs#lineTextView.number", kind: "prop", name: Some("number") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#byteSlice", src: "dev.knotless.defs#byteSlice", tgt: "dev.knotless.defs#byteSlice.byteEnd", kind: "prop", name: Some("byteEnd") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#byteSlice", src: "dev.knotless.defs#byteSlice", tgt: "dev.knotless.defs#byteSlice.byteStart", kind: "prop", name: Some("byteStart") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#image", src: "dev.knotless.defs#image", tgt: "dev.knotless.defs#image.image", kind: "prop", name: Some("image") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#facet", src: "dev.knotless.defs#facet", tgt: "dev.knotless.defs#facet.features", kind: "prop", name: Some("features") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#facet", src: "dev.knotless.defs#facet", tgt: "dev.knotless.defs#facet.index", kind: "prop", name: Some("index") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#lineView", src: "dev.knotless.defs#lineView", tgt: "dev.knotless.defs#lineView.outdated", kind: "prop", name: Some("outdated") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#lineView", src: "dev.knotless.defs#lineView", tgt: "dev.knotless.defs#lineView.line", kind: "prop", name: Some("line") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#lineView", src: "dev.knotless.defs#lineView", tgt: "dev.knotless.defs#lineView.path", kind: "prop", name: Some("path") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#reviewView", src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.reviewer", kind: "prop", name: Some("reviewer") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#reviewView", src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.verdict", kind: "prop", name: Some("verdict") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#reviewView", src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.maintainer", kind: "prop", name: Some("maintainer") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#reviewView", src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.outdated", kind: "prop", name: Some("outdated") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#reviewView", src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.uri", kind: "prop", name: Some("uri") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.defs#mention", src: "dev.knotless.defs#mention", tgt: "dev.knotless.defs#mention.did", kind: "prop", name: Some("did") }
Non-Breaking Changes (68)
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#byteSlice" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#byteSlice.byteEnd" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#byteSlice.byteStart" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#changesView.head" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#commentView.commit" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#commentView.line" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#commentView.reply" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#commentView.resolved" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#commentView.review" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#facet" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#facet.features" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#facet.features:items" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#facet.features:items:variant0" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#facet.index" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#image" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#image.image" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#itemView.draft" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#itemView.reviewers" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#itemView.reviewers:items" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#lineTextView" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#lineTextView.number" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#lineTextView.text" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#lineView" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#lineView.line" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#lineView.lines" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#lineView.lines:items" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#lineView.outdated" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#lineView.path" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#lineView.side" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#lineView.startLine" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#mention" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#mention.did" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#repoView.forkCount" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#repoView.language" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#repoView.starCount" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#reviewView" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#reviewView.commit" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#reviewView.maintainer" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#reviewView.outdated" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#reviewView.reviewer" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#reviewView.uri" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#reviewView.verdict" }
- AddedEdge AddedEdge { src: "dev.knotless.defs#changesView", tgt: "dev.knotless.defs#changesView.head", kind: "prop", name: Some("head") }
- AddedEdge AddedEdge { src: "dev.knotless.defs#commentView", tgt: "dev.knotless.defs#commentView.commit", kind: "prop", name: Some("commit") }
- AddedEdge AddedEdge { src: "dev.knotless.defs#commentView", tgt: "dev.knotless.defs#commentView.line", kind: "prop", name: Some("line") }
- AddedEdge AddedEdge { src: "dev.knotless.defs#commentView", tgt: "dev.knotless.defs#commentView.reply", kind: "prop", name: Some("reply") }
- AddedEdge AddedEdge { src: "dev.knotless.defs#commentView", tgt: "dev.knotless.defs#commentView.resolved", kind: "prop", name: Some("resolved") }
- AddedEdge AddedEdge { src: "dev.knotless.defs#commentView", tgt: "dev.knotless.defs#commentView.review", kind: "prop", name: Some("review") }
- AddedEdge AddedEdge { src: "dev.knotless.defs#commentView.line", tgt: "dev.knotless.defs#lineView", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "dev.knotless.defs#facet.features", tgt: "dev.knotless.defs#facet.features:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "dev.knotless.defs#facet.features:items", tgt: "dev.knotless.defs#facet.features:items:variant0", kind: "variant", name: Some("#mention") }
- AddedEdge AddedEdge { src: "dev.knotless.defs#facet.features:items:variant0", tgt: "dev.knotless.defs#mention", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "dev.knotless.defs#facet.index", tgt: "dev.knotless.defs#byteSlice", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "dev.knotless.defs#itemView", tgt: "dev.knotless.defs#itemView.draft", kind: "prop", name: Some("draft") }
- AddedEdge AddedEdge { src: "dev.knotless.defs#itemView", tgt: "dev.knotless.defs#itemView.reviewers", kind: "prop", name: Some("reviewers") }
- AddedEdge AddedEdge { src: "dev.knotless.defs#itemView.reviewers", tgt: "dev.knotless.defs#itemView.reviewers:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "dev.knotless.defs#itemView.reviewers:items", tgt: "dev.knotless.defs#actorView", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "dev.knotless.defs#lineView", tgt: "dev.knotless.defs#lineView.lines", kind: "prop", name: Some("lines") }
- AddedEdge AddedEdge { src: "dev.knotless.defs#lineView", tgt: "dev.knotless.defs#lineView.side", kind: "prop", name: Some("side") }
- AddedEdge AddedEdge { src: "dev.knotless.defs#lineView", tgt: "dev.knotless.defs#lineView.startLine", kind: "prop", name: Some("startLine") }
- AddedEdge AddedEdge { src: "dev.knotless.defs#lineView.lines", tgt: "dev.knotless.defs#lineView.lines:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "dev.knotless.defs#lineView.lines:items", tgt: "dev.knotless.defs#lineTextView", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "dev.knotless.defs#repoView", tgt: "dev.knotless.defs#repoView.forkCount", kind: "prop", name: Some("forkCount") }
- AddedEdge AddedEdge { src: "dev.knotless.defs#repoView", tgt: "dev.knotless.defs#repoView.language", kind: "prop", name: Some("language") }
- AddedEdge AddedEdge { src: "dev.knotless.defs#repoView", tgt: "dev.knotless.defs#repoView.starCount", kind: "prop", name: Some("starCount") }
- AddedEdge AddedEdge { src: "dev.knotless.defs#repoView.language", tgt: "dev.knotless.defs#languageView", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.commit", kind: "prop", name: Some("commit") }
- AddedEdge AddedEdge { src: "dev.knotless.defs#reviewView.reviewer", tgt: "dev.knotless.defs#actorView", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "dev.knotless.defs#byteSlice" }AddedVertex { vertex_id: "dev.knotless.defs#byteSlice.byteEnd" }AddedVertex { vertex_id: "dev.knotless.defs#byteSlice.byteStart" }AddedVertex { vertex_id: "dev.knotless.defs#changesView.head" }AddedVertex { vertex_id: "dev.knotless.defs#commentView.commit" }AddedVertex { vertex_id: "dev.knotless.defs#commentView.line" }AddedVertex { vertex_id: "dev.knotless.defs#commentView.reply" }AddedVertex { vertex_id: "dev.knotless.defs#commentView.resolved" }AddedVertex { vertex_id: "dev.knotless.defs#commentView.review" }AddedVertex { vertex_id: "dev.knotless.defs#facet" }AddedVertex { vertex_id: "dev.knotless.defs#facet.features" }AddedVertex { vertex_id: "dev.knotless.defs#facet.features:items" }AddedVertex { vertex_id: "dev.knotless.defs#facet.features:items:variant0" }AddedVertex { vertex_id: "dev.knotless.defs#facet.index" }AddedVertex { vertex_id: "dev.knotless.defs#image" }AddedVertex { vertex_id: "dev.knotless.defs#image.image" }AddedVertex { vertex_id: "dev.knotless.defs#itemView.draft" }AddedVertex { vertex_id: "dev.knotless.defs#itemView.reviewers" }AddedVertex { vertex_id: "dev.knotless.defs#itemView.reviewers:items" }AddedVertex { vertex_id: "dev.knotless.defs#lineTextView" }AddedVertex { vertex_id: "dev.knotless.defs#lineTextView.number" }AddedVertex { vertex_id: "dev.knotless.defs#lineTextView.text" }AddedVertex { vertex_id: "dev.knotless.defs#lineView" }AddedVertex { vertex_id: "dev.knotless.defs#lineView.line" }AddedVertex { vertex_id: "dev.knotless.defs#lineView.lines" }AddedVertex { vertex_id: "dev.knotless.defs#lineView.lines:items" }AddedVertex { vertex_id: "dev.knotless.defs#lineView.outdated" }AddedVertex { vertex_id: "dev.knotless.defs#lineView.path" }AddedVertex { vertex_id: "dev.knotless.defs#lineView.side" }AddedVertex { vertex_id: "dev.knotless.defs#lineView.startLine" }AddedVertex { vertex_id: "dev.knotless.defs#mention" }AddedVertex { vertex_id: "dev.knotless.defs#mention.did" }AddedVertex { vertex_id: "dev.knotless.defs#repoView.forkCount" }AddedVertex { vertex_id: "dev.knotless.defs#repoView.language" }AddedVertex { vertex_id: "dev.knotless.defs#repoView.starCount" }AddedVertex { vertex_id: "dev.knotless.defs#reviewView" }AddedVertex { vertex_id: "dev.knotless.defs#reviewView.commit" }AddedVertex { vertex_id: "dev.knotless.defs#reviewView.maintainer" }AddedVertex { vertex_id: "dev.knotless.defs#reviewView.outdated" }AddedVertex { vertex_id: "dev.knotless.defs#reviewView.reviewer" }AddedVertex { vertex_id: "dev.knotless.defs#reviewView.uri" }AddedVertex { vertex_id: "dev.knotless.defs#reviewView.verdict" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#byteSlice", src: "dev.knotless.defs#byteSlice", tgt: "dev.knotless.defs#byteSlice.byteEnd", kind: "prop", name: Some("byteEnd") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#byteSlice", src: "dev.knotless.defs#byteSlice", tgt: "dev.knotless.defs#byteSlice.byteStart", kind: "prop", name: Some("byteStart") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#mention", src: "dev.knotless.defs#mention", tgt: "dev.knotless.defs#mention.did", kind: "prop", name: Some("did") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#reviewView", src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.reviewer", kind: "prop", name: Some("reviewer") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#reviewView", src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.verdict", kind: "prop", name: Some("verdict") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#reviewView", src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.maintainer", kind: "prop", name: Some("maintainer") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#reviewView", src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.outdated", kind: "prop", name: Some("outdated") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#reviewView", src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.uri", kind: "prop", name: Some("uri") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#facet", src: "dev.knotless.defs#facet", tgt: "dev.knotless.defs#facet.features", kind: "prop", name: Some("features") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#facet", src: "dev.knotless.defs#facet", tgt: "dev.knotless.defs#facet.index", kind: "prop", name: Some("index") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#lineTextView", src: "dev.knotless.defs#lineTextView", tgt: "dev.knotless.defs#lineTextView.text", kind: "prop", name: Some("text") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#lineTextView", src: "dev.knotless.defs#lineTextView", tgt: "dev.knotless.defs#lineTextView.number", kind: "prop", name: Some("number") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#lineView", src: "dev.knotless.defs#lineView", tgt: "dev.knotless.defs#lineView.outdated", kind: "prop", name: Some("outdated") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#lineView", src: "dev.knotless.defs#lineView", tgt: "dev.knotless.defs#lineView.line", kind: "prop", name: Some("line") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#lineView", src: "dev.knotless.defs#lineView", tgt: "dev.knotless.defs#lineView.path", kind: "prop", name: Some("path") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.defs#image", src: "dev.knotless.defs#image", tgt: "dev.knotless.defs#image.image", kind: "prop", name: Some("image") }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#changesView", tgt: "dev.knotless.defs#changesView.head", kind: "prop", name: Some("head") }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#commentView", tgt: "dev.knotless.defs#commentView.commit", kind: "prop", name: Some("commit") }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#commentView", tgt: "dev.knotless.defs#commentView.line", kind: "prop", name: Some("line") }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#commentView", tgt: "dev.knotless.defs#commentView.reply", kind: "prop", name: Some("reply") }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#commentView", tgt: "dev.knotless.defs#commentView.resolved", kind: "prop", name: Some("resolved") }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#commentView", tgt: "dev.knotless.defs#commentView.review", kind: "prop", name: Some("review") }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#commentView.line", tgt: "dev.knotless.defs#lineView", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#facet.features", tgt: "dev.knotless.defs#facet.features:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#facet.features:items", tgt: "dev.knotless.defs#facet.features:items:variant0", kind: "variant", name: Some("#mention") }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#facet.features:items:variant0", tgt: "dev.knotless.defs#mention", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#facet.index", tgt: "dev.knotless.defs#byteSlice", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#itemView", tgt: "dev.knotless.defs#itemView.draft", kind: "prop", name: Some("draft") }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#itemView", tgt: "dev.knotless.defs#itemView.reviewers", kind: "prop", name: Some("reviewers") }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#itemView.reviewers", tgt: "dev.knotless.defs#itemView.reviewers:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#itemView.reviewers:items", tgt: "dev.knotless.defs#actorView", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#lineView", tgt: "dev.knotless.defs#lineView.lines", kind: "prop", name: Some("lines") }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#lineView", tgt: "dev.knotless.defs#lineView.side", kind: "prop", name: Some("side") }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#lineView", tgt: "dev.knotless.defs#lineView.startLine", kind: "prop", name: Some("startLine") }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#lineView.lines", tgt: "dev.knotless.defs#lineView.lines:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#lineView.lines:items", tgt: "dev.knotless.defs#lineTextView", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#repoView", tgt: "dev.knotless.defs#repoView.forkCount", kind: "prop", name: Some("forkCount") }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#repoView", tgt: "dev.knotless.defs#repoView.language", kind: "prop", name: Some("language") }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#repoView", tgt: "dev.knotless.defs#repoView.starCount", kind: "prop", name: Some("starCount") }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#repoView.language", tgt: "dev.knotless.defs#languageView", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#reviewView", tgt: "dev.knotless.defs#reviewView.commit", kind: "prop", name: Some("commit") }
- Non-breaking: AddedEdge { src: "dev.knotless.defs#reviewView.reviewer", tgt: "dev.knotless.defs#actorView", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"actorView": {
5
5
"description": "An account, as an appview shows it beside what it did.",
6
6
"properties": {
7
7
"avatar": {
8
8
"description": "The account's picture, as in dev.knotless.getProfile#profileView.",
9
9
"format": "uri",
10
10
"type": "string"
11
11
},
12
12
"did": {
13
13
"format": "did",
14
14
"type": "string"
15
15
},
16
16
"handle": {
17
17
"description": "The handle the account claims, when it resolves back to it; else the DID.",
18
18
"type": "string"
19
19
}
20
20
},
21
21
"required": [
22
22
"did",
23
23
"handle"
24
24
],
25
25
"type": "object"
26
26
},
27
27
"actorViewerState": {
28
28
"description": "What the account asking a query has to do with an account.",
29
29
"properties": {
30
30
"blocking": {
31
31
"description": "Its dev.knotless.block record keeping the account out of all its repositories, if it has one.",
32
32
"format": "at-uri",
33
33
"type": "string"
34
34
},
35
35
"following": {
36
36
"description": "Its dev.knotless.follow record naming the account, if it follows it.",
37
37
"format": "at-uri",
38
38
"type": "string"
39
39
}
40
40
},
41
41
"type": "object"
42
42
},
43
+
"byteSlice": {
44
+
"description": "A span of a text, by its UTF-8 bytes, counted from zero: the start inclusive, the end exclusive.",
45
+
"properties": {
46
+
"byteEnd": {
47
+
"minimum": 0,
48
+
"type": "integer"
49
+
},
50
+
"byteStart": {
51
+
"minimum": 0,
52
+
"type": "integer"
53
+
}
54
+
},
55
+
"required": [
56
+
"byteStart",
57
+
"byteEnd"
58
+
],
59
+
"type": "object"
60
+
},
43
61
"changesView": {
44
62
"description": "What a pull brings in: for a merged one, what its merge brought into the base; otherwise what its branch has since it left the base.",
45
63
"properties": {
46
64
"commits": {
47
65
"description": "Oldest first.",
48
66
"items": {
49
67
"ref": "#commitView",
50
68
"type": "ref"
51
69
},
52
70
"type": "array"
53
71
},
54
72
"files": {
55
73
"items": {
56
74
"ref": "#fileDiffView",
57
75
"type": "ref"
58
76
},
59
77
"type": "array"
60
78
},
79
+
"head": {
80
+
"description": "For an open pull, the hex object ID of the commit its branch is at: what its checks and reviews are of.",
81
+
"type": "string"
82
+
},
61
83
"repo": {
62
84
"description": "The repository whose commit pages show its commits.",
63
85
"ref": "#repoViewBasic",
64
86
"type": "ref"
65
87
}
66
88
},
67
89
"required": [
68
90
"repo",
69
91
"commits",
70
92
"files"
71
93
],
72
94
"type": "object"
73
95
},
74
96
"checkImageView": {
75
97
"description": "A picture a check made: screenshots of the pages a change moved, say.",
76
98
"properties": {
77
99
"alt": {
78
100
"description": "What it shows.",
79
101
"type": "string"
80
102
},
81
103
"url": {
82
104
"description": "Where this appview serves it, as a path.",
83
105
"type": "string"
84
106
}
85
107
},
86
108
"required": [
87
109
"alt",
88
110
"url"
89
111
],
90
112
"type": "object"
91
113
},
92
114
"checkView": {
93
115
"description": "The newest run of a workflow, as a runner the repository names in its record reported it.",
94
116
"properties": {
95
117
"commit": {
96
118
"description": "The commit it ran at, in hex.",
97
119
"type": "string"
98
120
},
99
121
"error": {
100
122
"description": "Why it could not run.",
101
123
"type": "string"
102
124
},
103
125
"finishedAt": {
104
126
"format": "datetime",
105
127
"type": "string"
106
128
},
107
129
"images": {
108
130
"description": "The pictures it made to be looked at, in order.",
109
131
"items": {
110
132
"ref": "#checkImageView",
111
133
"type": "ref"
112
134
},
113
135
"type": "array"
114
136
},
115
137
"repo": {
116
138
"description": "The repository it is of, whose pages show it.",
117
139
"ref": "#repoViewBasic",
118
140
"type": "ref"
119
141
},
120
142
"skipped": {
121
143
"description": "For a `success` that ran nothing, as the change touched none of the paths its workflow names: why.",
122
144
"type": "string"
123
145
},
124
146
"startedAt": {
125
147
"format": "datetime",
126
148
"type": "string"
127
149
},
128
150
"status": {
129
151
"description": "`queued` is a run filed and waiting for a job on its runner, no step started yet.",
130
152
"knownValues": [
131
153
"queued",
132
154
"running",
133
155
"success",
134
156
"failure",
135
157
"error",
136
158
"cancelled"
137
159
],
138
160
"type": "string"
139
161
},
140
162
"uri": {
141
163
"description": "Its dev.knotless.check record.",
142
164
"format": "at-uri",
143
165
"type": "string"
144
166
},
145
167
"workflow": {
146
168
"type": "string"
147
169
}
148
170
},
149
171
"required": [
150
172
"uri",
151
173
"repo",
152
174
"workflow",
153
175
"status",
154
176
"commit",
155
177
"startedAt",
156
178
"images"
157
179
],
158
180
"type": "object"
159
181
},
160
182
"commentView": {
161
183
"description": "Something said on a pull or an issue.",
162
184
"properties": {
163
185
"author": {
164
186
"ref": "#actorView",
165
187
"type": "ref"
166
188
},
167
189
"body": {
168
190
"description": "What it says, as its author wrote it, in Markdown.",
169
191
"type": "string"
170
192
},
193
+
"commit": {
194
+
"description": "For a review of a pull, the hex object ID of the head it looked at; for a comment on its lines, the commit they are in.",
195
+
"type": "string"
196
+
},
171
197
"createdAt": {
172
198
"format": "datetime",
173
199
"type": "string"
174
200
},
175
201
"html": {
176
202
"description": "What it says, its Markdown made into HTML: raw HTML shown as text, and links made relative to the repository.",
177
203
"type": "string"
178
204
},
205
+
"line": {
206
+
"description": "For a comment on a pull's lines, which, as they stand now.",
207
+
"ref": "#lineView",
208
+
"type": "ref"
209
+
},
179
210
"reactions": {
180
211
"description": "How accounts reacted to it, by content, in the order dev.knotless.defs#reactionContent lists them. Absent when none did.",
181
212
"items": {
182
213
"ref": "#reactionCountView",
183
214
"type": "ref"
184
215
},
185
216
"type": "array"
186
217
},
218
+
"reply": {
219
+
"description": "The comment starting the thread on a pull's lines that this answers.",
220
+
"format": "at-uri",
221
+
"type": "string"
222
+
},
223
+
"resolved": {
224
+
"description": "For a comment starting a thread on a pull's lines, whether the thread is resolved.",
225
+
"type": "boolean"
226
+
},
227
+
"review": {
228
+
"description": "The review this was sent with, as one of its line comments.",
229
+
"format": "at-uri",
230
+
"type": "string"
231
+
},
187
232
"updatedAt": {
188
233
"description": "When its author last changed it, if they have.",
189
234
"format": "datetime",
190
235
"type": "string"
191
236
},
192
237
"uri": {
193
238
"description": "Its dev.knotless.comment record.",
194
239
"format": "at-uri",
195
240
"type": "string"
196
241
},
197
242
"verdict": {
198
243
"description": "For a review, what it found.",
199
244
"knownValues": [
200
245
"approve",
201
246
"changes"
202
247
],
203
248
"type": "string"
204
249
}
205
250
},
206
251
"required": [
207
252
"author",
208
253
"createdAt",
209
254
"html"
210
255
],
211
256
"type": "object"
212
257
},
213
258
"commitAuthorView": {
214
259
"description": "Who wrote a commit or helped to: by the name git gives, and by account when that is one of the repository's people whose address it is.",
215
260
"properties": {
216
261
"actor": {
217
262
"ref": "#actorView",
218
263
"type": "ref"
219
264
},
220
265
"agent": {
221
266
"description": "The coding agent whose address it is, when it is one the pages know the face of.",
222
267
"knownValues": [
223
268
"claude"
224
269
],
225
270
"type": "string"
226
271
},
227
272
"name": {
228
273
"description": "The name git records.",
229
274
"type": "string"
230
275
}
231
276
},
232
277
"required": [
233
278
"name"
234
279
],
235
280
"type": "object"
236
281
},
237
282
"commitRefView": {
238
283
"description": "A commit, by its object name.",
239
284
"properties": {
240
285
"sha": {
241
286
"description": "In hex.",
242
287
"type": "string"
243
288
}
244
289
},
245
290
"required": [
246
291
"sha"
247
292
],
248
293
"type": "object"
249
294
},
250
295
"commitView": {
251
296
"description": "A commit, with the accounts that wrote it where the repository's pages believe their claims (dev.knotless.emails).",
252
297
"properties": {
253
298
"author": {
254
299
"ref": "#commitAuthorView",
255
300
"type": "ref"
256
301
},
257
302
"coauthors": {
258
303
"description": "Who its message's `Co-authored-by` trailers name.",
259
304
"items": {
260
305
"ref": "#commitAuthorView",
261
306
"type": "ref"
262
307
},
263
308
"type": "array"
264
309
},
265
310
"committedAt": {
266
311
"description": "When it was committed: what history runs in, as its author's date need not.",
267
312
"format": "datetime",
268
313
"type": "string"
269
314
},
270
315
"committer": {
271
316
"description": "Who committed it, when someone other than its author did.",
272
317
"ref": "#commitAuthorView",
273
318
"type": "ref"
274
319
},
275
320
"date": {
276
321
"description": "When its author made it, which a rebase or a squash keeps.",
277
322
"format": "datetime",
278
323
"type": "string"
279
324
},
280
325
"message": {
281
326
"description": "Its message, less the last line naming the pull it merged, if it did.",
282
327
"type": "string"
283
328
},
284
329
"parents": {
285
330
"items": {
286
331
"ref": "#commitRefView",
287
332
"type": "ref"
288
333
},
289
334
"type": "array"
290
335
},
291
336
"pull": {
292
337
"description": "The pull its message's last line names, as a squash merge records it, when that is a pull on this repository.",
293
338
"ref": "#itemViewBasic",
294
339
"type": "ref"
295
340
},
296
341
"sha": {
297
342
"description": "Its object name, in hex.",
298
343
"type": "string"
299
344
}
300
345
},
301
346
"required": [
302
347
"sha",
303
348
"parents",
304
349
"author",
305
350
"coauthors",
306
351
"date",
307
352
"message"
308
353
],
309
354
"type": "object"
310
355
},
311
356
"diffRowView": {
312
357
"description": "One row of a file's diff: a hunk header, a note, or a line with its old and new numbers.",
313
358
"properties": {
314
359
"kind": {
315
360
"description": "`h` for a hunk header, `x` for a note, `a` for a line added, `d` for one removed, or empty for context.",
316
361
"type": "string"
317
362
},
318
363
"line": {
319
364
"description": "Whether it is a line of the file.",
320
365
"type": "boolean"
321
366
},
322
367
"new": {
323
368
"description": "Its number after.",
324
369
"minimum": 0,
325
370
"type": "integer"
326
371
},
327
372
"old": {
328
373
"description": "Its number before.",
329
374
"minimum": 0,
330
375
"type": "integer"
331
376
},
332
377
"text": {
333
378
"type": "string"
334
379
}
335
380
},
336
381
"required": [
337
382
"kind",
338
383
"line",
339
384
"text"
340
385
],
341
386
"type": "object"
342
387
},
388
+
"facet": {
389
+
"description": "Where a text says more than its words, shaped as app.bsky.richtext.facet: the span it covers and what that span is. A pull's, an issue's or a comment's body has its own, and a pull's or an issue's title its own.",
390
+
"properties": {
391
+
"features": {
392
+
"description": "What the span is. Kinds unknown to a reader are passed over.",
393
+
"items": {
394
+
"refs": [
395
+
"#mention"
396
+
],
397
+
"type": "union"
398
+
},
399
+
"maxLength": 8,
400
+
"type": "array"
401
+
},
402
+
"index": {
403
+
"ref": "#byteSlice",
404
+
"type": "ref"
405
+
}
406
+
},
407
+
"required": [
408
+
"index",
409
+
"features"
410
+
],
411
+
"type": "object"
412
+
},
343
413
"fileDiffView": {
344
414
"description": "One file of a diff, or why its rows are not shown.",
345
415
"properties": {
346
416
"added": {
347
417
"description": "Lines added.",
348
418
"minimum": 0,
349
419
"type": "integer"
350
420
},
351
421
"hunkCount": {
352
422
"description": "Of those rows, how many are hunk headers, which a page may draw taller than a line.",
353
423
"minimum": 0,
354
424
"type": "integer"
355
425
},
356
426
"new": {
357
427
"description": "Its path after.",
358
428
"type": "string"
359
429
},
360
430
"note": {
361
431
"description": "Why its rows are not shown, when they are not.",
362
432
"type": "string"
363
433
},
364
434
"old": {
365
435
"description": "Its path before.",
366
436
"type": "string"
367
437
},
368
438
"ranges": {
369
439
"description": "The ranges its highlighting paints, encoded as the pages read them.",
370
440
"type": "string"
371
441
},
372
442
"removed": {
373
443
"description": "Lines removed.",
374
444
"minimum": 0,
375
445
"type": "integer"
376
446
},
377
447
"rowCount": {
378
448
"description": "Where its rows are left out but would be shown, as dev.knotless.getThread's filesOnly leaves them, how many there are: the room a page keeps for them until they come.",
379
449
"minimum": 0,
380
450
"type": "integer"
381
451
},
382
452
"rows": {
383
453
"items": {
384
454
"ref": "#diffRowView",
385
455
"type": "ref"
386
456
},
387
457
"type": "array"
388
458
},
389
459
"status": {
390
460
"knownValues": [
391
461
"added",
392
462
"deleted",
393
463
"renamed",
394
464
"modified"
395
465
],
396
466
"type": "string"
397
467
}
398
468
},
399
469
"required": [
400
470
"old",
401
471
"new",
402
472
"status",
403
473
"added",
404
474
"removed",
405
475
"rows"
406
476
],
407
477
"type": "object"
408
478
},
409
479
"followState": {
410
480
"description": "An account's followers, as following or unfollowing it leaves them.",
411
481
"properties": {
412
482
"followersCount": {
413
483
"description": "How many accounts follow it now.",
414
484
"minimum": 0,
415
485
"type": "integer"
416
486
},
417
487
"following": {
418
488
"description": "The asker's dev.knotless.follow record naming it; absent once unfollowed.",
419
489
"format": "at-uri",
420
490
"type": "string"
421
491
}
422
492
},
423
493
"required": [
424
494
"followersCount"
425
495
],
426
496
"type": "object"
427
497
},
498
+
"image": {
499
+
"description": "A picture a pull's, an issue's or a comment's body shows, attached so its author's PDS keeps it. The body links to it on that PDS, as `com.atproto.sync.getBlob` serves it, saying what it shows as Markdown's alt text; readers may show it from elsewhere, as dev.knotless.getAttachment does.",
500
+
"properties": {
501
+
"image": {
502
+
"accept": [
503
+
"image/png",
504
+
"image/jpeg",
505
+
"image/webp",
506
+
"image/gif"
507
+
],
508
+
"maxSize": 1000000,
509
+
"type": "blob"
510
+
}
511
+
},
512
+
"required": [
513
+
"image"
514
+
],
515
+
"type": "object"
516
+
},
428
517
"itemView": {
429
518
"description": "A pull or an issue in a list of them.",
430
519
"properties": {
431
520
"author": {
432
521
"description": "Who opened it.",
433
522
"ref": "#actorView",
434
523
"type": "ref"
435
524
},
436
525
"comments": {
437
526
"description": "How many comments are on it, its own body aside.",
438
527
"minimum": 0,
439
528
"type": "integer"
440
529
},
441
530
"createdAt": {
442
531
"format": "datetime",
443
532
"type": "string"
444
533
},
534
+
"draft": {
535
+
"description": "A pull its author has not marked ready to merge. Not, when absent.",
536
+
"type": "boolean"
537
+
},
445
538
"kind": {
446
539
"knownValues": [
447
540
"pull",
448
541
"issue"
449
542
],
450
543
"type": "string"
451
544
},
452
545
"labels": {
453
546
"description": "The labels it carries, as the repository defines them, in the order it does. Absent when it carries none.",
454
547
"items": {
455
548
"ref": "dev.knotless.repo#label",
456
549
"type": "ref"
457
550
},
458
551
"type": "array"
459
552
},
553
+
"reviewers": {
554
+
"description": "Those a pull's author asks to review it, in the order asked. Absent when it asks no one.",
555
+
"items": {
556
+
"ref": "#actorView",
557
+
"type": "ref"
558
+
},
559
+
"type": "array"
560
+
},
460
561
"state": {
461
562
"description": "A merged pull is merged; a closed one, or an issue, closed.",
462
563
"knownValues": [
463
564
"open",
464
565
"closed",
465
566
"merged"
466
567
],
467
568
"type": "string"
468
569
},
469
570
"title": {
470
571
"type": "string"
471
572
},
472
573
"updatedAt": {
473
574
"description": "When its author last changed its title or body, if they have.",
474
575
"format": "datetime",
475
576
"type": "string"
476
577
},
477
578
"uri": {
478
579
"description": "Its dev.knotless.pull or dev.knotless.issue record.",
479
580
"format": "at-uri",
480
581
"type": "string"
481
582
}
482
583
},
483
584
"required": [
484
585
"uri",
485
586
"kind",
486
587
"title",
487
588
"state",
488
589
"author",
489
590
"createdAt",
490
591
"comments"
491
592
],
492
593
"type": "object"
493
594
},
494
595
"itemViewBasic": {
495
596
"description": "A pull or an issue, by its record and its title.",
496
597
"properties": {
497
598
"title": {
498
599
"type": "string"
499
600
},
500
601
"uri": {
501
602
"description": "Its dev.knotless.pull or dev.knotless.issue record.",
502
603
"format": "at-uri",
503
604
"type": "string"
504
605
}
505
606
},
506
607
"required": [
507
608
"uri",
508
609
"title"
509
610
],
510
611
"type": "object"
511
612
},
512
613
"languageView": {
513
614
"description": "One language a repository is written in.",
514
615
"properties": {
515
616
"bytes": {
516
617
"minimum": 0,
517
618
"type": "integer"
518
619
},
519
620
"color": {
520
621
"description": "Its color, as linguist has it.",
521
622
"type": "string"
522
623
},
523
624
"name": {
524
625
"description": "Its name, or `Other` for the languages each under one percent.",
525
626
"type": "string"
526
627
},
527
628
"permille": {
528
629
"description": "Its share of all the bytes counted, in tenths of a percent.",
529
630
"maximum": 1000,
530
631
"minimum": 0,
531
632
"type": "integer"
532
633
}
533
634
},
534
635
"required": [
535
636
"name",
536
637
"color",
537
638
"bytes",
538
639
"permille"
539
640
],
540
641
"type": "object"
541
642
},
643
+
"lineTextView": {
644
+
"description": "One line of a file.",
645
+
"properties": {
646
+
"number": {
647
+
"description": "Counting from 1.",
648
+
"minimum": 1,
649
+
"type": "integer"
650
+
},
651
+
"text": {
652
+
"type": "string"
653
+
}
654
+
},
655
+
"required": [
656
+
"number",
657
+
"text"
658
+
],
659
+
"type": "object"
660
+
},
661
+
"lineView": {
662
+
"description": "The lines of a pull's diff a comment is on.",
663
+
"properties": {
664
+
"line": {
665
+
"description": "The last line.",
666
+
"minimum": 1,
667
+
"type": "integer"
668
+
},
669
+
"lines": {
670
+
"description": "The lines as they were at the comment's commit, and for one alone a few before it; absent when that commit can no longer be read.",
671
+
"items": {
672
+
"ref": "#lineTextView",
673
+
"type": "ref"
674
+
},
675
+
"type": "array"
676
+
},
677
+
"outdated": {
678
+
"description": "Whether that side of the file has changed since the comment's commit, so its lines may no longer be where they were.",
679
+
"type": "boolean"
680
+
},
681
+
"path": {
682
+
"description": "The file's path on that side.",
683
+
"type": "string"
684
+
},
685
+
"side": {
686
+
"description": "`old` for the side the pull leaves; absent, `new`.",
687
+
"knownValues": [
688
+
"old",
689
+
"new"
690
+
],
691
+
"type": "string"
692
+
},
693
+
"startLine": {
694
+
"description": "The first, for more than one.",
695
+
"minimum": 1,
696
+
"type": "integer"
697
+
}
698
+
},
699
+
"required": [
700
+
"path",
701
+
"line",
702
+
"outdated"
703
+
],
704
+
"type": "object"
705
+
},
542
706
"link": {
543
707
"description": "A link shown on an account's profile or a repository's pages.",
544
708
"properties": {
545
709
"title": {
546
710
"description": "What to call it. Readers fall back to the address's host.",
547
711
"maxGraphemes": 40,
548
712
"maxLength": 320,
549
713
"type": "string"
550
714
},
551
715
"url": {
552
716
"description": "Where it goes: an http or https address.",
553
717
"format": "uri",
554
718
"type": "string"
555
719
}
556
720
},
557
721
"required": [
558
722
"url"
559
723
],
560
724
"type": "object"
561
725
},
726
+
"mention": {
727
+
"description": "An account the span, `@handle` in the text, mentions: kept by DID, so it names the account still after its handle changes. The account hears of it as a notification.",
728
+
"properties": {
729
+
"did": {
730
+
"format": "did",
731
+
"type": "string"
732
+
}
733
+
},
734
+
"required": [
735
+
"did"
736
+
],
737
+
"type": "object"
738
+
},
562
739
"minutesView": {
563
740
"description": "The minutes a runner the repository names counts for its owner's public repositories, from its dev.knotless.minutes record.",
564
741
"properties": {
565
742
"allowance": {
566
743
"description": "The minutes in 30 days it gives the owner's runs before they go one at a time. Absent when there is no limit.",
567
744
"minimum": 1,
568
745
"type": "integer"
569
746
},
570
747
"freeing": {
571
748
"description": "When minutes counted now stop counting, soonest first.",
572
749
"items": {
573
750
"ref": "dev.knotless.minutes#freeing",
574
751
"type": "ref"
575
752
},
576
753
"type": "array"
577
754
},
578
755
"minutes": {
579
756
"description": "The minutes steps took in the 30 days up to `updatedAt`.",
580
757
"minimum": 0,
581
758
"type": "integer"
582
759
},
583
760
"runner": {
584
761
"description": "The runner's account.",
585
762
"ref": "#actorView",
586
763
"type": "ref"
587
764
},
588
765
"updatedAt": {
589
766
"description": "When the runner last counted.",
590
767
"format": "datetime",
591
768
"type": "string"
592
769
}
593
770
},
594
771
"required": [
595
772
"runner",
596
773
"minutes",
597
774
"updatedAt"
598
775
],
599
776
"type": "object"
600
777
},
601
778
"packageView": {
602
779
"description": "One package a repository publishes.",
603
780
"properties": {
604
781
"image": {
605
782
"description": "True when its latest version, or its newest when none is latest, is a container image.",
606
783
"type": "boolean"
607
784
},
608
785
"latest": {
609
786
"description": "Its latest version: the highest with no pre-release part. Absent when it has only pre-releases.",
610
787
"type": "string"
611
788
},
612
789
"name": {
613
790
"description": "The package's name.",
614
791
"type": "string"
615
792
},
616
793
"releaseCount": {
617
794
"description": "How many versions of it are published.",
618
795
"minimum": 0,
619
796
"type": "integer"
620
797
}
621
798
},
622
799
"required": [
623
800
"name"
624
801
],
625
802
"type": "object"
626
803
},
627
804
"pullHeadView": {
628
805
"description": "What a pull brings in: a branch of a repository.",
629
806
"properties": {
630
807
"branch": {
631
808
"type": "string"
632
809
},
633
810
"repo": {
634
811
"description": "The repository the branch is on, if the index knows it.",
635
812
"ref": "#repoViewBasic",
636
813
"type": "ref"
637
814
}
638
815
},
639
816
"required": [
640
817
"branch"
641
818
],
642
819
"type": "object"
643
820
},
644
821
"queueStateView": {
645
822
"description": "Where an open pull stands in its target branch's merge queue.",
646
823
"properties": {
647
824
"checks": {
648
825
"description": "While its batch is being checked or landing, the batch's checks; once ejected by checks that failed, those.",
649
826
"items": {
650
827
"ref": "#checkView",
651
828
"type": "ref"
652
829
},
653
830
"type": "array"
654
831
},
655
832
"createdAt": {
656
833
"description": "When it was queued or ejected.",
657
834
"format": "datetime",
658
835
"type": "string"
659
836
},
660
837
"reason": {
661
838
"description": "Why it was ejected, as the runner said.",
662
839
"type": "string"
663
840
},
664
841
"said": {
665
842
"description": "Where it stands, in words: `Queued, 3rd of 5`, `In a batch of 4 being checked`, `Landing`, or why it was ejected.",
666
843
"type": "string"
667
844
},
668
845
"state": {
669
846
"knownValues": [
670
847
"queued",
671
848
"ejected"
672
849
],
673
850
"type": "string"
674
851
}
675
852
},
676
853
"required": [
677
854
"state",
678
855
"createdAt",
679
856
"said",
680
857
"checks"
681
858
],
682
859
"type": "object"
683
860
},
684
861
"reactionContent": {
685
862
"description": "What a reaction says, as GitHub's eight: a thumbs up, a thumbs down, a laugh, a party popper, a confused face, a heart, a rocket and eyes.",
686
863
"knownValues": [
687
864
"+1",
688
865
"-1",
689
866
"laugh",
690
867
"hooray",
691
868
"confused",
692
869
"heart",
693
870
"rocket",
694
871
"eyes"
695
872
],
696
873
"maxLength": 32,
697
874
"type": "string"
698
875
},
699
876
"reactionCountView": {
700
877
"description": "How many accounts reacted to something with one content.",
701
878
"properties": {
702
879
"content": {
703
880
"ref": "#reactionContent",
704
881
"type": "ref"
705
882
},
706
883
"count": {
707
884
"description": "How many accounts reacted so, each once.",
708
885
"minimum": 0,
709
886
"type": "integer"
710
887
},
711
888
"reaction": {
712
889
"description": "The asker's dev.knotless.reaction record of this content on it, if they reacted so.",
713
890
"format": "at-uri",
714
891
"type": "string"
715
892
}
716
893
},
717
894
"required": [
718
895
"content",
719
896
"count"
720
897
],
721
898
"type": "object"
722
899
},
723
900
"reactionState": {
724
901
"description": "The reactions to a pull, an issue or a comment.",
725
902
"properties": {
726
903
"reactions": {
727
904
"description": "By content, in the order dev.knotless.defs#reactionContent lists them; a content no account reacted with is left out.",
728
905
"items": {
729
906
"ref": "#reactionCountView",
730
907
"type": "ref"
731
908
},
732
909
"type": "array"
733
910
},
734
911
"subject": {
735
912
"description": "The pull, issue or comment.",
736
913
"format": "at-uri",
737
914
"type": "string"
738
915
}
739
916
},
740
917
"required": [
741
918
"subject",
742
919
"reactions"
743
920
],
744
921
"type": "object"
745
922
},
746
923
"releaseFileView": {
747
924
"description": "One file of a release.",
748
925
"properties": {
749
926
"name": {
750
927
"description": "Its name, as it is downloaded.",
751
928
"type": "string"
752
929
},
753
930
"sha256": {
754
931
"description": "The lowercase hex SHA-256 of the file, which a reader checks it against.",
755
932
"type": "string"
756
933
},
757
934
"size": {
758
935
"description": "Bytes in the file.",
759
936
"minimum": 1,
760
937
"type": "integer"
761
938
}
762
939
},
763
940
"required": [
764
941
"name",
765
942
"size",
766
943
"sha256"
767
944
],
768
945
"type": "object"
769
946
},
770
947
"releaseView": {
771
948
"description": "One version of a package a repository publishes, from its dev.knotless.release record, with its files and notes.",
772
949
"properties": {
773
950
"check": {
774
951
"description": "The dev.knotless.check of the run that built it, if its record names one.",
775
952
"format": "at-uri",
776
953
"type": "string"
777
954
},
778
955
"commit": {
779
956
"description": "The hex object ID of the commit its files were built from, if its record names one.",
780
957
"type": "string"
781
958
},
782
959
"createdAt": {
783
960
"description": "As its record says.",
784
961
"format": "datetime",
785
962
"type": "string"
786
963
},
787
964
"files": {
788
965
"description": "What it publishes, in its record's order.",
789
966
"items": {
790
967
"ref": "#releaseFileView",
791
968
"type": "ref"
792
969
},
793
970
"type": "array"
794
971
},
795
972
"html": {
796
973
"description": "`notes` made into HTML, as dev.knotless.getThread's comments are: raw HTML shown as text, and links made relative to the repository.",
797
974
"type": "string"
798
975
},
799
976
"image": {
800
977
"description": "True when its files are a container image's OCI layout: an `index.json` beside blobs named `sha256-<hex>`, pulled by `docker pull` rather than downloaded.",
801
978
"type": "boolean"
802
979
},
803
980
"latest": {
804
981
"description": "True for its package's latest version: the highest with no pre-release part.",
805
982
"type": "boolean"
806
983
},
807
984
"notes": {
808
985
"description": "What changed since the version before, in Markdown, as its record says.",
809
986
"type": "string"
810
987
},
811
988
"package": {
812
989
"description": "The package's name.",
813
990
"type": "string"
814
991
},
815
992
"uri": {
816
993
"description": "Its dev.knotless.release record.",
817
994
"format": "at-uri",
818
995
"type": "string"
819
996
},
820
997
"version": {
821
998
"description": "Its Semantic Versioning 2.0 version.",
822
999
"type": "string"
823
1000
}
824
1001
},
825
1002
"required": [
826
1003
"uri",
827
1004
"package",
828
1005
"version",
829
1006
"files",
830
1007
"createdAt"
831
1008
],
832
1009
"type": "object"
833
1010
},
834
1011
"releaseViewBasic": {
835
1012
"description": "One version of a package a repository publishes, from its dev.knotless.release record: which, and when.",
836
1013
"properties": {
837
1014
"createdAt": {
838
1015
"description": "As its record says.",
839
1016
"format": "datetime",
840
1017
"type": "string"
841
1018
},
842
1019
"image": {
843
1020
"description": "True when its files are a container image's OCI layout, pulled by `docker pull` rather than downloaded.",
844
1021
"type": "boolean"
845
1022
},
846
1023
"latest": {
847
1024
"description": "True for its package's latest version: the highest with no pre-release part.",
848
1025
"type": "boolean"
849
1026
},
850
1027
"package": {
851
1028
"description": "The package's name.",
852
1029
"type": "string"
853
1030
},
854
1031
"uri": {
855
1032
"description": "Its dev.knotless.release record.",
856
1033
"format": "at-uri",
857
1034
"type": "string"
858
1035
},
859
1036
"version": {
860
1037
"description": "Its Semantic Versioning 2.0 version.",
861
1038
"type": "string"
862
1039
}
863
1040
},
864
1041
"required": [
865
1042
"uri",
866
1043
"package",
867
1044
"version",
868
1045
"createdAt"
869
1046
],
870
1047
"type": "object"
871
1048
},
872
1049
"releasesView": {
873
1050
"description": "What a repository publishes, in brief, for its pages to show under its name.",
874
1051
"properties": {
875
1052
"count": {
876
1053
"description": "How many releases it has published, of all its packages.",
877
1054
"minimum": 0,
878
1055
"type": "integer"
879
1056
},
880
1057
"packages": {
881
1058
"description": "Each package it publishes, by name.",
882
1059
"items": {
883
1060
"ref": "#packageView",
884
1061
"type": "ref"
885
1062
},
886
1063
"type": "array"
887
1064
},
888
1065
"release": {
889
1066
"description": "The release to show for it: the latest of the package named as the repository, else the newest that is its package's latest, or the newest of all when each is a pre-release.",
890
1067
"ref": "#releaseViewBasic",
891
1068
"type": "ref"
892
1069
}
893
1070
},
894
1071
"required": [
895
1072
"count",
896
1073
"release",
897
1074
"packages"
898
1075
],
899
1076
"type": "object"
900
1077
},
901
1078
"repoMade": {
902
1079
"description": "A repository the pages made: created, forked, renamed or taken up.",
903
1080
"properties": {
904
1081
"name": {
905
1082
"description": "Its name, the record key.",
906
1083
"maxLength": 100,
907
1084
"type": "string"
908
1085
},
909
1086
"uri": {
910
1087
"description": "Its dev.knotless.repo record, by its owner's DID.",
911
1088
"format": "at-uri",
912
1089
"type": "string"
913
1090
}
914
1091
},
915
1092
"required": [
916
1093
"uri",
917
1094
"name"
918
1095
],
919
1096
"type": "object"
920
1097
},
921
1098
"repoRef": {
922
1099
"description": "A repository, as another record names it. The URI's name is the one the repository had when the record was written; a rename changes it, and a later repository can take it. The owner in the URI and `key` stay the repository's own, and are what a reader matches on.",
923
1100
"properties": {
924
1101
"key": {
925
1102
"description": "The repository's `key`.",
926
1103
"format": "tid",
927
1104
"type": "string"
928
1105
},
929
1106
"uri": {
930
1107
"description": "The dev.knotless.repo record, as it was named when this was written.",
931
1108
"format": "at-uri",
932
1109
"type": "string"
933
1110
}
934
1111
},
935
1112
"required": [
936
1113
"uri",
937
1114
"key"
938
1115
],
939
1116
"type": "object"
940
1117
},
941
1118
"repoView": {
942
1119
"description": "A repository among others, from its dev.knotless.repo record.",
943
1120
"properties": {
944
1121
"createdAt": {
945
1122
"description": "As its record says.",
946
1123
"format": "datetime",
947
1124
"type": "string"
948
1125
},
949
1126
"description": {
950
1127
"type": "string"
951
1128
},
1129
+
"forkCount": {
1130
+
"description": "How many forks of it there are, as the appview has indexed. Given only where a list shows it, as an account's stars do.",
1131
+
"minimum": 0,
1132
+
"type": "integer"
1133
+
},
952
1134
"forkOf": {
953
1135
"description": "The repository it was forked from, if the appview knows it.",
954
1136
"ref": "#repoViewBasic",
955
1137
"type": "ref"
956
1138
},
1139
+
"language": {
1140
+
"description": "The language most of its default branch is written in, as its file listing counts them. Absent when none is counted, or the appview could not read it.",
1141
+
"ref": "#languageView",
1142
+
"type": "ref"
1143
+
},
957
1144
"name": {
958
1145
"description": "The repository's name: its record key.",
959
1146
"type": "string"
960
1147
},
961
1148
"owner": {
962
1149
"ref": "#actorView",
963
1150
"type": "ref"
964
1151
},
965
1152
"private": {
966
1153
"description": "Whether it is private, in a space: listed only to its owner, asking.",
967
1154
"type": "boolean"
968
1155
},
1156
+
"starCount": {
1157
+
"description": "How many accounts starred it, as the appview has indexed. Given only where a list shows it, as an account's stars do.",
1158
+
"minimum": 0,
1159
+
"type": "integer"
1160
+
},
969
1161
"uri": {
970
1162
"description": "Its dev.knotless.repo record, under the name it has now.",
971
1163
"format": "at-uri",
972
1164
"type": "string"
973
1165
}
974
1166
},
975
1167
"required": [
976
1168
"uri",
977
1169
"owner",
978
1170
"name",
979
1171
"createdAt"
980
1172
],
981
1173
"type": "object"
982
1174
},
983
1175
"repoViewBasic": {
984
1176
"description": "A repository, under the name it has now.",
985
1177
"properties": {
986
1178
"did": {
987
1179
"description": "The repository's owner.",
988
1180
"format": "did",
989
1181
"type": "string"
990
1182
},
991
1183
"handle": {
992
1184
"description": "The owner's handle, as in #actorView.",
993
1185
"type": "string"
994
1186
},
995
1187
"name": {
996
1188
"description": "The repository's name: its record key.",
997
1189
"type": "string"
998
1190
}
999
1191
},
1000
1192
"required": [
1001
1193
"did",
1002
1194
"handle",
1003
1195
"name"
1004
1196
],
1005
1197
"type": "object"
1006
1198
},
1007
1199
"repoViewDetailed": {
1008
1200
"description": "A repository, with what its pages show above themselves.",
1009
1201
"properties": {
1010
1202
"card": {
1011
1203
"description": "The path, on this appview, of the picture a link to its pages unfurls into: a new one whenever the picture changes.",
1012
1204
"type": "string"
1013
1205
},
1014
1206
"defaultBranch": {
1015
1207
"description": "The branch its HEAD names: empty, for a repository never pushed.",
1016
1208
"type": "string"
1017
1209
},
1018
1210
"description": {
1019
1211
"type": "string"
1020
1212
},
1021
1213
"forkOf": {
1022
1214
"description": "The repository it was forked from, if the appview knows it.",
1023
1215
"ref": "#repoViewBasic",
1024
1216
"type": "ref"
1025
1217
},
1026
1218
"links": {
1027
1219
"description": "Links its pages show, in display order, as its record names them: its website first. Only http and https addresses.",
1028
1220
"items": {
1029
1221
"ref": "#link",
1030
1222
"type": "ref"
1031
1223
},
1032
1224
"type": "array"
1033
1225
},
1034
1226
"name": {
1035
1227
"description": "The repository's name: its record key.",
1036
1228
"type": "string"
1037
1229
},
1038
1230
"openIssues": {
1039
1231
"minimum": 0,
1040
1232
"type": "integer"
1041
1233
},
1042
1234
"openPulls": {
1043
1235
"minimum": 0,
1044
1236
"type": "integer"
1045
1237
},
1046
1238
"owner": {
1047
1239
"ref": "#actorView",
1048
1240
"type": "ref"
1049
1241
},
1050
1242
"private": {
1051
1243
"description": "Whether it is private, in a space: shown only to its members, each logged in to this appview.",
1052
1244
"type": "boolean"
1053
1245
},
1054
1246
"releases": {
1055
1247
"description": "What it publishes, in brief, as the appview has indexed. Absent when it has published nothing, for a private repository, which cannot publish, and from an appview that keeps no index.",
1056
1248
"ref": "#releasesView",
1057
1249
"type": "ref"
1058
1250
},
1059
1251
"starCount": {
1060
1252
"description": "How many accounts starred it, as the appview has indexed. Absent for a private repository, which cannot be starred, and from an appview that keeps no index.",
1061
1253
"minimum": 0,
1062
1254
"type": "integer"
1063
1255
},
1064
1256
"uri": {
1065
1257
"description": "Its dev.knotless.repo record, under the name it has now.",
1066
1258
"format": "at-uri",
1067
1259
"type": "string"
1068
1260
},
1069
1261
"viewer": {
1070
1262
"description": "What the account asking has to do with it; absent when no one asks.",
1071
1263
"ref": "#repoViewerState",
1072
1264
"type": "ref"
1073
1265
}
1074
1266
},
1075
1267
"required": [
1076
1268
"uri",
1077
1269
"owner",
1078
1270
"name",
1079
1271
"defaultBranch",
1080
1272
"openPulls",
1081
1273
"openIssues",
1082
1274
"card"
1083
1275
],
1084
1276
"type": "object"
1085
1277
},
1086
1278
"repoViewerState": {
1087
1279
"description": "What the account asking a query has to do with a repository.",
1088
1280
"properties": {
1089
1281
"star": {
1090
1282
"description": "Its dev.knotless.star record naming the repository, if it starred it.",
1091
1283
"format": "at-uri",
1092
1284
"type": "string"
1093
1285
},
1094
1286
"transfer": {
1095
1287
"description": "Where the owner has offered to move the repository, when it is offered to the account asking, which can take it up (dev.knotless.acceptTransfer).",
1096
1288
"ref": "#repoViewBasic",
1097
1289
"type": "ref"
1098
1290
}
1099
1291
},
1100
1292
"type": "object"
1101
1293
},
1294
+
"reviewView": {
1295
+
"description": "Where one reviewer stands on a pull: their latest comment with a verdict. A comment without one leaves it as it was, and a pull's author reviews nothing of their own.",
1296
+
"properties": {
1297
+
"commit": {
1298
+
"description": "The hex object ID of the head it looked at.",
1299
+
"type": "string"
1300
+
},
1301
+
"maintainer": {
1302
+
"description": "Whether the reviewer is the repository's owner or a collaborator.",
1303
+
"type": "boolean"
1304
+
},
1305
+
"outdated": {
1306
+
"description": "Whether the open pull has moved past the head it looked at: an approval then stands for what the pull was, not what it is.",
1307
+
"type": "boolean"
1308
+
},
1309
+
"reviewer": {
1310
+
"ref": "#actorView",
1311
+
"type": "ref"
1312
+
},
1313
+
"uri": {
1314
+
"description": "The dev.knotless.comment that reviewed it.",
1315
+
"format": "at-uri",
1316
+
"type": "string"
1317
+
},
1318
+
"verdict": {
1319
+
"description": "`approve`, or `changes` for one that asked for changes.",
1320
+
"knownValues": [
1321
+
"approve",
1322
+
"changes"
1323
+
],
1324
+
"type": "string"
1325
+
}
1326
+
},
1327
+
"required": [
1328
+
"reviewer",
1329
+
"verdict",
1330
+
"uri",
1331
+
"outdated",
1332
+
"maintainer"
1333
+
],
1334
+
"type": "object"
1335
+
},
1102
1336
"starState": {
1103
1337
"description": "A repository's stars, as starring or unstarring it leaves them.",
1104
1338
"properties": {
1105
1339
"star": {
1106
1340
"description": "The asker's dev.knotless.star record naming it; absent once unstarred.",
1107
1341
"format": "at-uri",
1108
1342
"type": "string"
1109
1343
},
1110
1344
"starCount": {
1111
1345
"description": "How many accounts starred it now.",
1112
1346
"minimum": 0,
1113
1347
"type": "integer"
1114
1348
}
1115
1349
},
1116
1350
"required": [
1117
1351
"starCount"
1118
1352
],
1119
1353
"type": "object"
1120
1354
}
1121
1355
},
1122
1356
"description": "Definitions shared by the knotless lexicons.",
1123
1357
"id": "dev.knotless.defs",
1124
1358
"lexicon": 1
1125
1359
}