dev.knotless.comment
Schema Diff
+72 -3
Compatibility Analysis
Breaking Changes Detected
2 breaking changes, 28 non-breaking changes.
Breaking Changes (2)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.comment#lineRef", src: "dev.knotless.comment#lineRef", tgt: "dev.knotless.comment#lineRef.path", kind: "prop", name: Some("path") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.comment#lineRef", src: "dev.knotless.comment#lineRef", tgt: "dev.knotless.comment#lineRef.line", kind: "prop", name: Some("line") }
Non-Breaking Changes (28)
- AddedVertex AddedVertex { vertex_id: "dev.knotless.comment#lineRef" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.comment#lineRef.line" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.comment#lineRef.path" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.comment#lineRef.side" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.comment#lineRef.startLine" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.comment:body.attachments" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.comment:body.attachments:items" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.comment:body.attachments:items:variant0" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.comment:body.facets" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.comment:body.facets:items" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.comment:body.line" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.comment:body.reply" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.comment:body.review" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#facet" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#image" }
- AddedEdge AddedEdge { src: "dev.knotless.comment#lineRef", tgt: "dev.knotless.comment#lineRef.side", kind: "prop", name: Some("side") }
- AddedEdge AddedEdge { src: "dev.knotless.comment#lineRef", tgt: "dev.knotless.comment#lineRef.startLine", kind: "prop", name: Some("startLine") }
- AddedEdge AddedEdge { src: "dev.knotless.comment:body", tgt: "dev.knotless.comment:body.attachments", kind: "prop", name: Some("attachments") }
- AddedEdge AddedEdge { src: "dev.knotless.comment:body", tgt: "dev.knotless.comment:body.facets", kind: "prop", name: Some("facets") }
- AddedEdge AddedEdge { src: "dev.knotless.comment:body", tgt: "dev.knotless.comment:body.line", kind: "prop", name: Some("line") }
- AddedEdge AddedEdge { src: "dev.knotless.comment:body", tgt: "dev.knotless.comment:body.reply", kind: "prop", name: Some("reply") }
- AddedEdge AddedEdge { src: "dev.knotless.comment:body", tgt: "dev.knotless.comment:body.review", kind: "prop", name: Some("review") }
- AddedEdge AddedEdge { src: "dev.knotless.comment:body.attachments", tgt: "dev.knotless.comment:body.attachments:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "dev.knotless.comment:body.attachments:items", tgt: "dev.knotless.comment:body.attachments:items:variant0", kind: "variant", name: Some("dev.knotless.defs#image") }
- AddedEdge AddedEdge { src: "dev.knotless.comment:body.attachments:items:variant0", tgt: "dev.knotless.defs#image", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "dev.knotless.comment:body.facets", tgt: "dev.knotless.comment:body.facets:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "dev.knotless.comment:body.facets:items", tgt: "dev.knotless.defs#facet", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "dev.knotless.comment:body.line", tgt: "dev.knotless.comment#lineRef", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "dev.knotless.comment#lineRef" }AddedVertex { vertex_id: "dev.knotless.comment#lineRef.line" }AddedVertex { vertex_id: "dev.knotless.comment#lineRef.path" }AddedVertex { vertex_id: "dev.knotless.comment#lineRef.side" }AddedVertex { vertex_id: "dev.knotless.comment#lineRef.startLine" }AddedVertex { vertex_id: "dev.knotless.comment:body.attachments" }AddedVertex { vertex_id: "dev.knotless.comment:body.attachments:items" }AddedVertex { vertex_id: "dev.knotless.comment:body.attachments:items:variant0" }AddedVertex { vertex_id: "dev.knotless.comment:body.facets" }AddedVertex { vertex_id: "dev.knotless.comment:body.facets:items" }AddedVertex { vertex_id: "dev.knotless.comment:body.line" }AddedVertex { vertex_id: "dev.knotless.comment:body.reply" }AddedVertex { vertex_id: "dev.knotless.comment:body.review" }AddedVertex { vertex_id: "dev.knotless.defs#facet" }AddedVertex { vertex_id: "dev.knotless.defs#image" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.comment#lineRef", src: "dev.knotless.comment#lineRef", tgt: "dev.knotless.comment#lineRef.path", kind: "prop", name: Some("path") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.comment#lineRef", src: "dev.knotless.comment#lineRef", tgt: "dev.knotless.comment#lineRef.line", kind: "prop", name: Some("line") }
- Non-breaking: AddedEdge { src: "dev.knotless.comment#lineRef", tgt: "dev.knotless.comment#lineRef.side", kind: "prop", name: Some("side") }
- Non-breaking: AddedEdge { src: "dev.knotless.comment#lineRef", tgt: "dev.knotless.comment#lineRef.startLine", kind: "prop", name: Some("startLine") }
- Non-breaking: AddedEdge { src: "dev.knotless.comment:body", tgt: "dev.knotless.comment:body.attachments", kind: "prop", name: Some("attachments") }
- Non-breaking: AddedEdge { src: "dev.knotless.comment:body", tgt: "dev.knotless.comment:body.facets", kind: "prop", name: Some("facets") }
- Non-breaking: AddedEdge { src: "dev.knotless.comment:body", tgt: "dev.knotless.comment:body.line", kind: "prop", name: Some("line") }
- Non-breaking: AddedEdge { src: "dev.knotless.comment:body", tgt: "dev.knotless.comment:body.reply", kind: "prop", name: Some("reply") }
- Non-breaking: AddedEdge { src: "dev.knotless.comment:body", tgt: "dev.knotless.comment:body.review", kind: "prop", name: Some("review") }
- Non-breaking: AddedEdge { src: "dev.knotless.comment:body.attachments", tgt: "dev.knotless.comment:body.attachments:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "dev.knotless.comment:body.attachments:items", tgt: "dev.knotless.comment:body.attachments:items:variant0", kind: "variant", name: Some("dev.knotless.defs#image") }
- Non-breaking: AddedEdge { src: "dev.knotless.comment:body.attachments:items:variant0", tgt: "dev.knotless.defs#image", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "dev.knotless.comment:body.facets", tgt: "dev.knotless.comment:body.facets:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "dev.knotless.comment:body.facets:items", tgt: "dev.knotless.defs#facet", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "dev.knotless.comment:body.line", tgt: "dev.knotless.comment#lineRef", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
+
"lineRef": {
5
+
"description": "Lines of a file in a pull's diff, as GitHub's review comments name them.",
6
+
"properties": {
7
+
"line": {
8
+
"description": "The last line commented on, counting from 1.",
9
+
"minimum": 1,
10
+
"type": "integer"
11
+
},
12
+
"path": {
13
+
"description": "The file's path on the side commented on.",
14
+
"maxLength": 1024,
15
+
"type": "string"
16
+
},
17
+
"side": {
18
+
"description": "`new`, the side the pull brings in, or `old`, the side it leaves, for lines it removes. Absent, `new`.",
19
+
"knownValues": [
20
+
"old",
21
+
"new"
22
+
],
23
+
"maxLength": 16,
24
+
"type": "string"
25
+
},
26
+
"startLine": {
27
+
"description": "The first, for more than one line; no later than `line`.",
28
+
"minimum": 1,
29
+
"type": "integer"
30
+
}
31
+
},
32
+
"required": [
33
+
"path",
34
+
"line"
35
+
],
36
+
"type": "object"
37
+
},
4
38
"main": {
5
39
"description": "Kept in the commenter's account; for a private repository, in their repo inside the repository's space.",
6
40
"key": "tid",
7
41
"record": {
8
42
"properties": {
43
+
"attachments": {
44
+
"description": "What it carries beside its body: the pictures the body shows. Kinds unknown to a reader are passed over, and kept by a client changing it.",
45
+
"items": {
46
+
"refs": [
47
+
"dev.knotless.defs#image"
48
+
],
49
+
"type": "union"
50
+
},
51
+
"maxLength": 32,
52
+
"type": "array"
53
+
},
9
54
"body": {
10
55
"description": "Markdown.",
11
56
"maxLength": 20000,
12
57
"type": "string"
13
58
},
14
59
"commit": {
15
-
"description": "The hex object ID of the head commit a review looked at.",
60
+
"description": "The hex object ID of the head commit a review looked at, or that a comment's `line` is in.",
16
61
"maxLength": 64,
17
62
"minLength": 40,
18
63
"type": "string"
19
64
},
20
65
"createdAt": {
21
66
"format": "datetime",
22
67
"type": "string"
23
68
},
69
+
"facets": {
70
+
"description": "The accounts its body mentions, by where: written as it is, from each `@handle` outside code and links.",
71
+
"items": {
72
+
"ref": "dev.knotless.defs#facet",
73
+
"type": "ref"
74
+
},
75
+
"maxLength": 50,
76
+
"type": "array"
77
+
},
78
+
"line": {
79
+
"description": "For a comment on a pull's diff, the lines it is on, in the file as it was at `commit` on that side.",
80
+
"ref": "#lineRef",
81
+
"type": "ref"
82
+
},
83
+
"reply": {
84
+
"description": "The dev.knotless.comment, with a `line`, whose thread this answers. An answer has no `line` of its own.",
85
+
"format": "at-uri",
86
+
"type": "string"
87
+
},
24
88
"repo": {
25
89
"description": "The repository the pull or issue is on.",
26
90
"ref": "dev.knotless.defs#repoRef",
27
91
"type": "ref"
28
92
},
93
+
"review": {
94
+
"description": "The review, a dev.knotless.comment, this was sent with as one of its line comments, all in one write.",
95
+
"format": "at-uri",
96
+
"type": "string"
97
+
},
29
98
"subject": {
30
99
"description": "The dev.knotless.pull or dev.knotless.issue commented on.",
31
100
"format": "at-uri",
32
101
"type": "string"
33
102
},
34
103
"updatedAt": {
35
104
"description": "When its author last changed its body.",
36
105
"format": "datetime",
37
106
"type": "string"
38
107
},
39
108
"verdict": {
40
-
"description": "Present on a review: `approve`, or `changes` to ask for changes.",
109
+
"description": "Present on a review: `approve`, or `changes` to ask for changes. Readers take each reviewer's latest as where they stand, and none from the pull's author.",
41
110
"knownValues": [
42
111
"approve",
43
112
"changes"
44
113
],
45
114
"maxLength": 64,
46
115
"type": "string"
47
116
}
48
117
},
49
118
"required": [
50
119
"repo",
51
120
"subject",
52
121
"body",
53
122
"createdAt"
54
123
],
55
124
"type": "object"
56
125
},
57
126
"type": "record"
58
127
}
59
128
},
60
-
"description": "A comment on a pull or issue. With a verdict it is a review.",
129
+
"description": "A comment on a pull or issue. With a verdict it is a review; with a line, a comment on lines of a pull's diff, starting a thread there; with a reply, an answer in such a thread.",
61
130
"id": "dev.knotless.comment",
62
131
"lexicon": 1
63
132
}