dev.knotless.defs
Schema Diff
+215 -0
Compatibility Analysis
Breaking Changes Detected
15 breaking changes, 66 non-breaking changes.
Breaking Changes (15)
- 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#mention", src: "dev.knotless.defs#mention", tgt: "dev.knotless.defs#mention.did", kind: "prop", name: Some("did") }
- 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#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") }
Non-Breaking Changes (66)
- 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#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#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#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#mention", src: "dev.knotless.defs#mention", tgt: "dev.knotless.defs#mention.did", kind: "prop", name: Some("did") }
- 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#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#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") }
- 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
},
428
498
"image": {
429
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.",
430
500
"properties": {
431
501
"image": {
432
502
"accept": [
433
503
"image/png",
434
504
"image/jpeg",
435
505
"image/webp",
436
506
"image/gif"
437
507
],
438
508
"maxSize": 1000000,
439
509
"type": "blob"
440
510
}
441
511
},
442
512
"required": [
443
513
"image"
444
514
],
445
515
"type": "object"
446
516
},
447
517
"itemView": {
448
518
"description": "A pull or an issue in a list of them.",
449
519
"properties": {
450
520
"author": {
451
521
"description": "Who opened it.",
452
522
"ref": "#actorView",
453
523
"type": "ref"
454
524
},
455
525
"comments": {
456
526
"description": "How many comments are on it, its own body aside.",
457
527
"minimum": 0,
458
528
"type": "integer"
459
529
},
460
530
"createdAt": {
461
531
"format": "datetime",
462
532
"type": "string"
463
533
},
534
+
"draft": {
535
+
"description": "A pull its author has not marked ready to merge. Not, when absent.",
536
+
"type": "boolean"
537
+
},
464
538
"kind": {
465
539
"knownValues": [
466
540
"pull",
467
541
"issue"
468
542
],
469
543
"type": "string"
470
544
},
471
545
"labels": {
472
546
"description": "The labels it carries, as the repository defines them, in the order it does. Absent when it carries none.",
473
547
"items": {
474
548
"ref": "dev.knotless.repo#label",
475
549
"type": "ref"
476
550
},
477
551
"type": "array"
478
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
+
},
479
561
"state": {
480
562
"description": "A merged pull is merged; a closed one, or an issue, closed.",
481
563
"knownValues": [
482
564
"open",
483
565
"closed",
484
566
"merged"
485
567
],
486
568
"type": "string"
487
569
},
488
570
"title": {
489
571
"type": "string"
490
572
},
491
573
"updatedAt": {
492
574
"description": "When its author last changed its title or body, if they have.",
493
575
"format": "datetime",
494
576
"type": "string"
495
577
},
496
578
"uri": {
497
579
"description": "Its dev.knotless.pull or dev.knotless.issue record.",
498
580
"format": "at-uri",
499
581
"type": "string"
500
582
}
501
583
},
502
584
"required": [
503
585
"uri",
504
586
"kind",
505
587
"title",
506
588
"state",
507
589
"author",
508
590
"createdAt",
509
591
"comments"
510
592
],
511
593
"type": "object"
512
594
},
513
595
"itemViewBasic": {
514
596
"description": "A pull or an issue, by its record and its title.",
515
597
"properties": {
516
598
"title": {
517
599
"type": "string"
518
600
},
519
601
"uri": {
520
602
"description": "Its dev.knotless.pull or dev.knotless.issue record.",
521
603
"format": "at-uri",
522
604
"type": "string"
523
605
}
524
606
},
525
607
"required": [
526
608
"uri",
527
609
"title"
528
610
],
529
611
"type": "object"
530
612
},
531
613
"languageView": {
532
614
"description": "One language a repository is written in.",
533
615
"properties": {
534
616
"bytes": {
535
617
"minimum": 0,
536
618
"type": "integer"
537
619
},
538
620
"color": {
539
621
"description": "Its color, as linguist has it.",
540
622
"type": "string"
541
623
},
542
624
"name": {
543
625
"description": "Its name, or `Other` for the languages each under one percent.",
544
626
"type": "string"
545
627
},
546
628
"permille": {
547
629
"description": "Its share of all the bytes counted, in tenths of a percent.",
548
630
"maximum": 1000,
549
631
"minimum": 0,
550
632
"type": "integer"
551
633
}
552
634
},
553
635
"required": [
554
636
"name",
555
637
"color",
556
638
"bytes",
557
639
"permille"
558
640
],
559
641
"type": "object"
560
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
+
},
561
706
"link": {
562
707
"description": "A link shown on an account's profile or a repository's pages.",
563
708
"properties": {
564
709
"title": {
565
710
"description": "What to call it. Readers fall back to the address's host.",
566
711
"maxGraphemes": 40,
567
712
"maxLength": 320,
568
713
"type": "string"
569
714
},
570
715
"url": {
571
716
"description": "Where it goes: an http or https address.",
572
717
"format": "uri",
573
718
"type": "string"
574
719
}
575
720
},
576
721
"required": [
577
722
"url"
578
723
],
579
724
"type": "object"
580
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
+
},
581
739
"minutesView": {
582
740
"description": "The minutes a runner the repository names counts for its owner's public repositories, from its dev.knotless.minutes record.",
583
741
"properties": {
584
742
"allowance": {
585
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.",
586
744
"minimum": 1,
587
745
"type": "integer"
588
746
},
589
747
"freeing": {
590
748
"description": "When minutes counted now stop counting, soonest first.",
591
749
"items": {
592
750
"ref": "dev.knotless.minutes#freeing",
593
751
"type": "ref"
594
752
},
595
753
"type": "array"
596
754
},
597
755
"minutes": {
598
756
"description": "The minutes steps took in the 30 days up to `updatedAt`.",
599
757
"minimum": 0,
600
758
"type": "integer"
601
759
},
602
760
"runner": {
603
761
"description": "The runner's account.",
604
762
"ref": "#actorView",
605
763
"type": "ref"
606
764
},
607
765
"updatedAt": {
608
766
"description": "When the runner last counted.",
609
767
"format": "datetime",
610
768
"type": "string"
611
769
}
612
770
},
613
771
"required": [
614
772
"runner",
615
773
"minutes",
616
774
"updatedAt"
617
775
],
618
776
"type": "object"
619
777
},
620
778
"packageView": {
621
779
"description": "One package a repository publishes.",
622
780
"properties": {
623
781
"image": {
624
782
"description": "True when its latest version, or its newest when none is latest, is a container image.",
625
783
"type": "boolean"
626
784
},
627
785
"latest": {
628
786
"description": "Its latest version: the highest with no pre-release part. Absent when it has only pre-releases.",
629
787
"type": "string"
630
788
},
631
789
"name": {
632
790
"description": "The package's name.",
633
791
"type": "string"
634
792
},
635
793
"releaseCount": {
636
794
"description": "How many versions of it are published.",
637
795
"minimum": 0,
638
796
"type": "integer"
639
797
}
640
798
},
641
799
"required": [
642
800
"name"
643
801
],
644
802
"type": "object"
645
803
},
646
804
"pullHeadView": {
647
805
"description": "What a pull brings in: a branch of a repository.",
648
806
"properties": {
649
807
"branch": {
650
808
"type": "string"
651
809
},
652
810
"repo": {
653
811
"description": "The repository the branch is on, if the index knows it.",
654
812
"ref": "#repoViewBasic",
655
813
"type": "ref"
656
814
}
657
815
},
658
816
"required": [
659
817
"branch"
660
818
],
661
819
"type": "object"
662
820
},
663
821
"queueStateView": {
664
822
"description": "Where an open pull stands in its target branch's merge queue.",
665
823
"properties": {
666
824
"checks": {
667
825
"description": "While its batch is being checked or landing, the batch's checks; once ejected by checks that failed, those.",
668
826
"items": {
669
827
"ref": "#checkView",
670
828
"type": "ref"
671
829
},
672
830
"type": "array"
673
831
},
674
832
"createdAt": {
675
833
"description": "When it was queued or ejected.",
676
834
"format": "datetime",
677
835
"type": "string"
678
836
},
679
837
"reason": {
680
838
"description": "Why it was ejected, as the runner said.",
681
839
"type": "string"
682
840
},
683
841
"said": {
684
842
"description": "Where it stands, in words: `Queued, 3rd of 5`, `In a batch of 4 being checked`, `Landing`, or why it was ejected.",
685
843
"type": "string"
686
844
},
687
845
"state": {
688
846
"knownValues": [
689
847
"queued",
690
848
"ejected"
691
849
],
692
850
"type": "string"
693
851
}
694
852
},
695
853
"required": [
696
854
"state",
697
855
"createdAt",
698
856
"said",
699
857
"checks"
700
858
],
701
859
"type": "object"
702
860
},
703
861
"reactionContent": {
704
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.",
705
863
"knownValues": [
706
864
"+1",
707
865
"-1",
708
866
"laugh",
709
867
"hooray",
710
868
"confused",
711
869
"heart",
712
870
"rocket",
713
871
"eyes"
714
872
],
715
873
"maxLength": 32,
716
874
"type": "string"
717
875
},
718
876
"reactionCountView": {
719
877
"description": "How many accounts reacted to something with one content.",
720
878
"properties": {
721
879
"content": {
722
880
"ref": "#reactionContent",
723
881
"type": "ref"
724
882
},
725
883
"count": {
726
884
"description": "How many accounts reacted so, each once.",
727
885
"minimum": 0,
728
886
"type": "integer"
729
887
},
730
888
"reaction": {
731
889
"description": "The asker's dev.knotless.reaction record of this content on it, if they reacted so.",
732
890
"format": "at-uri",
733
891
"type": "string"
734
892
}
735
893
},
736
894
"required": [
737
895
"content",
738
896
"count"
739
897
],
740
898
"type": "object"
741
899
},
742
900
"reactionState": {
743
901
"description": "The reactions to a pull, an issue or a comment.",
744
902
"properties": {
745
903
"reactions": {
746
904
"description": "By content, in the order dev.knotless.defs#reactionContent lists them; a content no account reacted with is left out.",
747
905
"items": {
748
906
"ref": "#reactionCountView",
749
907
"type": "ref"
750
908
},
751
909
"type": "array"
752
910
},
753
911
"subject": {
754
912
"description": "The pull, issue or comment.",
755
913
"format": "at-uri",
756
914
"type": "string"
757
915
}
758
916
},
759
917
"required": [
760
918
"subject",
761
919
"reactions"
762
920
],
763
921
"type": "object"
764
922
},
765
923
"releaseFileView": {
766
924
"description": "One file of a release.",
767
925
"properties": {
768
926
"name": {
769
927
"description": "Its name, as it is downloaded.",
770
928
"type": "string"
771
929
},
772
930
"sha256": {
773
931
"description": "The lowercase hex SHA-256 of the file, which a reader checks it against.",
774
932
"type": "string"
775
933
},
776
934
"size": {
777
935
"description": "Bytes in the file.",
778
936
"minimum": 1,
779
937
"type": "integer"
780
938
}
781
939
},
782
940
"required": [
783
941
"name",
784
942
"size",
785
943
"sha256"
786
944
],
787
945
"type": "object"
788
946
},
789
947
"releaseView": {
790
948
"description": "One version of a package a repository publishes, from its dev.knotless.release record, with its files and notes.",
791
949
"properties": {
792
950
"check": {
793
951
"description": "The dev.knotless.check of the run that built it, if its record names one.",
794
952
"format": "at-uri",
795
953
"type": "string"
796
954
},
797
955
"commit": {
798
956
"description": "The hex object ID of the commit its files were built from, if its record names one.",
799
957
"type": "string"
800
958
},
801
959
"createdAt": {
802
960
"description": "As its record says.",
803
961
"format": "datetime",
804
962
"type": "string"
805
963
},
806
964
"files": {
807
965
"description": "What it publishes, in its record's order.",
808
966
"items": {
809
967
"ref": "#releaseFileView",
810
968
"type": "ref"
811
969
},
812
970
"type": "array"
813
971
},
814
972
"html": {
815
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.",
816
974
"type": "string"
817
975
},
818
976
"image": {
819
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.",
820
978
"type": "boolean"
821
979
},
822
980
"latest": {
823
981
"description": "True for its package's latest version: the highest with no pre-release part.",
824
982
"type": "boolean"
825
983
},
826
984
"notes": {
827
985
"description": "What changed since the version before, in Markdown, as its record says.",
828
986
"type": "string"
829
987
},
830
988
"package": {
831
989
"description": "The package's name.",
832
990
"type": "string"
833
991
},
834
992
"uri": {
835
993
"description": "Its dev.knotless.release record.",
836
994
"format": "at-uri",
837
995
"type": "string"
838
996
},
839
997
"version": {
840
998
"description": "Its Semantic Versioning 2.0 version.",
841
999
"type": "string"
842
1000
}
843
1001
},
844
1002
"required": [
845
1003
"uri",
846
1004
"package",
847
1005
"version",
848
1006
"files",
849
1007
"createdAt"
850
1008
],
851
1009
"type": "object"
852
1010
},
853
1011
"releaseViewBasic": {
854
1012
"description": "One version of a package a repository publishes, from its dev.knotless.release record: which, and when.",
855
1013
"properties": {
856
1014
"createdAt": {
857
1015
"description": "As its record says.",
858
1016
"format": "datetime",
859
1017
"type": "string"
860
1018
},
861
1019
"image": {
862
1020
"description": "True when its files are a container image's OCI layout, pulled by `docker pull` rather than downloaded.",
863
1021
"type": "boolean"
864
1022
},
865
1023
"latest": {
866
1024
"description": "True for its package's latest version: the highest with no pre-release part.",
867
1025
"type": "boolean"
868
1026
},
869
1027
"package": {
870
1028
"description": "The package's name.",
871
1029
"type": "string"
872
1030
},
873
1031
"uri": {
874
1032
"description": "Its dev.knotless.release record.",
875
1033
"format": "at-uri",
876
1034
"type": "string"
877
1035
},
878
1036
"version": {
879
1037
"description": "Its Semantic Versioning 2.0 version.",
880
1038
"type": "string"
881
1039
}
882
1040
},
883
1041
"required": [
884
1042
"uri",
885
1043
"package",
886
1044
"version",
887
1045
"createdAt"
888
1046
],
889
1047
"type": "object"
890
1048
},
891
1049
"releasesView": {
892
1050
"description": "What a repository publishes, in brief, for its pages to show under its name.",
893
1051
"properties": {
894
1052
"count": {
895
1053
"description": "How many releases it has published, of all its packages.",
896
1054
"minimum": 0,
897
1055
"type": "integer"
898
1056
},
899
1057
"packages": {
900
1058
"description": "Each package it publishes, by name.",
901
1059
"items": {
902
1060
"ref": "#packageView",
903
1061
"type": "ref"
904
1062
},
905
1063
"type": "array"
906
1064
},
907
1065
"release": {
908
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.",
909
1067
"ref": "#releaseViewBasic",
910
1068
"type": "ref"
911
1069
}
912
1070
},
913
1071
"required": [
914
1072
"count",
915
1073
"release",
916
1074
"packages"
917
1075
],
918
1076
"type": "object"
919
1077
},
920
1078
"repoMade": {
921
1079
"description": "A repository the pages made: created, forked, renamed or taken up.",
922
1080
"properties": {
923
1081
"name": {
924
1082
"description": "Its name, the record key.",
925
1083
"maxLength": 100,
926
1084
"type": "string"
927
1085
},
928
1086
"uri": {
929
1087
"description": "Its dev.knotless.repo record, by its owner's DID.",
930
1088
"format": "at-uri",
931
1089
"type": "string"
932
1090
}
933
1091
},
934
1092
"required": [
935
1093
"uri",
936
1094
"name"
937
1095
],
938
1096
"type": "object"
939
1097
},
940
1098
"repoRef": {
941
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.",
942
1100
"properties": {
943
1101
"key": {
944
1102
"description": "The repository's `key`.",
945
1103
"format": "tid",
946
1104
"type": "string"
947
1105
},
948
1106
"uri": {
949
1107
"description": "The dev.knotless.repo record, as it was named when this was written.",
950
1108
"format": "at-uri",
951
1109
"type": "string"
952
1110
}
953
1111
},
954
1112
"required": [
955
1113
"uri",
956
1114
"key"
957
1115
],
958
1116
"type": "object"
959
1117
},
960
1118
"repoView": {
961
1119
"description": "A repository among others, from its dev.knotless.repo record.",
962
1120
"properties": {
963
1121
"createdAt": {
964
1122
"description": "As its record says.",
965
1123
"format": "datetime",
966
1124
"type": "string"
967
1125
},
968
1126
"description": {
969
1127
"type": "string"
970
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
+
},
971
1134
"forkOf": {
972
1135
"description": "The repository it was forked from, if the appview knows it.",
973
1136
"ref": "#repoViewBasic",
974
1137
"type": "ref"
975
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
+
},
976
1144
"name": {
977
1145
"description": "The repository's name: its record key.",
978
1146
"type": "string"
979
1147
},
980
1148
"owner": {
981
1149
"ref": "#actorView",
982
1150
"type": "ref"
983
1151
},
984
1152
"private": {
985
1153
"description": "Whether it is private, in a space: listed only to its owner, asking.",
986
1154
"type": "boolean"
987
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
+
},
988
1161
"uri": {
989
1162
"description": "Its dev.knotless.repo record, under the name it has now.",
990
1163
"format": "at-uri",
991
1164
"type": "string"
992
1165
}
993
1166
},
994
1167
"required": [
995
1168
"uri",
996
1169
"owner",
997
1170
"name",
998
1171
"createdAt"
999
1172
],
1000
1173
"type": "object"
1001
1174
},
1002
1175
"repoViewBasic": {
1003
1176
"description": "A repository, under the name it has now.",
1004
1177
"properties": {
1005
1178
"did": {
1006
1179
"description": "The repository's owner.",
1007
1180
"format": "did",
1008
1181
"type": "string"
1009
1182
},
1010
1183
"handle": {
1011
1184
"description": "The owner's handle, as in #actorView.",
1012
1185
"type": "string"
1013
1186
},
1014
1187
"name": {
1015
1188
"description": "The repository's name: its record key.",
1016
1189
"type": "string"
1017
1190
}
1018
1191
},
1019
1192
"required": [
1020
1193
"did",
1021
1194
"handle",
1022
1195
"name"
1023
1196
],
1024
1197
"type": "object"
1025
1198
},
1026
1199
"repoViewDetailed": {
1027
1200
"description": "A repository, with what its pages show above themselves.",
1028
1201
"properties": {
1029
1202
"card": {
1030
1203
"description": "The path, on this appview, of the picture a link to its pages unfurls into: a new one whenever the picture changes.",
1031
1204
"type": "string"
1032
1205
},
1033
1206
"defaultBranch": {
1034
1207
"description": "The branch its HEAD names: empty, for a repository never pushed.",
1035
1208
"type": "string"
1036
1209
},
1037
1210
"description": {
1038
1211
"type": "string"
1039
1212
},
1040
1213
"forkOf": {
1041
1214
"description": "The repository it was forked from, if the appview knows it.",
1042
1215
"ref": "#repoViewBasic",
1043
1216
"type": "ref"
1044
1217
},
1045
1218
"links": {
1046
1219
"description": "Links its pages show, in display order, as its record names them: its website first. Only http and https addresses.",
1047
1220
"items": {
1048
1221
"ref": "#link",
1049
1222
"type": "ref"
1050
1223
},
1051
1224
"type": "array"
1052
1225
},
1053
1226
"name": {
1054
1227
"description": "The repository's name: its record key.",
1055
1228
"type": "string"
1056
1229
},
1057
1230
"openIssues": {
1058
1231
"minimum": 0,
1059
1232
"type": "integer"
1060
1233
},
1061
1234
"openPulls": {
1062
1235
"minimum": 0,
1063
1236
"type": "integer"
1064
1237
},
1065
1238
"owner": {
1066
1239
"ref": "#actorView",
1067
1240
"type": "ref"
1068
1241
},
1069
1242
"private": {
1070
1243
"description": "Whether it is private, in a space: shown only to its members, each logged in to this appview.",
1071
1244
"type": "boolean"
1072
1245
},
1073
1246
"releases": {
1074
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.",
1075
1248
"ref": "#releasesView",
1076
1249
"type": "ref"
1077
1250
},
1078
1251
"starCount": {
1079
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.",
1080
1253
"minimum": 0,
1081
1254
"type": "integer"
1082
1255
},
1083
1256
"uri": {
1084
1257
"description": "Its dev.knotless.repo record, under the name it has now.",
1085
1258
"format": "at-uri",
1086
1259
"type": "string"
1087
1260
},
1088
1261
"viewer": {
1089
1262
"description": "What the account asking has to do with it; absent when no one asks.",
1090
1263
"ref": "#repoViewerState",
1091
1264
"type": "ref"
1092
1265
}
1093
1266
},
1094
1267
"required": [
1095
1268
"uri",
1096
1269
"owner",
1097
1270
"name",
1098
1271
"defaultBranch",
1099
1272
"openPulls",
1100
1273
"openIssues",
1101
1274
"card"
1102
1275
],
1103
1276
"type": "object"
1104
1277
},
1105
1278
"repoViewerState": {
1106
1279
"description": "What the account asking a query has to do with a repository.",
1107
1280
"properties": {
1108
1281
"star": {
1109
1282
"description": "Its dev.knotless.star record naming the repository, if it starred it.",
1110
1283
"format": "at-uri",
1111
1284
"type": "string"
1112
1285
},
1113
1286
"transfer": {
1114
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).",
1115
1288
"ref": "#repoViewBasic",
1116
1289
"type": "ref"
1117
1290
}
1118
1291
},
1119
1292
"type": "object"
1120
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
+
},
1121
1336
"starState": {
1122
1337
"description": "A repository's stars, as starring or unstarring it leaves them.",
1123
1338
"properties": {
1124
1339
"star": {
1125
1340
"description": "The asker's dev.knotless.star record naming it; absent once unstarred.",
1126
1341
"format": "at-uri",
1127
1342
"type": "string"
1128
1343
},
1129
1344
"starCount": {
1130
1345
"description": "How many accounts starred it now.",
1131
1346
"minimum": 0,
1132
1347
"type": "integer"
1133
1348
}
1134
1349
},
1135
1350
"required": [
1136
1351
"starCount"
1137
1352
],
1138
1353
"type": "object"
1139
1354
}
1140
1355
},
1141
1356
"description": "Definitions shared by the knotless lexicons.",
1142
1357
"id": "dev.knotless.defs",
1143
1358
"lexicon": 1
1144
1359
}