dev.knotless.pushRefs

lexicons.knotless.dev

Documentation

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.

main procedure

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

Encodingapplication/x-knotless-push

Accepts raw binary data

Output

Encodingapplication/json
results array Required

No description available.

Try It

Requests are sent directly from your browser. Some servers may block requests due to CORS.

Base URL for XRPC calls (e.g., https://bsky.social)
Enter valid JSON for the request body
View raw schema
{
  "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"
}
header object

What precedes the pack in the body, on a line of its own.

Properties

name string Required

The repository's name: its dev.knotless.repo record key.

maxLength: 100 bytes
repo string did Required

The repository's owner.

updates array of ref#update Required

No description available.

View raw schema
{
  "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"
}
result object

How one update went.

Properties

error string Optional

Why the update was refused; absent when it landed.

maxLength: 3000 bytes
ref string Required

The update's `dst`.

maxLength: 1024 bytes
View raw schema
{
  "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 object

One ref to move.

Properties

dst string Required

The full ref name, such as refs/heads/main.

maxLength: 1024 bytes
force boolean Optional

Move it even when the move is not a fast-forward.

src string Optional

The hex object ID to point it at; absent to delete the ref.

maxLength: 64 bytesminLength: 40 bytes
View raw schema
{
  "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"
}

Lexicon Garden

@