dev.knotless.protectBranch

lexicons.knotless.dev

Schema Diff

+6 -1

From

CID
bafyreidzenw2zay...
Indexed At
2026-10-28 21:21 UTC
View this version

To

CID
bafyreicths4ntf7...
Indexed At
2026-10-29 04:59 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@