dev.knotless.comment
Schema Diff
+51 -2
Compatibility Analysis
Breaking Changes Detected
2 breaking changes, 14 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 (14)
- 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.line" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.comment:body.reply" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.comment:body.review" }
- 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.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.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.line" }AddedVertex { vertex_id: "dev.knotless.comment:body.reply" }AddedVertex { vertex_id: "dev.knotless.comment:body.review" }
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.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.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": {
9
43
"attachments": {
10
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.",
11
45
"items": {
12
46
"refs": [
13
47
"dev.knotless.defs#image"
14
48
],
15
49
"type": "union"
16
50
},
17
51
"maxLength": 32,
18
52
"type": "array"
19
53
},
20
54
"body": {
21
55
"description": "Markdown.",
22
56
"maxLength": 20000,
23
57
"type": "string"
24
58
},
25
59
"commit": {
26
-
"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.",
27
61
"maxLength": 64,
28
62
"minLength": 40,
29
63
"type": "string"
30
64
},
31
65
"createdAt": {
32
66
"format": "datetime",
33
67
"type": "string"
34
68
},
35
69
"facets": {
36
70
"description": "The accounts its body mentions, by where: written as it is, from each `@handle` outside code and links.",
37
71
"items": {
38
72
"ref": "dev.knotless.defs#facet",
39
73
"type": "ref"
40
74
},
41
75
"maxLength": 50,
42
76
"type": "array"
43
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
+
},
44
88
"repo": {
45
89
"description": "The repository the pull or issue is on.",
46
90
"ref": "dev.knotless.defs#repoRef",
47
91
"type": "ref"
48
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
+
},
49
98
"subject": {
50
99
"description": "The dev.knotless.pull or dev.knotless.issue commented on.",
51
100
"format": "at-uri",
52
101
"type": "string"
53
102
},
54
103
"updatedAt": {
55
104
"description": "When its author last changed its body.",
56
105
"format": "datetime",
57
106
"type": "string"
58
107
},
59
108
"verdict": {
60
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.",
61
110
"knownValues": [
62
111
"approve",
63
112
"changes"
64
113
],
65
114
"maxLength": 64,
66
115
"type": "string"
67
116
}
68
117
},
69
118
"required": [
70
119
"repo",
71
120
"subject",
72
121
"body",
73
122
"createdAt"
74
123
],
75
124
"type": "object"
76
125
},
77
126
"type": "record"
78
127
}
79
128
},
80
-
"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.",
81
130
"id": "dev.knotless.comment",
82
131
"lexicon": 1
83
132
}