dev.knotless.pull
Schema Diff
+50 -0
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 22 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 (22)
- AddedVertex AddedVertex { vertex_id: "dev.knotless.defs#facet" }
- 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.facets" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.pull:body.facets:items" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.pull:body.reviewers" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.pull:body.reviewers:items" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.pull:body.titleFacets" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.pull:body.titleFacets: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.facets", kind: "prop", name: Some("facets") }
- 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", tgt: "dev.knotless.pull:body.titleFacets", kind: "prop", name: Some("titleFacets") }
- AddedEdge AddedEdge { src: "dev.knotless.pull:body.facets", tgt: "dev.knotless.pull:body.facets:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "dev.knotless.pull:body.facets:items", tgt: "dev.knotless.defs#facet", kind: "ref", name: None }
- 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 }
- AddedEdge AddedEdge { src: "dev.knotless.pull:body.titleFacets", tgt: "dev.knotless.pull:body.titleFacets:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "dev.knotless.pull:body.titleFacets:items", tgt: "dev.knotless.defs#facet", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "dev.knotless.defs#facet" }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.facets" }AddedVertex { vertex_id: "dev.knotless.pull:body.facets:items" }AddedVertex { vertex_id: "dev.knotless.pull:body.reviewers" }AddedVertex { vertex_id: "dev.knotless.pull:body.reviewers:items" }AddedVertex { vertex_id: "dev.knotless.pull:body.titleFacets" }AddedVertex { vertex_id: "dev.knotless.pull:body.titleFacets: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.facets", kind: "prop", name: Some("facets") }
- 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", tgt: "dev.knotless.pull:body.titleFacets", kind: "prop", name: Some("titleFacets") }
- Non-breaking: AddedEdge { src: "dev.knotless.pull:body.facets", tgt: "dev.knotless.pull:body.facets:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "dev.knotless.pull:body.facets:items", tgt: "dev.knotless.defs#facet", kind: "ref", name: None }
- 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 }
- Non-breaking: AddedEdge { src: "dev.knotless.pull:body.titleFacets", tgt: "dev.knotless.pull:body.titleFacets:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "dev.knotless.pull:body.titleFacets:items", tgt: "dev.knotless.defs#facet", 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
+
},
58
+
"facets": {
59
+
"description": "The accounts its body mentions, by where: written as it is, from each `@handle` outside code and links.",
60
+
"items": {
61
+
"ref": "dev.knotless.defs#facet",
62
+
"type": "ref"
63
+
},
64
+
"maxLength": 50,
65
+
"type": "array"
66
+
},
54
67
"head": {
55
68
"ref": "#head",
56
69
"type": "ref"
57
70
},
58
71
"repo": {
59
72
"description": "The target repository.",
60
73
"ref": "dev.knotless.defs#repoRef",
61
74
"type": "ref"
62
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
+
},
63
85
"title": {
64
86
"maxGraphemes": 300,
65
87
"maxLength": 3000,
66
88
"type": "string"
67
89
},
90
+
"titleFacets": {
91
+
"description": "The accounts its title mentions, by where.",
92
+
"items": {
93
+
"ref": "dev.knotless.defs#facet",
94
+
"type": "ref"
95
+
},
96
+
"maxLength": 50,
97
+
"type": "array"
98
+
},
68
99
"updatedAt": {
69
100
"description": "When its author last changed its title or body.",
70
101
"format": "datetime",
71
102
"type": "string"
72
103
}
73
104
},
74
105
"required": [
75
106
"repo",
76
107
"base",
77
108
"head",
78
109
"title",
79
110
"createdAt"
80
111
],
81
112
"type": "object"
82
113
},
83
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"
84
134
}
85
135
},
86
136
"description": "A request to merge a branch into a repository, kept in the requester's account.",
87
137
"id": "dev.knotless.pull",
88
138
"lexicon": 1
89
139
}