dev.knotless.ref

lexicons.knotless.dev

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Keyed `<repo key>.<ref hash>`, where the hash is the first 26 characters of the lowercase unpadded base32 SHA-256 of `name`. Written only in the same applyWrites as the dev.knotless.claim for its current generation.",
      "key": "any",
      "record": {
        "properties": {
          "generation": {
            "description": "How many times the ref has moved.",
            "minimum": 1,
            "type": "integer"
          },
          "name": {
            "description": "The full ref name, such as refs/heads/main.",
            "maxLength": 1024,
            "type": "string"
          },
          "pusher": {
            "description": "The account that last moved the ref, when not the repository's owner: a collaborator or runner pushing through the gateway, which sets it from the caller's verified service token. Readers credit it only while the repository names it among its collaborators or runners.",
            "format": "did",
            "type": "string"
          },
          "repo": {
            "description": "The `key` of the dev.knotless.repo this ref belongs to.",
            "format": "tid",
            "type": "string"
          },
          "target": {
            "description": "The hex object ID the ref points at. Absent once the ref is deleted; the record stays so its generation never repeats.",
            "maxLength": 64,
            "minLength": 40,
            "type": "string"
          },
          "updatedAt": {
            "description": "When the ref last moved.",
            "format": "datetime",
            "type": "string"
          }
        },
        "required": [
          "repo",
          "name",
          "generation",
          "updatedAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "description": "One git ref of a repository.",
  "id": "dev.knotless.ref",
  "lexicon": 1
}

Validate Record

Validate a record against dev.knotless.ref

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:yqsg7znbbhfmj3a2nrpnaerk
CID
bafyreib5z6mqxbkv5l4tzfwdqz5pqjqndd6p4zluhdt7n6p7nuo3cxa4du
Indexed At
2026-10-28 21:21 UTC
AT-URI
at://did:plc:yqsg7znbbhfmj3a2nrpnaerk/com.atproto.lexicon.schema/dev.knotless.ref

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • The move of a ref off one generation: its key is the compare-and-swap, its body the reflog entry.

  • A did-git ref stored in an AT Protocol repository. Each record maps a repository name and ref name (e.g. refs/heads/main) to the hex SHA-256 object ID it points to.

  • A git repository hosted in this account: in its public repo, or, for a private repository, in a dev.knotless.space space keyed by the name.

  • Left under a repository's old name when it is renamed, so clone URLs, remotes and links that use the old name still reach it.

Lexicon Garden

@