dev.knotless.defs
Schema Diff
+200 -0
Compatibility Analysis
Breaking Changes Detected
15 breaking changes, 59 non-breaking changes.
Breaking Changes (15)
- 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#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#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#mention", src: "dev.knotless.defs#mention", tgt: "dev.knotless.defs#mention.did", kind: "prop", name: Some("did") }
- 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#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") }
Non-Breaking Changes (59)
- 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#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#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#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#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#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#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") }
- 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#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
},
971
1129
"forkCount": {
972
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.",
973
1131
"minimum": 0,
974
1132
"type": "integer"
975
1133
},
976
1134
"forkOf": {
977
1135
"description": "The repository it was forked from, if the appview knows it.",
978
1136
"ref": "#repoViewBasic",
979
1137
"type": "ref"
980
1138
},
981
1139
"language": {
982
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.",
983
1141
"ref": "#languageView",
984
1142
"type": "ref"
985
1143
},
986
1144
"name": {
987
1145
"description": "The repository's name: its record key.",
988
1146
"type": "string"
989
1147
},
990
1148
"owner": {
991
1149
"ref": "#actorView",
992
1150
"type": "ref"
993
1151
},
994
1152
"private": {
995
1153
"description": "Whether it is private, in a space: listed only to its owner, asking.",
996
1154
"type": "boolean"
997
1155
},
998
1156
"starCount": {
999
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.",
1000
1158
"minimum": 0,
1001
1159
"type": "integer"
1002
1160
},
1003
1161
"uri": {
1004
1162
"description": "Its dev.knotless.repo record, under the name it has now.",
1005
1163
"format": "at-uri",
1006
1164
"type": "string"
1007
1165
}
1008
1166
},
1009
1167
"required": [
1010
1168
"uri",
1011
1169
"owner",
1012
1170
"name",
1013
1171
"createdAt"
1014
1172
],
1015
1173
"type": "object"
1016
1174
},
1017
1175
"repoViewBasic": {
1018
1176
"description": "A repository, under the name it has now.",
1019
1177
"properties": {
1020
1178
"did": {
1021
1179
"description": "The repository's owner.",
1022
1180
"format": "did",
1023
1181
"type": "string"
1024
1182
},
1025
1183
"handle": {
1026
1184
"description": "The owner's handle, as in #actorView.",
1027
1185
"type": "string"
1028
1186
},
1029
1187
"name": {
1030
1188
"description": "The repository's name: its record key.",
1031
1189
"type": "string"
1032
1190
}
1033
1191
},
1034
1192
"required": [
1035
1193
"did",
1036
1194
"handle",
1037
1195
"name"
1038
1196
],
1039
1197
"type": "object"
1040
1198
},
1041
1199
"repoViewDetailed": {
1042
1200
"description": "A repository, with what its pages show above themselves.",
1043
1201
"properties": {
1044
1202
"card": {
1045
1203
"description": "The path, on this appview, of the picture a link to its pages unfurls into: a new one whenever the picture changes.",
1046
1204
"type": "string"
1047
1205
},
1048
1206
"defaultBranch": {
1049
1207
"description": "The branch its HEAD names: empty, for a repository never pushed.",
1050
1208
"type": "string"
1051
1209
},
1052
1210
"description": {
1053
1211
"type": "string"
1054
1212
},
1055
1213
"forkOf": {
1056
1214
"description": "The repository it was forked from, if the appview knows it.",
1057
1215
"ref": "#repoViewBasic",
1058
1216
"type": "ref"
1059
1217
},
1060
1218
"links": {
1061
1219
"description": "Links its pages show, in display order, as its record names them: its website first. Only http and https addresses.",
1062
1220
"items": {
1063
1221
"ref": "#link",
1064
1222
"type": "ref"
1065
1223
},
1066
1224
"type": "array"
1067
1225
},
1068
1226
"name": {
1069
1227
"description": "The repository's name: its record key.",
1070
1228
"type": "string"
1071
1229
},
1072
1230
"openIssues": {
1073
1231
"minimum": 0,
1074
1232
"type": "integer"
1075
1233
},
1076
1234
"openPulls": {
1077
1235
"minimum": 0,
1078
1236
"type": "integer"
1079
1237
},
1080
1238
"owner": {
1081
1239
"ref": "#actorView",
1082
1240
"type": "ref"
1083
1241
},
1084
1242
"private": {
1085
1243
"description": "Whether it is private, in a space: shown only to its members, each logged in to this appview.",
1086
1244
"type": "boolean"
1087
1245
},
1088
1246
"releases": {
1089
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.",
1090
1248
"ref": "#releasesView",
1091
1249
"type": "ref"
1092
1250
},
1093
1251
"starCount": {
1094
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.",
1095
1253
"minimum": 0,
1096
1254
"type": "integer"
1097
1255
},
1098
1256
"uri": {
1099
1257
"description": "Its dev.knotless.repo record, under the name it has now.",
1100
1258
"format": "at-uri",
1101
1259
"type": "string"
1102
1260
},
1103
1261
"viewer": {
1104
1262
"description": "What the account asking has to do with it; absent when no one asks.",
1105
1263
"ref": "#repoViewerState",
1106
1264
"type": "ref"
1107
1265
}
1108
1266
},
1109
1267
"required": [
1110
1268
"uri",
1111
1269
"owner",
1112
1270
"name",
1113
1271
"defaultBranch",
1114
1272
"openPulls",
1115
1273
"openIssues",
1116
1274
"card"
1117
1275
],
1118
1276
"type": "object"
1119
1277
},
1120
1278
"repoViewerState": {
1121
1279
"description": "What the account asking a query has to do with a repository.",
1122
1280
"properties": {
1123
1281
"star": {
1124
1282
"description": "Its dev.knotless.star record naming the repository, if it starred it.",
1125
1283
"format": "at-uri",
1126
1284
"type": "string"
1127
1285
},
1128
1286
"transfer": {
1129
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).",
1130
1288
"ref": "#repoViewBasic",
1131
1289
"type": "ref"
1132
1290
}
1133
1291
},
1134
1292
"type": "object"
1135
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
+
},
1136
1336
"starState": {
1137
1337
"description": "A repository's stars, as starring or unstarring it leaves them.",
1138
1338
"properties": {
1139
1339
"star": {
1140
1340
"description": "The asker's dev.knotless.star record naming it; absent once unstarred.",
1141
1341
"format": "at-uri",
1142
1342
"type": "string"
1143
1343
},
1144
1344
"starCount": {
1145
1345
"description": "How many accounts starred it now.",
1146
1346
"minimum": 0,
1147
1347
"type": "integer"
1148
1348
}
1149
1349
},
1150
1350
"required": [
1151
1351
"starCount"
1152
1352
],
1153
1353
"type": "object"
1154
1354
}
1155
1355
},
1156
1356
"description": "Definitions shared by the knotless lexicons.",
1157
1357
"id": "dev.knotless.defs",
1158
1358
"lexicon": 1
1159
1359
}