dev.knotless.createComment
Schema Diff
+52 -3
Compatibility Analysis
Breaking Changes Detected
3 breaking changes, 13 non-breaking changes.
Breaking Changes (3)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.createComment#lineComment", src: "dev.knotless.createComment#lineComment", tgt: "dev.knotless.createComment#lineComment.body", kind: "prop", name: Some("body") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.createComment#lineComment", src: "dev.knotless.createComment#lineComment", tgt: "dev.knotless.createComment#lineComment.path", kind: "prop", name: Some("path") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.createComment#lineComment", src: "dev.knotless.createComment#lineComment", tgt: "dev.knotless.createComment#lineComment.line", kind: "prop", name: Some("line") }
Non-Breaking Changes (13)
- AddedVertex AddedVertex { vertex_id: "dev.knotless.createComment#lineComment" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.createComment#lineComment.body" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.createComment#lineComment.line" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.createComment#lineComment.path" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.createComment#lineComment.side" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.createComment#lineComment.startLine" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.createComment:input.lines" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.createComment:input.lines:items" }
- AddedEdge AddedEdge { src: "dev.knotless.createComment#lineComment", tgt: "dev.knotless.createComment#lineComment.side", kind: "prop", name: Some("side") }
- AddedEdge AddedEdge { src: "dev.knotless.createComment#lineComment", tgt: "dev.knotless.createComment#lineComment.startLine", kind: "prop", name: Some("startLine") }
- AddedEdge AddedEdge { src: "dev.knotless.createComment:input", tgt: "dev.knotless.createComment:input.lines", kind: "prop", name: Some("lines") }
- AddedEdge AddedEdge { src: "dev.knotless.createComment:input.lines", tgt: "dev.knotless.createComment:input.lines:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "dev.knotless.createComment:input.lines:items", tgt: "dev.knotless.createComment#lineComment", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "dev.knotless.createComment#lineComment" }AddedVertex { vertex_id: "dev.knotless.createComment#lineComment.body" }AddedVertex { vertex_id: "dev.knotless.createComment#lineComment.line" }AddedVertex { vertex_id: "dev.knotless.createComment#lineComment.path" }AddedVertex { vertex_id: "dev.knotless.createComment#lineComment.side" }AddedVertex { vertex_id: "dev.knotless.createComment#lineComment.startLine" }AddedVertex { vertex_id: "dev.knotless.createComment:input.lines" }AddedVertex { vertex_id: "dev.knotless.createComment:input.lines:items" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.createComment#lineComment", src: "dev.knotless.createComment#lineComment", tgt: "dev.knotless.createComment#lineComment.body", kind: "prop", name: Some("body") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.createComment#lineComment", src: "dev.knotless.createComment#lineComment", tgt: "dev.knotless.createComment#lineComment.path", kind: "prop", name: Some("path") }
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.createComment#lineComment", src: "dev.knotless.createComment#lineComment", tgt: "dev.knotless.createComment#lineComment.line", kind: "prop", name: Some("line") }
- Non-breaking: AddedEdge { src: "dev.knotless.createComment#lineComment", tgt: "dev.knotless.createComment#lineComment.side", kind: "prop", name: Some("side") }
- Non-breaking: AddedEdge { src: "dev.knotless.createComment#lineComment", tgt: "dev.knotless.createComment#lineComment.startLine", kind: "prop", name: Some("startLine") }
- Non-breaking: AddedEdge { src: "dev.knotless.createComment:input", tgt: "dev.knotless.createComment:input.lines", kind: "prop", name: Some("lines") }
- Non-breaking: AddedEdge { src: "dev.knotless.createComment:input.lines", tgt: "dev.knotless.createComment:input.lines:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "dev.knotless.createComment:input.lines:items", tgt: "dev.knotless.createComment#lineComment", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
+
"lineComment": {
5
+
"description": "A comment on lines of a pull's diff.",
6
+
"properties": {
7
+
"body": {
8
+
"description": "What it says, in Markdown.",
9
+
"maxLength": 20000,
10
+
"type": "string"
11
+
},
12
+
"line": {
13
+
"description": "The last line commented on, counting from 1, in the file as it is on that side.",
14
+
"minimum": 1,
15
+
"type": "integer"
16
+
},
17
+
"path": {
18
+
"description": "The file's path on the side commented on.",
19
+
"maxLength": 1024,
20
+
"type": "string"
21
+
},
22
+
"side": {
23
+
"description": "`new`, the side the pull brings in, or `old`, the side it leaves. Absent, `new`.",
24
+
"knownValues": [
25
+
"old",
26
+
"new"
27
+
],
28
+
"maxLength": 16,
29
+
"type": "string"
30
+
},
31
+
"startLine": {
32
+
"description": "The first, for more than one line.",
33
+
"minimum": 1,
34
+
"type": "integer"
35
+
}
36
+
},
37
+
"required": [
38
+
"path",
39
+
"line",
40
+
"body"
41
+
],
42
+
"type": "object"
43
+
},
4
44
"main": {
5
45
"description": "Writes a dev.knotless.comment record in the account logged in to this appview's web pages, as `knotless comment` does: with a verdict, a review of the pull's head as it is now. Requires the session cookie the pages' login sets: the appview writes with the session it keeps for that account. Clients holding their own session write the record themselves.",
6
46
"errors": [
7
47
{
8
48
"description": "No such repository.",
9
49
"name": "NotFound"
10
50
},
11
51
{
12
52
"description": "No account is logged in to the pages, or its session has ended.",
13
53
"name": "AuthenticationRequired"
14
54
}
15
55
],
16
56
"input": {
17
57
"encoding": "application/json",
18
58
"schema": {
19
59
"properties": {
20
60
"body": {
21
61
"description": "What it says, in Markdown.",
22
62
"maxLength": 20000,
23
63
"type": "string"
24
64
},
25
65
"images": {
26
66
"description": "Pictures uploaded with dev.knotless.uploadImage; those the body links to are attached.",
27
67
"items": {
28
68
"ref": "dev.knotless.defs#image",
29
69
"type": "ref"
30
70
},
31
71
"maxLength": 32,
32
72
"type": "array"
33
73
},
74
+
"lines": {
75
+
"description": "Comments on lines of a pull's diff, at its head as it is now, each starting a thread, written at once: as the review's when it has a body or a verdict, else on their own.",
76
+
"items": {
77
+
"ref": "#lineComment",
78
+
"type": "ref"
79
+
},
80
+
"maxLength": 100,
81
+
"type": "array"
82
+
},
34
83
"repo": {
35
84
"description": "The repository's dev.knotless.repo record, as dev.knotless.getRepo takes it.",
36
85
"format": "at-uri",
37
86
"type": "string"
38
87
},
39
88
"subject": {
40
-
"description": "The dev.knotless.pull or dev.knotless.issue commented on.",
89
+
"description": "The dev.knotless.pull or dev.knotless.issue commented on; or a dev.knotless.comment to answer, in the thread it starts or is in.",
41
90
"format": "at-uri",
42
91
"type": "string"
43
92
},
44
93
"verdict": {
45
94
"description": "For a review of a pull: `approve`, or `changes` to ask for changes.",
46
95
"knownValues": [
47
96
"approve",
48
97
"changes"
49
98
],
50
99
"maxLength": 64,
51
100
"type": "string"
52
101
}
53
102
},
54
103
"required": [
55
104
"repo",
56
105
"subject",
57
106
"body"
58
107
],
59
108
"type": "object"
60
109
}
61
110
},
62
111
"output": {
63
112
"encoding": "application/json",
64
113
"schema": {
65
114
"properties": {
66
115
"uri": {
67
-
"description": "The dev.knotless.comment record written.",
116
+
"description": "The dev.knotless.comment record written: with lines, the review, or without one the first line comment.",
68
117
"format": "at-uri",
69
118
"type": "string"
70
119
}
71
120
},
72
121
"required": [
73
122
"uri"
74
123
],
75
124
"type": "object"
76
125
}
77
126
},
78
127
"type": "procedure"
79
128
}
80
129
},
81
-
"description": "Comments on a pull or an issue, or reviews a pull, as the account logged in to this appview's pages.",
130
+
"description": "Comments on a pull or an issue, or on lines of a pull's diff, or answers a comment, or reviews a pull, as the account logged in to this appview's pages.",
82
131
"id": "dev.knotless.createComment",
83
132
"lexicon": 1
84
133
}