dev.knotless.protectBranch
Schema Diff
+6 -1
Compatibility Analysis
Backward Compatible
Backward compatible. 4 non-breaking changes.
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "dev.knotless.protectBranch:input.reviews" }
- AddedVertex AddedVertex { vertex_id: "dev.knotless.repo#reviews" }
- AddedEdge AddedEdge { src: "dev.knotless.protectBranch:input", tgt: "dev.knotless.protectBranch:input.reviews", kind: "prop", name: Some("reviews") }
- AddedEdge AddedEdge { src: "dev.knotless.protectBranch:input.reviews", tgt: "dev.knotless.repo#reviews", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "dev.knotless.protectBranch:input.reviews" }AddedVertex { vertex_id: "dev.knotless.repo#reviews" }
Additional Notes
- Non-breaking: AddedEdge { src: "dev.knotless.protectBranch:input", tgt: "dev.knotless.protectBranch:input.reviews", kind: "prop", name: Some("reviews") }
- Non-breaking: AddedEdge { src: "dev.knotless.protectBranch:input.reviews", tgt: "dev.knotless.repo#reviews", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
-
"description": "Adds the branch to the protected branches of the repository's dev.knotless.repo record, in place of any rule it had, as `knotless protect` does: through the gateway it then only moves forward, is never deleted, and unless merges is set takes no merge commits; with queue, pulls land on it only through the merge queue. Only its owner, logged in to this appview's web pages, can: the appview writes with the session it keeps for that account, which the pages' session cookie names.",
5
+
"description": "Adds the branch to the protected branches of the repository's dev.knotless.repo record, in place of any rule it had, as `knotless protect` does: through the gateway it then only moves forward, is never deleted, and unless merges is set takes no merge commits; with queue, pulls land on it only through the merge queue; with reviews, a pull merges into it only once reviewed as they ask. Only its owner, logged in to this appview's web pages, can: the appview writes with the session it keeps for that account, which the pages' session cookie names.",
6
6
"errors": [
7
7
{
8
8
"description": "No such repository.",
9
9
"name": "NotFound"
10
10
},
11
11
{
12
12
"description": "No account is logged in to the pages, or its session has ended.",
13
13
"name": "AuthenticationRequired"
14
14
},
15
15
{
16
16
"description": "The account logged in is not the repository's owner.",
17
17
"name": "Forbidden"
18
18
}
19
19
],
20
20
"input": {
21
21
"encoding": "application/json",
22
22
"schema": {
23
23
"properties": {
24
24
"branch": {
25
25
"description": "The branch, without refs/heads/.",
26
26
"maxLength": 255,
27
27
"type": "string"
28
28
},
29
29
"merges": {
30
30
"description": "Whether it takes merge commits; otherwise pulls merge into it squashed.",
31
31
"type": "boolean"
32
32
},
33
33
"queue": {
34
34
"description": "Whether pulls land on it only through the merge queue.",
35
35
"type": "boolean"
36
36
},
37
37
"repo": {
38
38
"description": "The repository's dev.knotless.repo record, as dev.knotless.getRepo takes it.",
39
39
"format": "at-uri",
40
40
"type": "string"
41
+
},
42
+
"reviews": {
43
+
"description": "The reviews a pull needs before it merges into the branch. Absent, none.",
44
+
"ref": "dev.knotless.repo#reviews",
45
+
"type": "ref"
41
46
}
42
47
},
43
48
"required": [
44
49
"repo",
45
50
"branch"
46
51
],
47
52
"type": "object"
48
53
}
49
54
},
50
55
"output": {
51
56
"encoding": "application/json",
52
57
"schema": {
53
58
"properties": {
54
59
"rules": {
55
60
"description": "The protected branches now.",
56
61
"items": {
57
62
"ref": "dev.knotless.repo#rule",
58
63
"type": "ref"
59
64
},
60
65
"type": "array"
61
66
}
62
67
},
63
68
"required": [
64
69
"rules"
65
70
],
66
71
"type": "object"
67
72
}
68
73
},
69
74
"type": "procedure"
70
75
}
71
76
},
72
77
"description": "Protects a branch of a repository.",
73
78
"id": "dev.knotless.protectBranch",
74
79
"lexicon": 1
75
80
}