dev.knotless.pull
Schema Diff
+32 -0
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 11 non-breaking changes.
Breaking Changes (1)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "dev.knotless.pull#reviewer", src: "dev.knotless.pull#reviewer", tgt: "dev.knotless.pull#reviewer.did", kind: "prop", name: Some("did") }
Non-Breaking Changes (11)
- AddedVertex AddedVertex { vertex_id: "dev.knotless.pull#reviewer" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.pull#reviewer.did" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.pull#reviewer.requestedAt" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.pull:body.draft" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.pull:body.reviewers" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.pull:body.reviewers:items" }
- AddedEdge AddedEdge { src: "dev.knotless.pull#reviewer", tgt: "dev.knotless.pull#reviewer.requestedAt", kind: "prop", name: Some("requestedAt") }
- AddedEdge AddedEdge { src: "dev.knotless.pull:body", tgt: "dev.knotless.pull:body.draft", kind: "prop", name: Some("draft") }
- AddedEdge AddedEdge { src: "dev.knotless.pull:body", tgt: "dev.knotless.pull:body.reviewers", kind: "prop", name: Some("reviewers") }
- AddedEdge AddedEdge { src: "dev.knotless.pull:body.reviewers", tgt: "dev.knotless.pull:body.reviewers:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "dev.knotless.pull:body.reviewers:items", tgt: "dev.knotless.pull#reviewer", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "dev.knotless.pull#reviewer" }AddedVertex { vertex_id: "dev.knotless.pull#reviewer.did" }AddedVertex { vertex_id: "dev.knotless.pull#reviewer.requestedAt" }AddedVertex { vertex_id: "dev.knotless.pull:body.draft" }AddedVertex { vertex_id: "dev.knotless.pull:body.reviewers" }AddedVertex { vertex_id: "dev.knotless.pull:body.reviewers:items" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "dev.knotless.pull#reviewer", src: "dev.knotless.pull#reviewer", tgt: "dev.knotless.pull#reviewer.did", kind: "prop", name: Some("did") }
- Non-breaking: AddedEdge { src: "dev.knotless.pull#reviewer", tgt: "dev.knotless.pull#reviewer.requestedAt", kind: "prop", name: Some("requestedAt") }
- Non-breaking: AddedEdge { src: "dev.knotless.pull:body", tgt: "dev.knotless.pull:body.draft", kind: "prop", name: Some("draft") }
- Non-breaking: AddedEdge { src: "dev.knotless.pull:body", tgt: "dev.knotless.pull:body.reviewers", kind: "prop", name: Some("reviewers") }
- Non-breaking: AddedEdge { src: "dev.knotless.pull:body.reviewers", tgt: "dev.knotless.pull:body.reviewers:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "dev.knotless.pull:body.reviewers:items", tgt: "dev.knotless.pull#reviewer", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"head": {
5
5
"description": "Where the changes to merge are.",
6
6
"properties": {
7
7
"branch": {
8
8
"description": "Without refs/heads/.",
9
9
"maxLength": 255,
10
10
"type": "string"
11
11
},
12
12
"repo": {
13
13
"description": "The repository holding the branch: the target, or a fork.",
14
14
"ref": "dev.knotless.defs#repoRef",
15
15
"type": "ref"
16
16
}
17
17
},
18
18
"required": [
19
19
"repo",
20
20
"branch"
21
21
],
22
22
"type": "object"
23
23
},
24
24
"main": {
25
25
"description": "For a private repository, written in the requester's repo inside the repository's space.",
26
26
"key": "tid",
27
27
"record": {
28
28
"properties": {
29
29
"attachments": {
30
30
"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.",
31
31
"items": {
32
32
"refs": [
33
33
"dev.knotless.defs#image"
34
34
],
35
35
"type": "union"
36
36
},
37
37
"maxLength": 32,
38
38
"type": "array"
39
39
},
40
40
"base": {
41
41
"description": "The branch to merge into, without refs/heads/.",
42
42
"maxLength": 255,
43
43
"type": "string"
44
44
},
45
45
"body": {
46
46
"description": "Markdown.",
47
47
"maxLength": 20000,
48
48
"type": "string"
49
49
},
50
50
"createdAt": {
51
51
"format": "datetime",
52
52
"type": "string"
53
53
},
54
+
"draft": {
55
+
"description": "Whether it is a draft: not ready to merge or queue. Its author clears it when it is ready. Not a draft, when absent.",
56
+
"type": "boolean"
57
+
},
54
58
"facets": {
55
59
"description": "The accounts its body mentions, by where: written as it is, from each `@handle` outside code and links.",
56
60
"items": {
57
61
"ref": "dev.knotless.defs#facet",
58
62
"type": "ref"
59
63
},
60
64
"maxLength": 50,
61
65
"type": "array"
62
66
},
63
67
"head": {
64
68
"ref": "#head",
65
69
"type": "ref"
66
70
},
67
71
"repo": {
68
72
"description": "The target repository.",
69
73
"ref": "dev.knotless.defs#repoRef",
70
74
"type": "ref"
71
75
},
76
+
"reviewers": {
77
+
"description": "The accounts its author asks to review it. A maintainer asking someone else would need a record of their own, which this is not.",
78
+
"items": {
79
+
"ref": "#reviewer",
80
+
"type": "ref"
81
+
},
82
+
"maxLength": 32,
83
+
"type": "array"
84
+
},
72
85
"title": {
73
86
"maxGraphemes": 300,
74
87
"maxLength": 3000,
75
88
"type": "string"
76
89
},
77
90
"titleFacets": {
78
91
"description": "The accounts its title mentions, by where.",
79
92
"items": {
80
93
"ref": "dev.knotless.defs#facet",
81
94
"type": "ref"
82
95
},
83
96
"maxLength": 50,
84
97
"type": "array"
85
98
},
86
99
"updatedAt": {
87
100
"description": "When its author last changed its title or body.",
88
101
"format": "datetime",
89
102
"type": "string"
90
103
}
91
104
},
92
105
"required": [
93
106
"repo",
94
107
"base",
95
108
"head",
96
109
"title",
97
110
"createdAt"
98
111
],
99
112
"type": "object"
100
113
},
101
114
"type": "record"
115
+
},
116
+
"reviewer": {
117
+
"description": "An account a pull's author asks to review it.",
118
+
"properties": {
119
+
"did": {
120
+
"description": "The account asked.",
121
+
"format": "did",
122
+
"type": "string"
123
+
},
124
+
"requestedAt": {
125
+
"description": "When it was asked: when named, or when the pull was last marked ready, if that was later.",
126
+
"format": "datetime",
127
+
"type": "string"
128
+
}
129
+
},
130
+
"required": [
131
+
"did"
132
+
],
133
+
"type": "object"
102
134
}
103
135
},
104
136
"description": "A request to merge a branch into a repository, kept in the requester's account.",
105
137
"id": "dev.knotless.pull",
106
138
"lexicon": 1
107
139
}