dev.knotless.pushRefs
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"header": {
"description": "What precedes the pack in the body, on a line of its own.",
"properties": {
"name": {
"description": "The repository's name: its dev.knotless.repo record key.",
"maxLength": 100,
"type": "string"
},
"repo": {
"description": "The repository's owner.",
"format": "did",
"type": "string"
},
"updates": {
"items": {
"ref": "#update",
"type": "ref"
},
"type": "array"
}
},
"required": [
"repo",
"name",
"updates"
],
"type": "object"
},
"main": {
"description": "The body is one line of JSON, a #header, then a git packfile holding every object the updates need that the repository lacks (empty when every update is a deletion). Each update succeeds or fails on its own.",
"input": {
"encoding": "application/x-knotless-push"
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"results": {
"items": {
"ref": "#result",
"type": "ref"
},
"type": "array"
}
},
"required": [
"results"
],
"type": "object"
}
},
"type": "procedure"
},
"result": {
"description": "How one update went.",
"properties": {
"error": {
"description": "Why the update was refused; absent when it landed.",
"maxLength": 3000,
"type": "string"
},
"ref": {
"description": "The update's `dst`.",
"maxLength": 1024,
"type": "string"
}
},
"required": [
"ref"
],
"type": "object"
},
"update": {
"description": "One ref to move.",
"properties": {
"dst": {
"description": "The full ref name, such as refs/heads/main.",
"maxLength": 1024,
"type": "string"
},
"force": {
"default": false,
"description": "Move it even when the move is not a fast-forward.",
"type": "boolean"
},
"src": {
"description": "The hex object ID to point it at; absent to delete the ref.",
"maxLength": 64,
"minLength": 40,
"type": "string"
}
},
"required": [
"dst"
],
"type": "object"
}
},
"description": "Pushes to a repository through a gateway its owner has delegated writes to: the gateway checks the caller is the owner or a collaborator, then writes the pack and ref updates as the owner. Requires a service token from the caller's PDS, audience the gateway's DID, for this method.",
"id": "dev.knotless.pushRefs",
"lexicon": 1
}
Metadata
- DID
-
did:plc:yqsg7znbbhfmj3a2nrpnaerk - CID
-
bafyreid2zabqbi2qxz7jdnllish5xwseqfsihwewyf42xl5z24ssomv3xq - Indexed At
- 2026-10-28 21:21 UTC
- AT-URI
-
at://did:plc:yqsg7znbbhfmj3a2nrpnaerk/com.atproto.lexicon.schema/dev.knotless.pushRefs
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
dev.knotless.claim record
The move of a ref off one generation: its key is the compare-and-swap, its body the reflog entry.
-
dev.knotless.ref record
One git ref of a repository.
-
dev.knotless.createCommit procedure
Commits file changes to a branch through a gateway its owner has delegated writes to, without a clone. Commits to one branch that arrive together are built into one chain and written as one ref update. Requires a servic…
-
dev.knotless.shareRepo procedure
Lets an account push to a repository, or read a private one.