{
  "components": {
    "responses": {
      "BadRequest": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiErrorEnvelope"
            }
          }
        },
        "description": "Malformed or invalid request"
      },
      "Conflict": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiErrorEnvelope"
            }
          }
        },
        "description": "Resource state conflict"
      },
      "Forbidden": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiErrorEnvelope"
            }
          }
        },
        "description": "Principal is not authorized"
      },
      "Internal": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiErrorEnvelope"
            }
          }
        },
        "description": "Internal service failure"
      },
      "NotFound": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiErrorEnvelope"
            }
          }
        },
        "description": "Resource not found"
      },
      "RateLimited": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiErrorEnvelope"
            }
          }
        },
        "description": "Rate limit exceeded"
      },
      "Unauthorized": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ApiErrorEnvelope"
            }
          }
        },
        "description": "Missing or invalid credentials"
      }
    },
    "schemas": {
      "Action": {
        "description": "A signed action the client should perform for an object: `PUT` the\nbytes (upload) or `GET` them (download) at `href`, sending `header`.",
        "properties": {
          "expires_in": {
            "description": "Seconds until `href` expires. The client should start the transfer\nbefore then. Omitted ⇒ no declared expiry.",
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "header": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Headers the client must send with the transfer request (e.g. an\nauth bearer for the proxy path). Empty when none are required.",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "href": {
            "description": "The URL to GET/PUT the object bytes.",
            "type": "string"
          }
        },
        "required": [
          "href"
        ],
        "type": "object"
      },
      "ActionDecoration": {
        "properties": {
          "appId": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "href": {
            "type": "string"
          },
          "icon": {
            "$ref": "#/components/schemas/IconKey"
          },
          "installationId": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "label": {
            "description": "1–24 chars.",
            "type": "string"
          },
          "priority": {
            "description": "0–100 ordering hint. Lower = earlier. SPA caps visible count.",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "surface": {
            "$ref": "#/components/schemas/ActionSurface"
          },
          "target": {
            "$ref": "#/components/schemas/DecorationTarget"
          }
        },
        "required": [
          "appId",
          "installationId",
          "target",
          "key",
          "surface",
          "label",
          "icon",
          "href",
          "createdAt"
        ],
        "type": "object"
      },
      "ActionSurface": {
        "enum": [
          "repo.header",
          "branch.header",
          "commit.header"
        ],
        "type": "string"
      },
      "Actions": {
        "description": "The action set for a single object — `upload` and/or `download`.\nA `download` response carries `download`; an `upload` response carries\n`upload` (and the spec optionally a `verify` action, which gitdown folds\ninto the verify-on-upload server step rather than a client round-trip).",
        "properties": {
          "download": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Action"
              }
            ]
          },
          "upload": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Action"
              }
            ]
          }
        },
        "type": "object"
      },
      "Actor": {
        "properties": {
          "id": {
            "description": "uid for User, appId for App, botId for Bot, \"system\" for System.",
            "type": "string"
          },
          "installationId": {
            "description": "Set when actor is App: the installation token's\ninstallation_id. Lets audit + webhook delivery filter to a\nspecific install.",
            "type": [
              "string",
              "null"
            ]
          },
          "kind": {
            "$ref": "#/components/schemas/ActorKind"
          }
        },
        "required": [
          "kind",
          "id"
        ],
        "type": "object"
      },
      "ActorKind": {
        "enum": [
          "user",
          "app",
          "bot",
          "system"
        ],
        "type": "string"
      },
      "AddGpgKeyRequest": {
        "additionalProperties": false,
        "properties": {
          "label": {
            "type": [
              "string",
              "null"
            ]
          },
          "publicKey": {
            "type": "string"
          }
        },
        "required": [
          "publicKey"
        ],
        "type": "object"
      },
      "AddMemberRequest": {
        "additionalProperties": false,
        "properties": {
          "role": {
            "$ref": "#/components/schemas/Role"
          },
          "userSlug": {
            "description": "The slug of the user to add. They must already exist (have signed in\nat least once) so the slug sentinel resolves.",
            "type": "string"
          }
        },
        "required": [
          "userSlug"
        ],
        "type": "object"
      },
      "AddSshKeyRequest": {
        "additionalProperties": false,
        "properties": {
          "label": {
            "type": [
              "string",
              "null"
            ]
          },
          "publicKey": {
            "type": "string"
          }
        },
        "required": [
          "publicKey"
        ],
        "type": "object"
      },
      "ApiError": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "retryAfterSeconds": {
            "format": "uint64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "type": "object"
      },
      "ApiErrorEnvelope": {
        "additionalProperties": false,
        "properties": {
          "error": {
            "$ref": "#/components/schemas/ApiError"
          }
        },
        "required": [
          "error"
        ],
        "type": "object"
      },
      "AppCapabilityGrant": {
        "additionalProperties": false,
        "properties": {
          "appId": {
            "type": "string"
          },
          "capabilityId": {
            "type": "string"
          }
        },
        "required": [
          "appId",
          "capabilityId"
        ],
        "type": "object"
      },
      "AuditLogEntry": {
        "properties": {
          "action": {
            "description": "Free-form action verb, e.g. `branch.transition.ready`,\n`decoration.write.badge`, `ssh-key.delete`. Apps + handlers\nagree on naming via the convention \"$noun.$verb[.qualifier]\".",
            "type": "string"
          },
          "actor": {
            "$ref": "#/components/schemas/Actor"
          },
          "branchId": {
            "description": "Immutable branch-lifetime ULID for branch-scoped actions. This keeps\nhistory unambiguous when a human-readable branch name is reused.",
            "type": [
              "string",
              "null"
            ]
          },
          "expiresAt": {
            "description": "Server-set deletion eligibility timestamp. Firestore TTL config\non this field auto-deletes entries past this date (#173). The\ncaller (services/api::audit::log) sets it to `now + 30 days`.\nOptional for legacy rows that pre-date the field; new writes\nalways populate it. Skipped on serialize when None to keep wire\nshape stable for app/decoration handlers that don't set it yet.",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "ULID — sortable + monotonic per-process.",
            "type": "string"
          },
          "occurredAt": {
            "format": "date-time",
            "type": "string"
          },
          "scopes": {
            "description": "Scopes the actor was using when the action ran (only for App\nactors; None for User actors).",
            "items": {
              "$ref": "#/components/schemas/Scope"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sourceService": {
            "description": "#1805 FIX 8 A4 — provenance: the verified Google service-account\nemail that relayed an internal request carrying this audit event (set\nby an OIDC gate, not asserted by the caller). This covers\n`POST /api/internal/audit-event` on the allow-listed broad mesh and the\nmarketplace authorization endpoint's separate operated-app identity\nlane. Distinct from `actor` — `actor` is WHO acted (a real pusher uid,\nan app id, or System); `source_service` is WHICH verified workload\nrelayed it.\n`None` for in-process audits without a verified workload. Local\ninternal routing uses its fixed development workload identity so its\ndecision-audit shape matches production. `serde(default)` keeps legacy\nrows deserializing to `None`.",
            "type": [
              "string",
              "null"
            ]
          },
          "target": {
            "description": "Target resource id, e.g. repo id, branch full ref, etc.\nFree-form — readers grep.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "actor",
          "action",
          "target",
          "occurredAt"
        ],
        "type": "object"
      },
      "BadgeDecoration": {
        "properties": {
          "appId": {
            "type": "string"
          },
          "count": {
            "description": "Optional integer count rendered next to the icon. Apps cap at\n999+ semantically; the SPA may render `999+` for higher counts.",
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "href": {
            "type": "string"
          },
          "icon": {
            "$ref": "#/components/schemas/IconKey"
          },
          "installationId": {
            "type": "string"
          },
          "key": {
            "description": "Opaque app-namespaced key. The pair `(app_id, key)` uniquely\nidentifies a decoration and is the upsert key.",
            "type": "string"
          },
          "label": {
            "description": "1–32 chars; longer is rejected at write time.",
            "type": "string"
          },
          "target": {
            "$ref": "#/components/schemas/DecorationTarget"
          },
          "tone": {
            "$ref": "#/components/schemas/Tone"
          }
        },
        "required": [
          "appId",
          "installationId",
          "target",
          "key",
          "icon",
          "label",
          "tone",
          "href",
          "createdAt"
        ],
        "type": "object"
      },
      "BatchRequest": {
        "description": "A Batch API request body.",
        "properties": {
          "objects": {
            "description": "The objects to transfer.",
            "items": {
              "$ref": "#/components/schemas/ObjectId"
            },
            "type": "array"
          },
          "operation": {
            "$ref": "#/components/schemas/Operation",
            "description": "`upload` or `download`."
          },
          "transfers": {
            "description": "Transfer adapters the client supports, in preference order. Absent\n⇒ the spec default `[\"basic\"]`. gitdown only implements `basic`.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "operation",
          "objects"
        ],
        "type": "object"
      },
      "BatchResponse": {
        "description": "A Batch API response body.",
        "properties": {
          "objects": {
            "description": "Per-object results, in the request order.",
            "items": {
              "$ref": "#/components/schemas/ResponseObject"
            },
            "type": "array"
          },
          "transfer": {
            "description": "The transfer adapter the server selected (`basic`).",
            "type": "string"
          }
        },
        "required": [
          "transfer",
          "objects"
        ],
        "type": "object"
      },
      "BlobView": {
        "properties": {
          "binary": {
            "description": "True iff the bytes look like a binary file (NUL byte in the first\n8 KiB or non-utf8). The client renders the \"binary file\" placeholder.\n**Independent of size** — a 50 MB plain-text blob is `binary: false`,\n`tooBig: true`, and renders via the ranged-stream path. #303.",
            "type": "boolean"
          },
          "content": {
            "description": "Truncated to `BLOB_INLINE_LIMIT`. `null` when the blob is too\nlarge (`tooBig`) or detected as binary; clients fall back to the\nranged-stream path or the binary placeholder respectively. UTF-8\nonly — anything else is reported as `binary: true`.",
            "type": [
              "string",
              "null"
            ]
          },
          "oid": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "size": {
            "minimum": 0,
            "type": "integer"
          },
          "tooBig": {
            "description": "True when `size > BLOB_INLINE_LIMIT`. The server omits `content`\nregardless of binary-ness; clients use the `?range=N-M` endpoint\nto stream the file. Distinct from `binary` so a too-big-but-text\nblob takes the ranged-viewer path, not the binary placeholder. #303.",
            "type": "boolean"
          }
        },
        "required": [
          "oid",
          "path",
          "size",
          "binary",
          "tooBig"
        ],
        "type": "object"
      },
      "Bot": {
        "additionalProperties": false,
        "properties": {
          "botId": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "createdByUid": {
            "type": "string"
          },
          "displayName": {
            "type": "string"
          },
          "ownerSubjectId": {
            "type": "string"
          },
          "ownerSubjectKind": {
            "$ref": "#/components/schemas/SubjectKind"
          },
          "purpose": {
            "type": "string"
          },
          "schemaVersion": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "state": {
            "$ref": "#/components/schemas/BotState"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "version": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "botId",
          "ownerSubjectKind",
          "ownerSubjectId",
          "displayName",
          "purpose",
          "state",
          "createdByUid",
          "createdAt",
          "updatedAt",
          "version"
        ],
        "type": "object"
      },
      "BotCredential": {
        "additionalProperties": false,
        "description": "Revocable metadata for a grant-bound bot access token.\n\nThe serialized JWT is deliberately absent. A presented token is active\nonly when its credential id resolves to this row, its JTI matches, and the\nrow is neither expired nor revoked.",
        "properties": {
          "botId": {
            "type": "string"
          },
          "createdByUid": {
            "type": "string"
          },
          "credentialId": {
            "type": "string"
          },
          "expiresAt": {
            "format": "date-time",
            "type": "string"
          },
          "grantId": {
            "type": "string"
          },
          "issuedAt": {
            "format": "date-time",
            "type": "string"
          },
          "jti": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "lastUsedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "revokedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "schemaVersion": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "version": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "credentialId",
          "botId",
          "grantId",
          "jti",
          "label",
          "issuedAt",
          "expiresAt",
          "createdByUid",
          "version"
        ],
        "type": "object"
      },
      "BotCredentialMintResponse": {
        "additionalProperties": false,
        "properties": {
          "credential": {
            "$ref": "#/components/schemas/BotCredential"
          },
          "secretUnavailable": {
            "type": "boolean"
          },
          "token": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "credential",
          "secretUnavailable"
        ],
        "type": "object"
      },
      "BotGrant": {
        "additionalProperties": false,
        "properties": {
          "appCapabilities": {
            "items": {
              "$ref": "#/components/schemas/AppCapabilityGrant"
            },
            "type": "array"
          },
          "authorizingSubjectId": {
            "type": "string"
          },
          "authorizingSubjectKind": {
            "$ref": "#/components/schemas/SubjectKind"
          },
          "botId": {
            "type": "string"
          },
          "corePermissions": {
            "items": {
              "$ref": "#/components/schemas/BotPermission"
            },
            "type": "array"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "createdByUid": {
            "type": "string"
          },
          "futureRepositoryRule": {
            "$ref": "#/components/schemas/FutureRepositoryRule"
          },
          "grantId": {
            "type": "string"
          },
          "repositoryExclusions": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "repositorySnapshot": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "schemaVersion": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "state": {
            "$ref": "#/components/schemas/BotGrantState"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          },
          "version": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "grantId",
          "botId",
          "authorizingSubjectKind",
          "authorizingSubjectId",
          "corePermissions",
          "appCapabilities",
          "repositorySnapshot",
          "futureRepositoryRule",
          "repositoryExclusions",
          "state",
          "createdByUid",
          "createdAt",
          "updatedAt",
          "version"
        ],
        "type": "object"
      },
      "BotGrantState": {
        "enum": [
          "active",
          "revoked"
        ],
        "type": "string"
      },
      "BotPermission": {
        "enum": [
          "repository:read",
          "git:fetch",
          "git:push",
          "branch:read",
          "branch:create",
          "branch:update",
          "branch:merge",
          "ci:read"
        ],
        "type": "string"
      },
      "BotSshKey": {
        "additionalProperties": false,
        "description": "Revocable SSH public-key credential bound to exactly one bot grant.\n\nThe private key never reaches Gitdown. SSH transport authentication proves\npossession; this row supplies the stable credential/grant attribution used\nby the common bot authorization evaluator.",
        "properties": {
          "algorithm": {
            "type": "string"
          },
          "botId": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "createdByUid": {
            "type": "string"
          },
          "fingerprint": {
            "type": "string"
          },
          "grantId": {
            "type": "string"
          },
          "keyId": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "lastUsedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "publicKey": {
            "type": "string"
          },
          "revokedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "schemaVersion": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "version": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "keyId",
          "botId",
          "grantId",
          "fingerprint",
          "algorithm",
          "publicKey",
          "label",
          "createdAt",
          "createdByUid",
          "version"
        ],
        "type": "object"
      },
      "BotState": {
        "enum": [
          "active",
          "disabled"
        ],
        "type": "string"
      },
      "BranchDetail": {
        "properties": {
          "baseSha": {
            "type": "string"
          },
          "branchId": {
            "type": "string"
          },
          "ciStatus": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/CiSummary",
                "description": "Latest CI run summary as denormalized on the branch doc. The full\n`ciRuns/{id}` history lands with the runner work; this stub is enough\nfor the detail page to show \"running / success / failed\" + the\nrequired-green gate without a second collection lookup."
              }
            ]
          },
          "headSha": {
            "type": "string"
          },
          "mergedAs": {
            "description": "Squash-merge result. Mirrors `Branch::merged_as` — the SHA on\n`refs/heads/main` produced by the merge endpoint. Set only for branches\nin state `merged`; absent otherwise.",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "ownerDisplayName": {
            "description": "#1856 — the branch owner's human display name; falls back to `owner_uid`.",
            "type": "string"
          },
          "ownerSlug": {
            "description": "#1856 — the branch owner's (the pushing \"agent\") URL handle, resolved\nfrom their User doc so the SPA's branch-detail \"agent\" attribution\nrenders a human-readable slug instead of the raw Firebase uid. Falls\nback to `owner_uid` when the User doc is missing.",
            "type": "string"
          },
          "ownerUid": {
            "type": "string"
          },
          "reviewerUid": {
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "$ref": "#/components/schemas/BranchState"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "name",
          "branchId",
          "state",
          "headSha",
          "baseSha",
          "ownerUid",
          "ownerSlug",
          "ownerDisplayName",
          "updatedAt"
        ],
        "type": "object"
      },
      "BranchHit": {
        "properties": {
          "branchId": {
            "type": "string"
          },
          "branchName": {
            "type": "string"
          },
          "match": {
            "type": "string"
          },
          "ownerSlug": {
            "type": "string"
          },
          "ownerType": {
            "$ref": "#/components/schemas/OwnerType"
          },
          "repoSlug": {
            "type": "string"
          }
        },
        "required": [
          "ownerType",
          "ownerSlug",
          "repoSlug",
          "branchName",
          "branchId",
          "match"
        ],
        "type": "object"
      },
      "BranchIdentity": {
        "properties": {
          "branchId": {
            "description": "Immutable branch identity; distinct from the mutable branch name.",
            "type": "string"
          }
        },
        "required": [
          "branchId"
        ],
        "type": "object"
      },
      "BranchState": {
        "description": "The branch state machine state. See plans/05-branch-state.md.",
        "enum": [
          "draft",
          "ready",
          "under_review",
          "merged",
          "abandoned"
        ],
        "type": "string"
      },
      "BranchSummary": {
        "description": "#1882 — ref-first branch row. The branches view shows ALL git refs\nuniformly (the default branch + every feature branch), GitHub-style: the\n`refs/heads/*` set is the source of truth, the FSM branch DOC is an\noptional overlay. A ref with no FSM doc (the default branch, which has no\nbranch-state document) still appears — `state` is then absent, never\nfabricated, and `isDefault` marks it.\n\n- `head_sha` is ALWAYS present (it comes from the ref oid, not the doc).\n- `is_default` is ALWAYS serialized (`isDefault: false` for feature rows).\n- `state` / `reviewer_uid` / `ci_status` / `base_sha` / `owner_uid` /\n  `updated_at` are the FSM overlay — present only when a branch doc exists.",
        "properties": {
          "baseSha": {
            "description": "FSM overlay: the branch's base sha. Absent for a bare ref.",
            "type": [
              "string",
              "null"
            ]
          },
          "branchId": {
            "description": "Immutable identity of the FSM branch lifetime. Absent only for a bare\nGit ref with no authoritative branch document.",
            "type": [
              "string",
              "null"
            ]
          },
          "ciStatus": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/CiSummary",
                "description": "FSM overlay: the latest CI summary denormalized on the branch doc."
              }
            ]
          },
          "headSha": {
            "description": "Always present — the ref oid (40-hex). Never derived from the doc.",
            "type": "string"
          },
          "isDefault": {
            "description": "`true` iff this ref's shortname is the repo's default branch.",
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "ownerUid": {
            "description": "FSM overlay: the pushing agent's uid. Absent for a bare ref.",
            "type": [
              "string",
              "null"
            ]
          },
          "reviewerUid": {
            "description": "FSM overlay: the assigned reviewer's uid, when one is bound.",
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/BranchState",
                "description": "FSM state — absent for a ref with no branch DOC (e.g. the default\nbranch). The client renders the state label only when present."
              }
            ]
          },
          "updatedAt": {
            "description": "FSM overlay: last-activity timestamp from the branch doc. Absent for a\nbare ref (the row is sorted to the bottom of the non-default set).",
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "isDefault",
          "headSha"
        ],
        "type": "object"
      },
      "BrowseResponse_CommitsPage": {
        "description": "Wraps a populated browse response or an empty-repo marker. Untagged so\nthe JSON shape is the populated type's fields OR the empty-marker\nfields — the frontend differentiates by the presence of `empty: true`.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/EmptyRepoBody"
          },
          {
            "properties": {
              "commits": {
                "items": {
                  "$ref": "#/components/schemas/CommitView"
                },
                "type": "array"
              },
              "nextBefore": {
                "description": "SHA to pass back as `?before=` to fetch the next page; null at the\nend of history.",
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "commits"
            ],
            "type": "object"
          }
        ]
      },
      "BrowseResponse_TreeView": {
        "description": "Wraps a populated browse response or an empty-repo marker. Untagged so\nthe JSON shape is the populated type's fields OR the empty-marker\nfields — the frontend differentiates by the presence of `empty: true`.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/EmptyRepoBody"
          },
          {
            "properties": {
              "entries": {
                "items": {
                  "$ref": "#/components/schemas/TreeEntryView"
                },
                "type": "array"
              },
              "nextCursor": {
                "description": "Opaque cursor for the next page; null when this is the last\npage. Round-trip through `?cursor=` per #239 — clients\nshouldn't parse the JSON inside.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "oid": {
                "type": "string"
              },
              "path": {
                "type": "string"
              }
            },
            "required": [
              "oid",
              "path",
              "entries"
            ],
            "type": "object"
          }
        ]
      },
      "CheckDecoration": {
        "properties": {
          "appId": {
            "type": "string"
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "href": {
            "type": [
              "string",
              "null"
            ]
          },
          "installationId": {
            "type": "string"
          },
          "key": {
            "type": "string"
          },
          "name": {
            "description": "e.g. \"shipstorm/deploy\" — arbitrary but limited to 64 chars at\nwrite time; the manifest's app namespace is the convention.",
            "type": "string"
          },
          "required": {
            "description": "When true and the check is on a branch's head SHA, the merge\ngate (api) blocks squash-merge until the check is `Success`.\nPer-repo opt-in (plan §5).",
            "type": "boolean"
          },
          "state": {
            "$ref": "#/components/schemas/CheckState"
          },
          "summary": {
            "description": "1–140 chars when present.",
            "type": [
              "string",
              "null"
            ]
          },
          "target": {
            "$ref": "#/components/schemas/DecorationTarget"
          }
        },
        "required": [
          "appId",
          "installationId",
          "target",
          "key",
          "name",
          "state",
          "createdAt"
        ],
        "type": "object"
      },
      "CheckState": {
        "enum": [
          "pending",
          "success",
          "failed",
          "neutral"
        ],
        "type": "string"
      },
      "CiStatus": {
        "enum": [
          "running",
          "success",
          "failed"
        ],
        "type": "string"
      },
      "CiSummary": {
        "properties": {
          "requiredGreen": {
            "type": "boolean"
          },
          "runId": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/CiStatus"
          }
        },
        "required": [
          "runId",
          "status",
          "requiredGreen"
        ],
        "type": "object"
      },
      "CommandView": {
        "properties": {
          "appId": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "hrefTemplate": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "requires": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "id",
          "appId",
          "label",
          "requires",
          "hrefTemplate"
        ],
        "type": "object"
      },
      "CommitDetail": {
        "description": "Full commit metadata for a single sha. Distinct from `CommitView` (the\nlist-page row): includes both author and committer timestamps so the UI\ncan show \"authored X / committed Y\" without two requests.",
        "properties": {
          "author": {
            "type": "string"
          },
          "authoredAt": {
            "format": "int64",
            "type": "integer"
          },
          "committedAt": {
            "description": "Committer timestamp. Falls back to `authored_at` when the commit\nheader omits a separate committer line.",
            "format": "int64",
            "type": "integer"
          },
          "committer": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "parents": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "sha": {
            "type": "string"
          },
          "treeSha": {
            "type": "string"
          }
        },
        "required": [
          "sha",
          "treeSha",
          "parents",
          "author",
          "committer",
          "authoredAt",
          "committedAt",
          "message"
        ],
        "type": "object"
      },
      "CommitHit": {
        "properties": {
          "branchId": {
            "type": "string"
          },
          "branchName": {
            "type": "string"
          },
          "match": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "ownerSlug": {
            "type": "string"
          },
          "ownerType": {
            "$ref": "#/components/schemas/OwnerType"
          },
          "repoSlug": {
            "type": "string"
          },
          "sha": {
            "type": "string"
          }
        },
        "required": [
          "ownerType",
          "ownerSlug",
          "repoSlug",
          "branchName",
          "branchId",
          "sha",
          "message",
          "match"
        ],
        "type": "object"
      },
      "CommitView": {
        "properties": {
          "author": {
            "type": "string"
          },
          "authorTime": {
            "format": "int64",
            "type": "integer"
          },
          "committer": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "oid": {
            "type": "string"
          },
          "parents": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "tree": {
            "type": "string"
          }
        },
        "required": [
          "oid",
          "tree",
          "parents",
          "author",
          "committer",
          "authorTime",
          "message"
        ],
        "type": "object"
      },
      "CommitsPage": {
        "properties": {
          "commits": {
            "items": {
              "$ref": "#/components/schemas/CommitView"
            },
            "type": "array"
          },
          "nextBefore": {
            "description": "SHA to pass back as `?before=` to fetch the next page; null at the\nend of history.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "commits"
        ],
        "type": "object"
      },
      "CreateBotCredentialRequest": {
        "additionalProperties": false,
        "properties": {
          "label": {
            "type": "string"
          },
          "lifetimeDays": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "label"
        ],
        "type": "object"
      },
      "CreateBotGrantRequest": {
        "additionalProperties": false,
        "properties": {
          "appCapabilities": {
            "items": {
              "$ref": "#/components/schemas/AppCapabilityGrant"
            },
            "type": "array"
          },
          "authorizingSubjectId": {
            "type": "string"
          },
          "authorizingSubjectKind": {
            "$ref": "#/components/schemas/SubjectKind"
          },
          "corePermissions": {
            "items": {
              "$ref": "#/components/schemas/BotPermission"
            },
            "type": "array"
          },
          "futureRepositoryRule": {
            "$ref": "#/components/schemas/FutureRepositoryRule"
          },
          "repositoryExclusions": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "repositorySnapshot": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "authorizingSubjectKind",
          "authorizingSubjectId",
          "corePermissions",
          "futureRepositoryRule"
        ],
        "type": "object"
      },
      "CreateBotRequest": {
        "additionalProperties": false,
        "properties": {
          "displayName": {
            "type": "string"
          },
          "ownerSubjectId": {
            "type": "string"
          },
          "ownerSubjectKind": {
            "$ref": "#/components/schemas/SubjectKind"
          },
          "purpose": {
            "type": "string"
          }
        },
        "required": [
          "ownerSubjectKind",
          "ownerSubjectId",
          "displayName",
          "purpose"
        ],
        "type": "object"
      },
      "CreateBotSshKeyRequest": {
        "additionalProperties": false,
        "properties": {
          "label": {
            "type": "string"
          },
          "publicKey": {
            "type": "string"
          }
        },
        "required": [
          "publicKey",
          "label"
        ],
        "type": "object"
      },
      "CreateLockRequest": {
        "properties": {
          "path": {
            "type": "string"
          },
          "ref": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/LfsRef"
              }
            ]
          }
        },
        "required": [
          "path"
        ],
        "type": "object"
      },
      "CreateOrgRequest": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "slug"
        ],
        "type": "object"
      },
      "CreatePatRequest": {
        "additionalProperties": false,
        "properties": {
          "expiresAt": {
            "description": "Optional RFC3339 expiry. After this point the token verifies false at\nthe HTTPS git layer (enforced in `services/git-server::https`).",
            "type": [
              "string",
              "null"
            ]
          },
          "label": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "CreateRepoRequest": {
        "additionalProperties": false,
        "properties": {
          "ownerSlug": {
            "type": "string"
          },
          "ownerType": {
            "$ref": "#/components/schemas/OwnerType"
          },
          "repoSlug": {
            "type": "string"
          }
        },
        "required": [
          "ownerType",
          "ownerSlug",
          "repoSlug"
        ],
        "type": "object"
      },
      "Decoration": {
        "oneOf": [
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/BadgeDecoration"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "badge"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/CheckDecoration"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "check"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          },
          {
            "allOf": [
              {
                "$ref": "#/components/schemas/ActionDecoration"
              },
              {
                "properties": {
                  "type": {
                    "enum": [
                      "action"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              }
            ]
          }
        ]
      },
      "DecorationActionInput": {
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "href": {
            "type": "string"
          },
          "icon": {
            "$ref": "#/components/schemas/IconKey"
          },
          "label": {
            "type": "string"
          },
          "priority": {
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "surface": {
            "$ref": "#/components/schemas/ActionSurface"
          },
          "target": {
            "$ref": "#/components/schemas/DecorationTarget"
          }
        },
        "required": [
          "target",
          "surface",
          "label",
          "icon",
          "href"
        ],
        "type": "object"
      },
      "DecorationBadgeInput": {
        "properties": {
          "count": {
            "format": "int64",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "href": {
            "type": "string"
          },
          "icon": {
            "$ref": "#/components/schemas/IconKey"
          },
          "label": {
            "type": "string"
          },
          "target": {
            "$ref": "#/components/schemas/DecorationTarget"
          },
          "tone": {
            "$ref": "#/components/schemas/Tone"
          }
        },
        "required": [
          "target",
          "icon",
          "label",
          "tone",
          "href"
        ],
        "type": "object"
      },
      "DecorationCheckInput": {
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "href": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "required": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "state": {
            "$ref": "#/components/schemas/CheckState"
          },
          "summary": {
            "type": [
              "string",
              "null"
            ]
          },
          "target": {
            "$ref": "#/components/schemas/DecorationTarget"
          }
        },
        "required": [
          "target",
          "name",
          "state"
        ],
        "type": "object"
      },
      "DecorationTarget": {
        "description": "Decoration target — either a repo, a specific branch on a repo, or a\nspecific commit on a repo. `branch_id` is the immutable branch-lifetime\nULID; the mutable ref name is presentation data and never a durable\ndecoration key. Branch IDs and commit `sha`s are mutually exclusive.",
        "oneOf": [
          {
            "properties": {
              "repoId": {
                "type": "string"
              },
              "scope": {
                "enum": [
                  "repo"
                ],
                "type": "string"
              }
            },
            "required": [
              "repoId",
              "scope"
            ],
            "type": "object"
          },
          {
            "properties": {
              "branchId": {
                "type": "string"
              },
              "repoId": {
                "type": "string"
              },
              "scope": {
                "enum": [
                  "branch"
                ],
                "type": "string"
              }
            },
            "required": [
              "repoId",
              "branchId",
              "scope"
            ],
            "type": "object"
          },
          {
            "properties": {
              "repoId": {
                "type": "string"
              },
              "scope": {
                "enum": [
                  "commit"
                ],
                "type": "string"
              },
              "sha": {
                "type": "string"
              }
            },
            "required": [
              "repoId",
              "sha",
              "scope"
            ],
            "type": "object"
          }
        ]
      },
      "DecorationUpsertRequest": {
        "description": "Caller-controlled decoration fields. Ownership, slot identity, and kind are\nbound by the URL and authenticated installation; creation time defaults on\nthe server when omitted. Keeping this distinct from the stored\n[`marketplace_schema::Decoration`] prevents the external contract from\nclaiming server-bound fields are required request input.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/DecorationBadgeInput"
          },
          {
            "$ref": "#/components/schemas/DecorationCheckInput"
          },
          {
            "$ref": "#/components/schemas/DecorationActionInput"
          }
        ]
      },
      "DiffFile": {
        "properties": {
          "additions": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "deletions": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "path": {
            "type": "string"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "path",
          "status",
          "additions",
          "deletions"
        ],
        "type": "object"
      },
      "DiffFileMeta": {
        "description": "File-level metadata for the paginated diff list. Replaces `DiffFile`\nonce Epic-2 sub-task 3 ships the new handler. `additions` /\n`deletions` mirror the existing field semantics; `classification`\nis new and feeds the auto-collapse rules in #238.",
        "properties": {
          "additions": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "classification": {
            "$ref": "#/components/schemas/FileClass"
          },
          "deletions": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "newMode": {
            "type": [
              "string",
              "null"
            ]
          },
          "oldMode": {
            "description": "#1835: octal git file modes (`\"100644\"`, `\"100755\"`, `\"120000\"`)\npresent only when the entry's mode changed — emitted on a\n`mode_changed` entry (chmod, same content) and alongside `modified`\nwhen a content change ALSO flipped the mode. Absent (omitted from\nthe JSON) otherwise, so the common case stays unchanged on the wire.\nLets the SPA render git's \"mode changed 100644 → 100755\" line.",
            "type": [
              "string",
              "null"
            ]
          },
          "path": {
            "type": "string"
          },
          "renameFrom": {
            "description": "#1870: the OLD path on a `renamed` entry — present only when the\nfile is a pure rename (identical oid + mode, moved to a new path).\n`path` is the NEW path; `renameFrom` is where the blob lived before.\nAbsent (omitted from the JSON) otherwise, so the common case stays\nunchanged on the wire. Lets the SPA render git's \"renamed\nold/path → new/path\" line instead of a delete+add pair.",
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "description": "File status — `\"added\" | \"modified\" | \"deleted\" | \"renamed\" |\n\"mode_changed\"`. String not enum so future statuses (`\"copied\"`,\n`\"type_changed\"`) don't break old clients on add; the SPA treats\nunknown statuses as `modified` (see `client/src/lib/types.ts`).",
            "type": "string"
          }
        },
        "required": [
          "path",
          "status",
          "additions",
          "deletions",
          "classification"
        ],
        "type": "object"
      },
      "DiffSummary": {
        "description": "File-level diff summary between two commits. Computed by walking both\ntrees in lockstep — full text diff is a v2 concern.",
        "properties": {
          "additions": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "deletions": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "files": {
            "items": {
              "$ref": "#/components/schemas/DiffFile"
            },
            "type": "array"
          },
          "filesChanged": {
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "filesChanged",
          "additions",
          "deletions",
          "files"
        ],
        "type": "object"
      },
      "EmptyRepoBody": {
        "description": "Body returned alongside the standard browse shape when a repo has no\nrefs (#114). `empty: true` is the marker the frontend keys off; the\nother fields drive the \"push your first commit\" panel.",
        "properties": {
          "defaultBranch": {
            "type": "string"
          },
          "empty": {
            "type": "boolean"
          },
          "remote": {
            "type": "string"
          }
        },
        "required": [
          "empty",
          "defaultBranch",
          "remote"
        ],
        "type": "object"
      },
      "EnrolledResponse": {
        "properties": {
          "addedAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "algorithm": {
            "type": [
              "string",
              "null"
            ]
          },
          "comment": {
            "type": [
              "string",
              "null"
            ]
          },
          "enrolled": {
            "type": "boolean"
          },
          "label": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "enrolled"
        ],
        "type": "object"
      },
      "FileClass": {
        "description": "Classification drives client behavior: lockfiles + generated start\ncollapsed; binary skips diff entirely; text gets the full virtualized\nhunk treatment. Server-derived from path + content sniff (gix's\nis_binary heuristic + a path allowlist for known generated names —\n`Cargo.lock`, `package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`,\n`*.min.js`, `*.min.css`, `*.map`).",
        "enum": [
          "text",
          "binary",
          "generated",
          "lockfile"
        ],
        "type": "string"
      },
      "ForkRequest": {
        "additionalProperties": false,
        "description": "#1708 A3 — fork request body. Both fields optional: `repoSlug`\ndefaults to the parent's name (under the caller's namespace);\n`visibility` defaults to the parent's tier. A supplied `visibility`\nmay only NARROW (never widen) beyond the parent — widening is\nrejected 422 (the alternate-walk would leak the parent's objects to\nprincipals the parent itself hides them from). See the visibility\nsecurity model in #1708.",
        "properties": {
          "repoSlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "visibility": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Visibility"
              }
            ]
          }
        },
        "type": "object"
      },
      "FutureRepositoryRule": {
        "enum": [
          "none",
          "all_owned_by_subject",
          "all_accessible_to_subject"
        ],
        "type": "string"
      },
      "GpgKeyView": {
        "properties": {
          "addedAt": {
            "format": "date-time",
            "type": "string"
          },
          "algorithm": {
            "type": "string"
          },
          "fingerprint": {
            "type": "string"
          },
          "keyId": {
            "type": "string"
          },
          "label": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "fingerprint",
          "keyId",
          "algorithm",
          "addedAt"
        ],
        "type": "object"
      },
      "Hunk": {
        "description": "One unified-diff hunk. Mirrors the on-the-wire shape consumed by\n`services/api/src/handlers/git_browse.rs` per #235's locked contract.\nWhen a hunk exceeds [`HUNK_LINE_CAP`], `lines` is truncated at the cap\nand `truncated` is set so the client renders an elision marker.",
        "properties": {
          "lines": {
            "items": {
              "$ref": "#/components/schemas/HunkLine"
            },
            "type": "array"
          },
          "newLines": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "newNoNewlineAtEof": {
            "description": "#1871 — `true` iff this hunk reaches the END of the HEAD (new) side\nand that side's final line has NO trailing newline. See\n[`Self::old_no_newline_at_eof`].",
            "type": "boolean"
          },
          "newStart": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "oldLines": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "oldNoNewlineAtEof": {
            "description": "#1871 — `true` iff this hunk reaches the END of the BASE (old) side\nand that side's final line has NO trailing newline. Mirrors git's\n`\\ No newline at end of file` marker, which a unified diff prints\nafter the last line of a side that lacks a terminating `\\n`. Set on\nat most one hunk per side (the one containing the file's final line).\nAdditive `serde(default)` false — a doc/response from before #1871\nreads back as \"newline present\", the historical assumption.",
            "type": "boolean"
          },
          "oldStart": {
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "truncated": {
            "description": "`true` iff the hunk had more than [`HUNK_LINE_CAP`] lines and the\ntrailing tail was dropped. Default `false` keeps the wire response\nquiet for the common case.",
            "type": "boolean"
          }
        },
        "required": [
          "oldStart",
          "oldLines",
          "newStart",
          "newLines",
          "lines"
        ],
        "type": "object"
      },
      "HunkLine": {
        "description": "One line inside a hunk. Wire shape per #235's locked contract:\n`{ kind, oldLineno, newLineno, content }` where lineno is 1-indexed and\n`null` for the side this line doesn't appear on (Add → no old; Del → no\nnew). The server computes lineno during the diff walk; the client\nrenders without recomputation.",
        "properties": {
          "content": {
            "description": "Raw line text, including the trailing `\\n` if present in the source.",
            "type": "string"
          },
          "kind": {
            "$ref": "#/components/schemas/HunkLineKind"
          },
          "newLineno": {
            "description": "1-indexed line number on the head side. Set for `Context` and `Add`;\n`None` for `Del`.",
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "oldLineno": {
            "description": "1-indexed line number on the base side. Set for `Context` and `Del`;\n`None` for `Add`.",
            "format": "int32",
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "kind",
          "content"
        ],
        "type": "object"
      },
      "HunkLineKind": {
        "description": "One classification for a hunk-line. Wire shape `\"context\" | \"add\" | \"del\"`,\nmatching `client/src/lib/types.ts::HunkLineKind`. The over-cap case is\nsignalled by `Hunk::truncated`, not a sentinel line — the client renders\nthe elision marker from that flag (#301).",
        "enum": [
          "del",
          "add",
          "context"
        ],
        "type": "string"
      },
      "IconKey": {
        "description": "Closed icon set the SPA knows how to render. Apps pick from this\nlist; arbitrary icon URLs are not allowed (defense-in-depth: render\nhint, not asset).",
        "enum": [
          "bell",
          "bug",
          "check",
          "clock",
          "comment",
          "deploy",
          "doc",
          "flag",
          "issue",
          "lock",
          "pulse",
          "robot",
          "tag",
          "warning"
        ],
        "type": "string"
      },
      "LfsLockOwner": {
        "properties": {
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "LfsLockWire": {
        "properties": {
          "id": {
            "type": "string"
          },
          "locked_at": {
            "format": "date-time",
            "type": "string"
          },
          "owner": {
            "$ref": "#/components/schemas/LfsLockOwner"
          },
          "path": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "path",
          "locked_at",
          "owner"
        ],
        "type": "object"
      },
      "LfsRef": {
        "properties": {
          "name": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "ListLocksResponse": {
        "properties": {
          "locks": {
            "items": {
              "$ref": "#/components/schemas/LfsLockWire"
            },
            "type": "array"
          },
          "next_cursor": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "locks"
        ],
        "type": "object"
      },
      "LockConflictResponse": {
        "properties": {
          "lock": {
            "$ref": "#/components/schemas/LfsLockWire"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "lock",
          "message"
        ],
        "type": "object"
      },
      "LockResponse": {
        "properties": {
          "lock": {
            "$ref": "#/components/schemas/LfsLockWire"
          }
        },
        "required": [
          "lock"
        ],
        "type": "object"
      },
      "MeResponse": {
        "properties": {
          "displayName": {
            "type": "string"
          },
          "pendingDelete": {
            "description": "Audit pass 61 Fn 5 (P2, #1241): surface the deletion-cascade\nstate to the SPA. Pre-fix the user's profile screen showed\nthe normal logged-in state with no signal that the account\nis mid-deletion; a PATCH attempt from a sister tab would\nthen hit `require_user_not_pending_delete` 409 with no UI\nwarning beforehand. SPA renders a banner / disables PATCH\ncontrols when this is true.",
            "type": "boolean"
          },
          "photoUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        },
        "required": [
          "uid",
          "displayName",
          "slug"
        ],
        "type": "object"
      },
      "MemberRow": {
        "properties": {
          "displayName": {
            "description": "#1846 — the member's human display name, resolved from their User doc.\nFalls back to the `uid` when the User doc is missing.",
            "type": "string"
          },
          "role": {
            "$ref": "#/components/schemas/Role"
          },
          "slug": {
            "description": "#1846 — the member's URL handle, resolved from their User doc. Org\nmembers are INVITED by slug, so the display path must speak slugs too\n— otherwise an invited user is unrecognizable (shown as a raw uid).\nFalls back to the `uid` when the User doc is missing (the row still\nrenders something stable rather than dropping the member). Always\nserialized so the client has a single field to render.",
            "type": "string"
          },
          "uid": {
            "type": "string"
          }
        },
        "required": [
          "uid",
          "role",
          "slug",
          "displayName"
        ],
        "type": "object"
      },
      "MergeBody": {
        "additionalProperties": false,
        "properties": {
          "message": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "MergeMeRequest": {
        "additionalProperties": false,
        "properties": {
          "sourceIdToken": {
            "type": "string"
          }
        },
        "required": [
          "sourceIdToken"
        ],
        "type": "object"
      },
      "MergeMeResponse": {
        "properties": {
          "auditId": {
            "type": "string"
          },
          "dstSlug": {
            "type": "string"
          },
          "dstUid": {
            "type": "string"
          },
          "gpgKeysTransferred": {
            "minimum": 0,
            "type": "integer"
          },
          "membershipsTransferred": {
            "minimum": 0,
            "type": "integer"
          },
          "patsTransferred": {
            "minimum": 0,
            "type": "integer"
          },
          "repoMoves": {
            "items": {
              "$ref": "#/components/schemas/MergeRepoMove"
            },
            "type": "array"
          },
          "repoSlugRenames": {
            "minimum": 0,
            "type": "integer"
          },
          "reposTransferred": {
            "minimum": 0,
            "type": "integer"
          },
          "sourceSlugDisposition": {
            "type": "string"
          },
          "srcSlug": {
            "type": "string"
          },
          "srcUid": {
            "type": "string"
          },
          "sshKeysTransferred": {
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "auditId",
          "srcUid",
          "dstUid",
          "srcSlug",
          "dstSlug",
          "reposTransferred",
          "repoSlugRenames",
          "patsTransferred",
          "sshKeysTransferred",
          "gpgKeysTransferred",
          "membershipsTransferred",
          "sourceSlugDisposition",
          "repoMoves"
        ],
        "type": "object"
      },
      "MergeRepoMove": {
        "properties": {
          "fromSlug": {
            "type": "string"
          },
          "repoId": {
            "type": "string"
          },
          "toSlug": {
            "type": "string"
          }
        },
        "required": [
          "repoId",
          "fromSlug",
          "toSlug"
        ],
        "type": "object"
      },
      "MergeResponse": {
        "properties": {
          "branchId": {
            "type": "string"
          },
          "mergedAs": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/BranchState"
          }
        },
        "required": [
          "branchId",
          "state",
          "mergedAs"
        ],
        "type": "object"
      },
      "ObjectError": {
        "description": "An object-level error in a Batch response. Per the spec the HTTP\nenvelope stays 200 and per-object problems surface here with an LFS\nerror code (404 not-found, 422 validation, etc.). The\nno-existence-oracle invariant (#1702 L3) means a download the caller\ncan't authorize returns the SAME `404` shape as a genuinely-absent oid.",
        "properties": {
          "code": {
            "description": "LFS error code (HTTP-status-like: 404, 422, …).",
            "format": "int32",
            "minimum": 0,
            "type": "integer"
          },
          "message": {
            "description": "Human-readable detail. MUST NOT leak existence for an unauthorized\ndownload (use the same message a genuine miss yields).",
            "type": "string"
          }
        },
        "required": [
          "code",
          "message"
        ],
        "type": "object"
      },
      "ObjectId": {
        "description": "One object the client wants to transfer, identified by its content\naddress (`oid` = lowercase-hex sha256) and byte `size`.",
        "properties": {
          "oid": {
            "description": "Lowercase-hex sha256 of the object content (the LFS oid).",
            "type": "string"
          },
          "size": {
            "description": "Declared byte length of the object.",
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "oid",
          "size"
        ],
        "type": "object"
      },
      "Operation": {
        "description": "Which side of a transfer the client is requesting.",
        "enum": [
          "upload",
          "download"
        ],
        "type": "string"
      },
      "OrgDetail": {
        "description": "Detail view returned by `GET /api/orgs/:slug`. Embeds the member list so\nthe SPA org page renders without a second round-trip. Members are sorted\n`admin` first, then by uid for stable rendering.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "members": {
            "items": {
              "$ref": "#/components/schemas/MemberRow"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "requireSignedPush": {
            "type": "boolean"
          },
          "role": {
            "$ref": "#/components/schemas/Role"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "name",
          "role",
          "requireSignedPush",
          "createdAt",
          "members"
        ],
        "type": "object"
      },
      "OrgSummary": {
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "requireSignedPush": {
            "description": "#2123 Lane A: org-wide policy that forces signed-push enforcement for\nevery repo owned by the org.",
            "type": "boolean"
          },
          "role": {
            "$ref": "#/components/schemas/Role"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "slug",
          "name",
          "role",
          "requireSignedPush",
          "createdAt"
        ],
        "type": "object"
      },
      "OwnerType": {
        "description": "Who owns a repo. Stored as a string in Firestore to keep query ergonomics\nsimple.",
        "enum": [
          "user",
          "org"
        ],
        "type": "string"
      },
      "Page_Bot": {
        "properties": {
          "items": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "botId": {
                  "type": "string"
                },
                "createdAt": {
                  "format": "date-time",
                  "type": "string"
                },
                "createdByUid": {
                  "type": "string"
                },
                "displayName": {
                  "type": "string"
                },
                "ownerSubjectId": {
                  "type": "string"
                },
                "ownerSubjectKind": {
                  "$ref": "#/components/schemas/SubjectKind"
                },
                "purpose": {
                  "type": "string"
                },
                "schemaVersion": {
                  "format": "int32",
                  "minimum": 0,
                  "type": "integer"
                },
                "state": {
                  "$ref": "#/components/schemas/BotState"
                },
                "updatedAt": {
                  "format": "date-time",
                  "type": "string"
                },
                "version": {
                  "format": "int64",
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "botId",
                "ownerSubjectKind",
                "ownerSubjectId",
                "displayName",
                "purpose",
                "state",
                "createdByUid",
                "createdAt",
                "updatedAt",
                "version"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "nextCursor": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "Page_BotCredential": {
        "properties": {
          "items": {
            "items": {
              "additionalProperties": false,
              "description": "Revocable metadata for a grant-bound bot access token.\n\nThe serialized JWT is deliberately absent. A presented token is active\nonly when its credential id resolves to this row, its JTI matches, and the\nrow is neither expired nor revoked.",
              "properties": {
                "botId": {
                  "type": "string"
                },
                "createdByUid": {
                  "type": "string"
                },
                "credentialId": {
                  "type": "string"
                },
                "expiresAt": {
                  "format": "date-time",
                  "type": "string"
                },
                "grantId": {
                  "type": "string"
                },
                "issuedAt": {
                  "format": "date-time",
                  "type": "string"
                },
                "jti": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "lastUsedAt": {
                  "format": "date-time",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "revokedAt": {
                  "format": "date-time",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "schemaVersion": {
                  "format": "int32",
                  "minimum": 0,
                  "type": "integer"
                },
                "version": {
                  "format": "int64",
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "credentialId",
                "botId",
                "grantId",
                "jti",
                "label",
                "issuedAt",
                "expiresAt",
                "createdByUid",
                "version"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "nextCursor": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "Page_BotGrant": {
        "properties": {
          "items": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "appCapabilities": {
                  "items": {
                    "$ref": "#/components/schemas/AppCapabilityGrant"
                  },
                  "type": "array"
                },
                "authorizingSubjectId": {
                  "type": "string"
                },
                "authorizingSubjectKind": {
                  "$ref": "#/components/schemas/SubjectKind"
                },
                "botId": {
                  "type": "string"
                },
                "corePermissions": {
                  "items": {
                    "$ref": "#/components/schemas/BotPermission"
                  },
                  "type": "array"
                },
                "createdAt": {
                  "format": "date-time",
                  "type": "string"
                },
                "createdByUid": {
                  "type": "string"
                },
                "futureRepositoryRule": {
                  "$ref": "#/components/schemas/FutureRepositoryRule"
                },
                "grantId": {
                  "type": "string"
                },
                "repositoryExclusions": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "repositorySnapshot": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "schemaVersion": {
                  "format": "int32",
                  "minimum": 0,
                  "type": "integer"
                },
                "state": {
                  "$ref": "#/components/schemas/BotGrantState"
                },
                "updatedAt": {
                  "format": "date-time",
                  "type": "string"
                },
                "version": {
                  "format": "int64",
                  "minimum": 0,
                  "type": "integer"
                }
              },
              "required": [
                "grantId",
                "botId",
                "authorizingSubjectKind",
                "authorizingSubjectId",
                "corePermissions",
                "appCapabilities",
                "repositorySnapshot",
                "futureRepositoryRule",
                "repositoryExclusions",
                "state",
                "createdByUid",
                "createdAt",
                "updatedAt",
                "version"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "nextCursor": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "Page_DiffFileMeta": {
        "description": "Generic paginated response. `next_cursor: None` signals the last\npage; clients stop fetching when they see it.",
        "properties": {
          "items": {
            "items": {
              "description": "File-level metadata for the paginated diff list. Replaces `DiffFile`\nonce Epic-2 sub-task 3 ships the new handler. `additions` /\n`deletions` mirror the existing field semantics; `classification`\nis new and feeds the auto-collapse rules in #238.",
              "properties": {
                "additions": {
                  "format": "int64",
                  "minimum": 0,
                  "type": "integer"
                },
                "classification": {
                  "$ref": "#/components/schemas/FileClass"
                },
                "deletions": {
                  "format": "int64",
                  "minimum": 0,
                  "type": "integer"
                },
                "newMode": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "oldMode": {
                  "description": "#1835: octal git file modes (`\"100644\"`, `\"100755\"`, `\"120000\"`)\npresent only when the entry's mode changed — emitted on a\n`mode_changed` entry (chmod, same content) and alongside `modified`\nwhen a content change ALSO flipped the mode. Absent (omitted from\nthe JSON) otherwise, so the common case stays unchanged on the wire.\nLets the SPA render git's \"mode changed 100644 → 100755\" line.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "path": {
                  "type": "string"
                },
                "renameFrom": {
                  "description": "#1870: the OLD path on a `renamed` entry — present only when the\nfile is a pure rename (identical oid + mode, moved to a new path).\n`path` is the NEW path; `renameFrom` is where the blob lived before.\nAbsent (omitted from the JSON) otherwise, so the common case stays\nunchanged on the wire. Lets the SPA render git's \"renamed\nold/path → new/path\" line instead of a delete+add pair.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "status": {
                  "description": "File status — `\"added\" | \"modified\" | \"deleted\" | \"renamed\" |\n\"mode_changed\"`. String not enum so future statuses (`\"copied\"`,\n`\"type_changed\"`) don't break old clients on add; the SPA treats\nunknown statuses as `modified` (see `client/src/lib/types.ts`).",
                  "type": "string"
                }
              },
              "required": [
                "path",
                "status",
                "additions",
                "deletions",
                "classification"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "nextCursor": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "Page_Hunk": {
        "description": "Generic paginated response. `next_cursor: None` signals the last\npage; clients stop fetching when they see it.",
        "properties": {
          "items": {
            "items": {
              "description": "One unified-diff hunk. Mirrors the on-the-wire shape consumed by\n`services/api/src/handlers/git_browse.rs` per #235's locked contract.\nWhen a hunk exceeds [`HUNK_LINE_CAP`], `lines` is truncated at the cap\nand `truncated` is set so the client renders an elision marker.",
              "properties": {
                "lines": {
                  "items": {
                    "$ref": "#/components/schemas/HunkLine"
                  },
                  "type": "array"
                },
                "newLines": {
                  "format": "int32",
                  "minimum": 0,
                  "type": "integer"
                },
                "newNoNewlineAtEof": {
                  "description": "#1871 — `true` iff this hunk reaches the END of the HEAD (new) side\nand that side's final line has NO trailing newline. See\n[`Self::old_no_newline_at_eof`].",
                  "type": "boolean"
                },
                "newStart": {
                  "format": "int32",
                  "minimum": 0,
                  "type": "integer"
                },
                "oldLines": {
                  "format": "int32",
                  "minimum": 0,
                  "type": "integer"
                },
                "oldNoNewlineAtEof": {
                  "description": "#1871 — `true` iff this hunk reaches the END of the BASE (old) side\nand that side's final line has NO trailing newline. Mirrors git's\n`\\ No newline at end of file` marker, which a unified diff prints\nafter the last line of a side that lacks a terminating `\\n`. Set on\nat most one hunk per side (the one containing the file's final line).\nAdditive `serde(default)` false — a doc/response from before #1871\nreads back as \"newline present\", the historical assumption.",
                  "type": "boolean"
                },
                "oldStart": {
                  "format": "int32",
                  "minimum": 0,
                  "type": "integer"
                },
                "truncated": {
                  "description": "`true` iff the hunk had more than [`HUNK_LINE_CAP`] lines and the\ntrailing tail was dropped. Default `false` keeps the wire response\nquiet for the common case.",
                  "type": "boolean"
                }
              },
              "required": [
                "oldStart",
                "oldLines",
                "newStart",
                "newLines",
                "lines"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "nextCursor": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "items"
        ],
        "type": "object"
      },
      "PatCreated": {
        "description": "View returned on POST. The `secret` field is the only place plaintext\never appears — the client must surface it to the user once and discard.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "type": "string"
          },
          "label": {
            "type": [
              "string",
              "null"
            ]
          },
          "secret": {
            "description": "Plaintext `fpt_…` secret. Returned exactly once, never re-derivable.",
            "type": "string"
          }
        },
        "required": [
          "id",
          "createdAt",
          "secret"
        ],
        "type": "object"
      },
      "PatView": {
        "description": "View returned on GET / list. No secret, no hash.",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "expiresAt": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "type": "string"
          },
          "label": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "createdAt"
        ],
        "type": "object"
      },
      "PatchBotRequest": {
        "additionalProperties": false,
        "properties": {
          "displayName": {
            "type": [
              "string",
              "null"
            ]
          },
          "expectedVersion": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          },
          "purpose": {
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/BotState"
              }
            ]
          }
        },
        "required": [
          "expectedVersion"
        ],
        "type": "object"
      },
      "PatchRepoSettingsRequest": {
        "additionalProperties": false,
        "description": "PATCH body — empty today (#1458 removed the only field). An\nentirely-empty body returns 400 (the caller is asking for a no-op\nmerge, which signals a bug); the stub-flexible shape matters once a\nfield lands.\n\n#527: `deny_unknown_fields` so a typo returns 400 explicitly rather\nthan deserializing to all-None and silently dropping the unknown\nkey.",
        "properties": {
          "requireSignedPush": {
            "description": "#2081 (WS4.4 #1922): toggle receive-pack signed-push enforcement.\nPre-fix this struct was empty (#1458), so `requireSignedPush` — though\nGET-exposed and git-server-enforced — had no write path and was\npermanently `false`.",
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "PushRow": {
        "properties": {
          "acceptedAt": {
            "format": "date-time",
            "type": "string"
          },
          "byDisplayName": {
            "description": "#1856 — the pusher's human display name; falls back to `by_uid`.",
            "type": "string"
          },
          "bySlug": {
            "description": "#1856 — the pusher's URL handle, resolved from their User doc so the\nSPA renders a human-readable actor instead of the raw Firebase uid.\nFalls back to `by_uid` when the User doc is missing.",
            "type": "string"
          },
          "byUid": {
            "type": "string"
          },
          "pushOptions": {
            "description": "WS4.2 #1920 — the `git push -o key=val` options the client sent, in\nwire order. Empty (and elided) for a push that sent none. gitdown does\nnot interpret them yet; surfaced here so the SPA / API consumers can\nsee what options accompanied a push. Closes the e2e: `git push -o\nkey=val` round-trips to `GET /pushes`.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "pushUlid": {
            "type": "string"
          },
          "refUpdates": {
            "description": "#1866 (C6): serialized straight from the receipt's `Vec<schema::RefUpdate>`.\nThe former local `RefUpdateRow` mirror was a byte-identical serialize-only\nprojection (camelCase, `skip_serializing_if` on the oids) — collapsed onto\nthe schema type so there is one wire-shape source of truth.",
            "items": {
              "$ref": "#/components/schemas/RefUpdate"
            },
            "type": "array"
          }
        },
        "required": [
          "pushUlid",
          "byUid",
          "bySlug",
          "byDisplayName",
          "refUpdates",
          "acceptedAt"
        ],
        "type": "object"
      },
      "QueueRow": {
        "properties": {
          "baseSha": {
            "type": "string"
          },
          "branchId": {
            "type": "string"
          },
          "branchName": {
            "type": "string"
          },
          "headSha": {
            "type": "string"
          },
          "ownerDisplayName": {
            "description": "#2075 — the branch author's human display name (resolved from the\nUser doc), so the queue shows a name not the raw Firebase uid.\nMirrors `BranchDetail.owner_display_name` (#1856); falls back to\n`owner_uid` when the User doc is missing.",
            "type": "string"
          },
          "ownerUid": {
            "type": "string"
          },
          "repoOwnerSlug": {
            "type": "string"
          },
          "repoOwnerType": {
            "$ref": "#/components/schemas/OwnerType"
          },
          "repoSlug": {
            "type": "string"
          },
          "state": {
            "$ref": "#/components/schemas/BranchState"
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "repoOwnerType",
          "repoOwnerSlug",
          "repoSlug",
          "branchName",
          "branchId",
          "state",
          "headSha",
          "baseSha",
          "ownerUid",
          "ownerDisplayName",
          "updatedAt"
        ],
        "type": "object"
      },
      "RefUpdate": {
        "description": "Single ref movement within a [`PushReceipt`]. `old_oid` is `None`\nfor a create; `new_oid` is `None` for a delete.",
        "properties": {
          "newOid": {
            "type": [
              "string",
              "null"
            ]
          },
          "oldOid": {
            "type": [
              "string",
              "null"
            ]
          },
          "refName": {
            "type": "string"
          }
        },
        "required": [
          "refName"
        ],
        "type": "object"
      },
      "ReflogRow": {
        "properties": {
          "at": {
            "format": "date-time",
            "type": "string"
          },
          "byDisplayName": {
            "description": "#1856 — the actor's human display name; falls back to `by_uid`.",
            "type": "string"
          },
          "bySlug": {
            "description": "#1856 — the actor's URL handle, resolved from their User doc so the SPA\nrenders a human-readable actor instead of the raw Firebase uid. Falls\nback to `by_uid` when the User doc is missing.",
            "type": "string"
          },
          "byUid": {
            "type": "string"
          },
          "newOid": {
            "type": [
              "string",
              "null"
            ]
          },
          "oldOid": {
            "type": [
              "string",
              "null"
            ]
          },
          "pushUlid": {
            "type": "string"
          },
          "refName": {
            "type": "string"
          }
        },
        "required": [
          "refName",
          "byUid",
          "bySlug",
          "byDisplayName",
          "pushUlid",
          "at"
        ],
        "type": "object"
      },
      "RenameRepoRequest": {
        "additionalProperties": false,
        "properties": {
          "repoSlug": {
            "type": "string"
          }
        },
        "required": [
          "repoSlug"
        ],
        "type": "object"
      },
      "RepoHit": {
        "properties": {
          "match": {
            "description": "Which field matched. Always `\"name\"` today; reserved for future\ndescription/topic matching.",
            "type": "string"
          },
          "ownerSlug": {
            "type": "string"
          },
          "ownerType": {
            "$ref": "#/components/schemas/OwnerType"
          },
          "repoSlug": {
            "type": "string"
          }
        },
        "required": [
          "ownerType",
          "ownerSlug",
          "repoSlug",
          "match"
        ],
        "type": "object"
      },
      "RepoSettingsView": {
        "description": "Wire shape returned on every read. Mirrors `schema::RepoSettings`.\n\n#1960: carries `requireSignedPush` — git-server reads this on the receive-pack\npath (`ApiInternal::require_signed_push`) to gate signed pushes. The field is\nalways serialized (default `false`) so the off-policy doc still reads cleanly\non the push path; the user-facing GET surfaces it too (additive, harmless).",
        "properties": {
          "requireSignedPush": {
            "type": "boolean"
          }
        },
        "required": [
          "requireSignedPush"
        ],
        "type": "object"
      },
      "RepoSummary": {
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "defaultBranch": {
            "type": "string"
          },
          "ownerSlug": {
            "type": "string"
          },
          "ownerType": {
            "$ref": "#/components/schemas/OwnerType"
          },
          "repoId": {
            "description": "Immutable repository identity used by cross-service integrations and\nevery repository-scoped persistence join. Slugs remain display and\nrouting aliases; callers must use this ULID for durable references.\nThe v1 schema keeps the new field optional for wire compatibility;\nevery current constructor populates it and Chat rejects its absence.",
            "type": "string"
          },
          "repoSlug": {
            "type": "string"
          }
        },
        "required": [
          "ownerType",
          "ownerSlug",
          "repoSlug",
          "defaultBranch",
          "createdAt"
        ],
        "type": "object"
      },
      "ResponseObject": {
        "description": "One object in the Batch response: its identity, plus EITHER the signed\n`actions` it can perform OR an `error`. Exactly one of the two is set.",
        "properties": {
          "actions": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Actions"
              }
            ]
          },
          "error": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ObjectError"
              }
            ]
          },
          "oid": {
            "type": "string"
          },
          "size": {
            "format": "int64",
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "oid",
          "size"
        ],
        "type": "object"
      },
      "ReviewerBody": {
        "additionalProperties": false,
        "properties": {
          "reviewerUid": {
            "type": "string"
          }
        },
        "required": [
          "reviewerUid"
        ],
        "type": "object"
      },
      "Role": {
        "description": "A user's role within an org. Stored at `memberships/{orgId}/{uid}`.",
        "enum": [
          "admin",
          "member"
        ],
        "type": "string"
      },
      "Scope": {
        "enum": [
          "repo:read",
          "repo:write",
          "repo:create",
          "repo:delete",
          "branch:read",
          "branch:write",
          "branch:transition",
          "branch:merge",
          "ci:read",
          "ci:write",
          "ssh-key:read",
          "pat:read",
          "bot:read",
          "bot:write",
          "org:read",
          "org:members:read",
          "org:members:write",
          "event:subscribe",
          "decoration:write",
          "audit:read",
          "operator:review"
        ],
        "type": "string"
      },
      "SearchResponse": {
        "properties": {
          "branches": {
            "items": {
              "$ref": "#/components/schemas/BranchHit"
            },
            "type": "array"
          },
          "commits": {
            "items": {
              "$ref": "#/components/schemas/CommitHit"
            },
            "type": "array"
          },
          "repos": {
            "items": {
              "$ref": "#/components/schemas/RepoHit"
            },
            "type": "array"
          }
        },
        "required": [
          "repos",
          "branches",
          "commits"
        ],
        "type": "object"
      },
      "SshKeyView": {
        "properties": {
          "addedAt": {
            "format": "date-time",
            "type": "string"
          },
          "algorithm": {
            "type": "string"
          },
          "comment": {
            "type": "string"
          },
          "fingerprint": {
            "type": "string"
          },
          "label": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "fingerprint",
          "algorithm",
          "comment",
          "addedAt"
        ],
        "type": "object"
      },
      "StateChangeResponse": {
        "properties": {
          "branchId": {
            "type": "string"
          },
          "reviewerUid": {
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "$ref": "#/components/schemas/BranchState"
          }
        },
        "required": [
          "branchId",
          "state"
        ],
        "type": "object"
      },
      "SubjectKind": {
        "enum": [
          "user",
          "org"
        ],
        "type": "string"
      },
      "Tone": {
        "enum": [
          "ok",
          "warn",
          "error",
          "info"
        ],
        "type": "string"
      },
      "TreeEntryView": {
        "properties": {
          "kind": {
            "description": "`tree | blob | symlink | submodule`. Lets the client pick an icon\nwithout having to know git's mode-bit encoding.",
            "type": "string"
          },
          "mode": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "oid": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "oid",
          "mode",
          "kind"
        ],
        "type": "object"
      },
      "TreeView": {
        "properties": {
          "entries": {
            "items": {
              "$ref": "#/components/schemas/TreeEntryView"
            },
            "type": "array"
          },
          "nextCursor": {
            "description": "Opaque cursor for the next page; null when this is the last\npage. Round-trip through `?cursor=` per #239 — clients\nshouldn't parse the JSON inside.",
            "type": [
              "string",
              "null"
            ]
          },
          "oid": {
            "type": "string"
          },
          "path": {
            "type": "string"
          }
        },
        "required": [
          "oid",
          "path",
          "entries"
        ],
        "type": "object"
      },
      "UnlockRequest": {
        "properties": {
          "force": {
            "type": "boolean"
          },
          "ref": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/LfsRef"
              }
            ]
          }
        },
        "type": "object"
      },
      "UpdateMeRequest": {
        "additionalProperties": false,
        "description": "PATCH /api/me request body. Only display_name and slug are\nuser-settable; `photoUrl` is derived from the Firebase JWT `picture`\nclaim on each get_me and cannot be PATCHed (a `photoUrl` field on\nthe request body is REJECTED via deny_unknown_fields so the SPA\ngets a 400 instead of a silent-success drop that pre-fix returned\nthe stale photo_url back).\n\n#1175/#v-1: pre-fix this struct lacked deny_unknown_fields AND\nsilently dropped any field outside (display_name, slug). A SPA\npatch of `{\"photoUrl\": \"...\"}` deserialized to all-None, the\nhandler treated it as no-op, audit/emit fired \"user.update\", and\nthe response carried the OLD photoUrl — the caller couldn't tell\ntheir PATCH was ignored. deny_unknown_fields now fail-CLOSED on\nthe typo class.",
        "properties": {
          "displayName": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "UpdateOrgRequest": {
        "additionalProperties": false,
        "description": "PATCH /api/orgs/:slug request body. `slug` renames the org (#2097);\n`requireSignedPush` toggles the org-wide signed-push policy (#2123).\n`name` editing is a separate surface. deny_unknown_fields fails closed on a\ntypo'd key (400, not a silent drop) — mirrors UpdateMeRequest.",
        "properties": {
          "requireSignedPush": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "type": "object"
      },
      "UpdateRoleRequest": {
        "additionalProperties": false,
        "properties": {
          "role": {
            "$ref": "#/components/schemas/Role"
          }
        },
        "required": [
          "role"
        ],
        "type": "object"
      },
      "VerifyLocksRequest": {
        "properties": {
          "cursor": {
            "type": [
              "string",
              "null"
            ]
          },
          "limit": {
            "minimum": 0,
            "type": [
              "integer",
              "null"
            ]
          },
          "ref": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/LfsRef"
              }
            ]
          }
        },
        "type": "object"
      },
      "VerifyLocksResponse": {
        "properties": {
          "next_cursor": {
            "type": [
              "string",
              "null"
            ]
          },
          "ours": {
            "items": {
              "$ref": "#/components/schemas/LfsLockWire"
            },
            "type": "array"
          },
          "theirs": {
            "items": {
              "$ref": "#/components/schemas/LfsLockWire"
            },
            "type": "array"
          }
        },
        "required": [
          "ours",
          "theirs"
        ],
        "type": "object"
      },
      "Visibility": {
        "description": "Repo discoverability classifier (#1679 Final-form storage epic #1678).\n`internal` is the org-scoped middle tier (visible to members, hidden\nfrom non-members). Lowercase wire-format matches the legacy enums.",
        "enum": [
          "public",
          "internal",
          "private"
        ],
        "type": "string"
      },
      "WaitlistRequest": {
        "properties": {
          "email": {
            "type": "string"
          },
          "website": {
            "description": "Honeypot — bots autofill any visible-looking field. The lander\nrenders this as a hidden input; humans leave it empty.",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "email"
        ],
        "type": "object"
      },
      "WaitlistResponse": {
        "properties": {
          "ok": {
            "type": "boolean"
          }
        },
        "required": [
          "ok"
        ],
        "type": "object"
      }
    },
    "securitySchemes": {
      "appBearer": {
        "bearerFormat": "Gitdown marketplace app JWT",
        "description": "Installation-bound marketplace app identity.",
        "scheme": "bearer",
        "type": "http"
      },
      "botBearer": {
        "bearerFormat": "Gitdown BOT-PAT",
        "description": "Bot identity correlated to its owning human and grants. Operations remain denied unless their bot permission mapping explicitly enables them.",
        "scheme": "bearer",
        "type": "http"
      },
      "firebaseBearer": {
        "bearerFormat": "Firebase ID token",
        "description": "Human user identity.",
        "scheme": "bearer",
        "type": "http"
      },
      "marketplaceOAuthBearer": {
        "description": "Short-lived human-delegated marketplace access token bound to the core API resource. Only explicitly mapped operations accept it.",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://dev.gitdown.io/oauth/authorize",
            "scopes": {
              "bot:read": "Read bot administration resources for the delegated subject.",
              "bot:write": "Mutate bot administration resources for the delegated subject.",
              "branch:read": "List branches visible to the effective human.",
              "repo:read": "Discover repositories visible to the effective human."
            }
          }
        },
        "type": "oauth2"
      }
    }
  },
  "info": {
    "description": "Generated contract for the external core Gitdown HTTP API. Internal callbacks and operator routes are excluded by construction. Bot bearer identity is defined here, while operation authorization remains denied until the permission mapping contract lands.",
    "title": "Gitdown Core External API",
    "version": "1.0.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/apps/{app_id}/decorations/{kind}/{key}": {
      "delete": {
        "operationId": "deleteApiAppsAppIdDecorationsKindKey",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "appBearer": [
              "decoration:write"
            ]
          }
        ],
        "summary": "delete /api/apps/{app_id}/decorations/{kind}/{key}",
        "tags": [
          "apps"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "marketplace-app",
        "x-gitdown-wire-schema": "typed"
      },
      "put": {
        "operationId": "putApiAppsAppIdDecorationsKindKey",
        "parameters": [
          {
            "in": "path",
            "name": "app_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "kind",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DecorationUpsertRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "appBearer": [
              "decoration:write"
            ]
          }
        ],
        "summary": "put /api/apps/{app_id}/decorations/{kind}/{key}",
        "tags": [
          "apps"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "marketplace-app",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/audit": {
      "get": {
        "operationId": "getApiAudit",
        "parameters": [
          {
            "description": "Filter to entries whose target contains this substring. The\nstore does substring matching today; per #99 plan, this becomes\na typed `target_repo_id`/`target_branch_id` filter once the\naudit schema gains structured target columns.",
            "in": "query",
            "name": "repoId",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "description": "Filter to a specific actor id. The actor's KIND is implicit\nfrom the caller's principal: User caller filters User-actor\nrows; App caller filters App-actor rows (and is hard-locked\nto its own app_id per #549). To filter cross-kind, use the\nscope-appropriate principal (e.g. an App with audit:read,\nonce introduced).",
            "in": "query",
            "name": "actor",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "description": "Page size, capped at 500.",
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AuditLogEntry"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "appBearer": []
          }
        ],
        "summary": "get /api/audit",
        "tags": [
          "audit"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-marketplace-app",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/bots": {
      "get": {
        "operationId": "getApiBots",
        "parameters": [
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_Bot"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "appBearer": [
              "bot:read"
            ]
          },
          {
            "marketplaceOAuthBearer": [
              "bot:read"
            ]
          }
        ],
        "summary": "get /api/bots",
        "tags": [
          "bots"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": "bot:read",
        "x-gitdown-principal-boundary": "human-user-or-marketplace-app-or-delegated-human",
        "x-gitdown-wire-schema": "typed"
      },
      "post": {
        "operationId": "postApiBots",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBotRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Bot"
                }
              }
            },
            "description": "Successful response"
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Bot"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "appBearer": [
              "bot:write"
            ]
          },
          {
            "marketplaceOAuthBearer": [
              "bot:write"
            ]
          }
        ],
        "summary": "post /api/bots",
        "tags": [
          "bots"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": "bot:write",
        "x-gitdown-principal-boundary": "human-user-or-marketplace-app-or-delegated-human",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/bots/{bot_id}": {
      "get": {
        "operationId": "getApiBotsBotId",
        "parameters": [
          {
            "in": "path",
            "name": "bot_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Bot"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "appBearer": [
              "bot:read"
            ]
          },
          {
            "marketplaceOAuthBearer": [
              "bot:read"
            ]
          }
        ],
        "summary": "get /api/bots/{bot_id}",
        "tags": [
          "bots"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": "bot:read",
        "x-gitdown-principal-boundary": "human-user-or-marketplace-app-or-delegated-human",
        "x-gitdown-wire-schema": "typed"
      },
      "patch": {
        "operationId": "patchApiBotsBotId",
        "parameters": [
          {
            "in": "path",
            "name": "bot_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchBotRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Bot"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "appBearer": [
              "bot:write"
            ]
          },
          {
            "marketplaceOAuthBearer": [
              "bot:write"
            ]
          }
        ],
        "summary": "patch /api/bots/{bot_id}",
        "tags": [
          "bots"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": "bot:write",
        "x-gitdown-principal-boundary": "human-user-or-marketplace-app-or-delegated-human",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/bots/{bot_id}/credentials": {
      "get": {
        "operationId": "getApiBotsBotIdCredentials",
        "parameters": [
          {
            "in": "path",
            "name": "bot_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_BotCredential"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "appBearer": [
              "bot:read"
            ]
          },
          {
            "marketplaceOAuthBearer": [
              "bot:read"
            ]
          }
        ],
        "summary": "get /api/bots/{bot_id}/credentials",
        "tags": [
          "bots"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": "bot:read",
        "x-gitdown-principal-boundary": "human-user-or-marketplace-app-or-delegated-human",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/bots/{bot_id}/credentials/{credential_id}/revoke": {
      "post": {
        "operationId": "postApiBotsBotIdCredentialsCredentialIdRevoke",
        "parameters": [
          {
            "in": "path",
            "name": "bot_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "credential_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BotCredential"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "appBearer": [
              "bot:write"
            ]
          },
          {
            "marketplaceOAuthBearer": [
              "bot:write"
            ]
          }
        ],
        "summary": "post /api/bots/{bot_id}/credentials/{credential_id}/revoke",
        "tags": [
          "bots"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": "bot:write",
        "x-gitdown-principal-boundary": "human-user-or-marketplace-app-or-delegated-human",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/bots/{bot_id}/grants": {
      "get": {
        "operationId": "getApiBotsBotIdGrants",
        "parameters": [
          {
            "in": "path",
            "name": "bot_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_BotGrant"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "appBearer": [
              "bot:read"
            ]
          },
          {
            "marketplaceOAuthBearer": [
              "bot:read"
            ]
          }
        ],
        "summary": "get /api/bots/{bot_id}/grants",
        "tags": [
          "bots"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": "bot:read",
        "x-gitdown-principal-boundary": "human-user-or-marketplace-app-or-delegated-human",
        "x-gitdown-wire-schema": "typed"
      },
      "post": {
        "operationId": "postApiBotsBotIdGrants",
        "parameters": [
          {
            "in": "path",
            "name": "bot_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBotGrantRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BotGrant"
                }
              }
            },
            "description": "Successful response"
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BotGrant"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "appBearer": [
              "bot:write"
            ]
          },
          {
            "marketplaceOAuthBearer": [
              "bot:write"
            ]
          }
        ],
        "summary": "post /api/bots/{bot_id}/grants",
        "tags": [
          "bots"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": "bot:write",
        "x-gitdown-principal-boundary": "human-user-or-marketplace-app-or-delegated-human",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/bots/{bot_id}/grants/{grant_id}": {
      "get": {
        "operationId": "getApiBotsBotIdGrantsGrantId",
        "parameters": [
          {
            "in": "path",
            "name": "bot_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "grant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BotGrant"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "appBearer": [
              "bot:read"
            ]
          },
          {
            "marketplaceOAuthBearer": [
              "bot:read"
            ]
          }
        ],
        "summary": "get /api/bots/{bot_id}/grants/{grant_id}",
        "tags": [
          "bots"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": "bot:read",
        "x-gitdown-principal-boundary": "human-user-or-marketplace-app-or-delegated-human",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/bots/{bot_id}/grants/{grant_id}/credentials": {
      "post": {
        "operationId": "postApiBotsBotIdGrantsGrantIdCredentials",
        "parameters": [
          {
            "in": "path",
            "name": "bot_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "grant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBotCredentialRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BotCredentialMintResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BotCredentialMintResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "appBearer": [
              "bot:write"
            ]
          },
          {
            "marketplaceOAuthBearer": [
              "bot:write"
            ]
          }
        ],
        "summary": "post /api/bots/{bot_id}/grants/{grant_id}/credentials",
        "tags": [
          "bots"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": "bot:write",
        "x-gitdown-principal-boundary": "human-user-or-marketplace-app-or-delegated-human",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/bots/{bot_id}/grants/{grant_id}/revoke": {
      "post": {
        "operationId": "postApiBotsBotIdGrantsGrantIdRevoke",
        "parameters": [
          {
            "in": "path",
            "name": "bot_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "grant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BotGrant"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "appBearer": [
              "bot:write"
            ]
          },
          {
            "marketplaceOAuthBearer": [
              "bot:write"
            ]
          }
        ],
        "summary": "post /api/bots/{bot_id}/grants/{grant_id}/revoke",
        "tags": [
          "bots"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": "bot:write",
        "x-gitdown-principal-boundary": "human-user-or-marketplace-app-or-delegated-human",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/bots/{bot_id}/grants/{grant_id}/ssh-keys": {
      "post": {
        "operationId": "postApiBotsBotIdGrantsGrantIdSshKeys",
        "parameters": [
          {
            "in": "path",
            "name": "bot_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "grant_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBotSshKeyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BotSshKey"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "appBearer": [
              "bot:write"
            ]
          },
          {
            "marketplaceOAuthBearer": [
              "bot:write"
            ]
          }
        ],
        "summary": "post /api/bots/{bot_id}/grants/{grant_id}/ssh-keys",
        "tags": [
          "bots"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": "bot:write",
        "x-gitdown-principal-boundary": "human-user-or-marketplace-app-or-delegated-human",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/bots/{bot_id}/ssh-keys": {
      "get": {
        "operationId": "getApiBotsBotIdSshKeys",
        "parameters": [
          {
            "in": "path",
            "name": "bot_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/BotSshKey"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "appBearer": [
              "bot:read"
            ]
          },
          {
            "marketplaceOAuthBearer": [
              "bot:read"
            ]
          }
        ],
        "summary": "get /api/bots/{bot_id}/ssh-keys",
        "tags": [
          "bots"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": "bot:read",
        "x-gitdown-principal-boundary": "human-user-or-marketplace-app-or-delegated-human",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/bots/{bot_id}/ssh-keys/{key_id}": {
      "delete": {
        "operationId": "deleteApiBotsBotIdSshKeysKeyId",
        "parameters": [
          {
            "in": "path",
            "name": "bot_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "key_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BotSshKey"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "appBearer": [
              "bot:write"
            ]
          },
          {
            "marketplaceOAuthBearer": [
              "bot:write"
            ]
          }
        ],
        "summary": "delete /api/bots/{bot_id}/ssh-keys/{key_id}",
        "tags": [
          "bots"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": "bot:write",
        "x-gitdown-principal-boundary": "human-user-or-marketplace-app-or-delegated-human",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/gpg-keys": {
      "get": {
        "operationId": "getApiGpgKeys",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/GpgKeyView"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "get /api/gpg-keys",
        "tags": [
          "gpg-keys"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      },
      "post": {
        "operationId": "postApiGpgKeys",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddGpgKeyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GpgKeyView"
                }
              }
            },
            "description": "Successful response"
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GpgKeyView"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "post /api/gpg-keys",
        "tags": [
          "gpg-keys"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/gpg-keys/{fingerprint}": {
      "delete": {
        "operationId": "deleteApiGpgKeysFingerprint",
        "parameters": [
          {
            "in": "path",
            "name": "fingerprint",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "delete /api/gpg-keys/{fingerprint}",
        "tags": [
          "gpg-keys"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/healthz": {
      "get": {
        "operationId": "getApiHealthz",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "summary": "get /api/healthz",
        "tags": [
          "healthz"
        ],
        "x-gitdown-bot-access": "public",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "public",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/me": {
      "delete": {
        "operationId": "deleteApiMe",
        "parameters": [],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "delete /api/me",
        "tags": [
          "me"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      },
      "get": {
        "operationId": "getApiMe",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "get /api/me",
        "tags": [
          "me"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      },
      "patch": {
        "operationId": "patchApiMe",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MeResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "patch /api/me",
        "tags": [
          "me"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/me/commands": {
      "get": {
        "operationId": "getApiMeCommands",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/CommandView"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "get /api/me/commands",
        "tags": [
          "me"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/me/merge": {
      "post": {
        "operationId": "postApiMeMerge",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MergeMeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MergeMeResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "post /api/me/merge",
        "tags": [
          "me"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/me/queue": {
      "get": {
        "operationId": "getApiMeQueue",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/QueueRow"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "get /api/me/queue",
        "tags": [
          "me"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/me/repos": {
      "get": {
        "operationId": "getApiMeRepos",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/RepoSummary"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "marketplaceOAuthBearer": [
              "repo:read"
            ]
          }
        ],
        "summary": "get /api/me/repos",
        "tags": [
          "me"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": "repo:read",
        "x-gitdown-principal-boundary": "human-user-or-delegated-human",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}": {
      "delete": {
        "operationId": "deleteApiOOrgSlugRRepoSlug",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "delete /api/o/{org_slug}/r/{repo_slug}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      },
      "get": {
        "operationId": "getApiOOrgSlugRRepoSlug",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RepoSummary"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/o/{org_slug}/r/{repo_slug}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      },
      "patch": {
        "operationId": "patchApiOOrgSlugRRepoSlug",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RenameRepoRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RepoSummary"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "patch /api/o/{org_slug}/r/{repo_slug}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/blob-bytes/{ref}/{path}": {
      "get": {
        "operationId": "getApiOOrgSlugRRepoSlugBlobBytesRefPath",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ref",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/octet-stream": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/o/{org_slug}/r/{repo_slug}/blob-bytes/{ref}/{path}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/blob/{ref}/{path}": {
      "get": {
        "operationId": "getApiOOrgSlugRRepoSlugBlobRefPath",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ref",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "`<start>-<end>` 1-indexed line range (`5-100` → lines 5..=100).\nOut-of-range end is clamped to EOF; start past EOF returns empty.",
            "in": "query",
            "name": "range",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlobView"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/o/{org_slug}/r/{repo_slug}/blob/{ref}/{path}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/branch-actions/abandon/{name}": {
      "post": {
        "operationId": "postApiOOrgSlugRRepoSlugBranchActionsAbandonName",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StateChangeResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "branch:update"
            ]
          }
        ],
        "summary": "post /api/o/{org_slug}/r/{repo_slug}/branch-actions/abandon/{name}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "branch:update"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/branch-actions/merge/{name}": {
      "post": {
        "operationId": "postApiOOrgSlugRRepoSlugBranchActionsMergeName",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MergeBody"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MergeResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "branch:merge"
            ]
          }
        ],
        "summary": "post /api/o/{org_slug}/r/{repo_slug}/branch-actions/merge/{name}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "branch:merge"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/branch-actions/ready/{name}": {
      "post": {
        "operationId": "postApiOOrgSlugRRepoSlugBranchActionsReadyName",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StateChangeResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "branch:update"
            ]
          }
        ],
        "summary": "post /api/o/{org_slug}/r/{repo_slug}/branch-actions/ready/{name}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "branch:update"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/branch-actions/reviewer/{name}": {
      "post": {
        "operationId": "postApiOOrgSlugRRepoSlugBranchActionsReviewerName",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewerBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StateChangeResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "branch:update"
            ]
          }
        ],
        "summary": "post /api/o/{org_slug}/r/{repo_slug}/branch-actions/reviewer/{name}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "branch:update"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/branches": {
      "get": {
        "operationId": "getApiOOrgSlugRRepoSlugBranches",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by state. Default: no filter (every state) — #1795 flipped\nthis from `ready` so freshly-pushed Draft branches are visible by\ndefault. Pass `?state=ready` for the human-review subset, or any\nother `BranchState` value to filter; `?state=all` is the explicit\nno-filter synonym.",
            "in": "query",
            "name": "state",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/BranchSummary"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "marketplaceOAuthBearer": [
              "branch:read"
            ]
          },
          {
            "botBearer": [
              "branch:read"
            ]
          }
        ],
        "summary": "get /api/o/{org_slug}/r/{repo_slug}/branches",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "branch:read"
        ],
        "x-gitdown-marketplace-oauth-scope": "branch:read",
        "x-gitdown-principal-boundary": "human-user-or-bot-or-delegated-human",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/branches/{name}": {
      "get": {
        "operationId": "getApiOOrgSlugRRepoSlugBranchesName",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BranchDetail"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "branch:read"
            ]
          }
        ],
        "summary": "get /api/o/{org_slug}/r/{repo_slug}/branches/{name}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "branch:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/commit/{sha}": {
      "get": {
        "operationId": "getApiOOrgSlugRRepoSlugCommitSha",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "sha",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommitDetail"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/o/{org_slug}/r/{repo_slug}/commit/{sha}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/commit/{sha}/diff": {
      "get": {
        "operationId": "getApiOOrgSlugRRepoSlugCommitShaDiff",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "sha",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "**Removed (#237).** `?include=patch` used to switch per-file\nunified-diff text on — clients now use the paginated\n`/commits/{ref}/diff/hunks/{*path}` endpoint per #235's contract.\nKept as a captured field so the handler can return a typed 400\nwhen a client passes it; rejecting unknown query params silently\nwould leave the legacy clients getting empty diffs.",
            "in": "query",
            "name": "include",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiffSummary"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/o/{org_slug}/r/{repo_slug}/commit/{sha}/diff",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/commits/{ref_str}/diff/files": {
      "get": {
        "operationId": "getApiOOrgSlugRRepoSlugCommitsRefStrDiffFiles",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ref_str",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_DiffFileMeta"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/o/{org_slug}/r/{repo_slug}/commits/{ref_str}/diff/files",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/commits/{ref_str}/diff/hunks/{path}": {
      "get": {
        "operationId": "getApiOOrgSlugRRepoSlugCommitsRefStrDiffHunksPath",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ref_str",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_Hunk"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/o/{org_slug}/r/{repo_slug}/commits/{ref_str}/diff/hunks/{path}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/commits/{ref}": {
      "get": {
        "operationId": "getApiOOrgSlugRRepoSlugCommitsRef",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ref",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "before",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrowseResponse_CommitsPage"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/o/{org_slug}/r/{repo_slug}/commits/{ref}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/fork": {
      "post": {
        "operationId": "postApiOOrgSlugRRepoSlugFork",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ForkRequest"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RepoSummary"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "post /api/o/{org_slug}/r/{repo_slug}/fork",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/pushes": {
      "get": {
        "operationId": "getApiOOrgSlugRRepoSlugPushes",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Drop receipts with `acceptedAt <= since` (RFC3339). Pagination cursor.",
            "in": "query",
            "name": "since",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PushRow"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/o/{org_slug}/r/{repo_slug}/pushes",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/reflog": {
      "get": {
        "operationId": "getApiOOrgSlugRRepoSlugReflog",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter to a single ref name (e.g. `refs/heads/main`).",
            "in": "query",
            "name": "ref",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "description": "Drop entries with `at <= since` (RFC3339). Pagination cursor.",
            "in": "query",
            "name": "since",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ReflogRow"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/o/{org_slug}/r/{repo_slug}/reflog",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/settings": {
      "get": {
        "operationId": "getApiOOrgSlugRRepoSlugSettings",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RepoSettingsView"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/o/{org_slug}/r/{repo_slug}/settings",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      },
      "patch": {
        "operationId": "patchApiOOrgSlugRRepoSlugSettings",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchRepoSettingsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RepoSettingsView"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "patch /api/o/{org_slug}/r/{repo_slug}/settings",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/tree/{ref}": {
      "get": {
        "operationId": "getApiOOrgSlugRRepoSlugTreeRef",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ref",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrowseResponse_TreeView"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/o/{org_slug}/r/{repo_slug}/tree/{ref}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{org_slug}/r/{repo_slug}/tree/{ref}/{path}": {
      "get": {
        "operationId": "getApiOOrgSlugRRepoSlugTreeRefPath",
        "parameters": [
          {
            "in": "path",
            "name": "org_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ref",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrowseResponse_TreeView"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/o/{org_slug}/r/{repo_slug}/tree/{ref}/{path}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{owner}/r/{repo}/bundle/{id}": {
      "get": {
        "operationId": "getApiOOwnerRRepoBundleId",
        "parameters": [
          {
            "in": "path",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/x-git-bundle": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "git:fetch"
            ]
          }
        ],
        "summary": "get /api/o/{owner}/r/{repo}/bundle/{id}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "git:fetch"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{owner}/r/{repo}/info/lfs/locks": {
      "get": {
        "operationId": "getApiOOwnerRRepoInfoLfsLocks",
        "parameters": [
          {
            "in": "path",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "id",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "refspec",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListLocksResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "git:fetch"
            ]
          }
        ],
        "summary": "get /api/o/{owner}/r/{repo}/info/lfs/locks",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "git:fetch"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      },
      "post": {
        "operationId": "postApiOOwnerRRepoInfoLfsLocks",
        "parameters": [
          {
            "in": "path",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLockRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LockResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "git:push"
            ]
          }
        ],
        "summary": "post /api/o/{owner}/r/{repo}/info/lfs/locks",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "git:push"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{owner}/r/{repo}/info/lfs/locks/verify": {
      "post": {
        "operationId": "postApiOOwnerRRepoInfoLfsLocksVerify",
        "parameters": [
          {
            "in": "path",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyLocksRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerifyLocksResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "git:push"
            ]
          }
        ],
        "summary": "post /api/o/{owner}/r/{repo}/info/lfs/locks/verify",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "git:push"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{owner}/r/{repo}/info/lfs/locks/{lock_id}/unlock": {
      "post": {
        "operationId": "postApiOOwnerRRepoInfoLfsLocksLockIdUnlock",
        "parameters": [
          {
            "in": "path",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lock_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnlockRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LockResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "git:push"
            ]
          }
        ],
        "summary": "post /api/o/{owner}/r/{repo}/info/lfs/locks/{lock_id}/unlock",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "git:push"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{owner}/r/{repo}/info/lfs/objects/batch": {
      "post": {
        "operationId": "postApiOOwnerRRepoInfoLfsObjectsBatch",
        "parameters": [
          {
            "in": "path",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "git:fetch",
              "git:push"
            ]
          }
        ],
        "summary": "post /api/o/{owner}/r/{repo}/info/lfs/objects/batch",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permission-selector": "requestBody.operation",
        "x-gitdown-bot-permissions": [
          "git:fetch",
          "git:push"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{owner}/r/{repo}/lfs/{oid}": {
      "get": {
        "operationId": "getApiOOwnerRRepoLfsOid",
        "parameters": [
          {
            "in": "path",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "oid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/octet-stream": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "git:fetch"
            ]
          }
        ],
        "summary": "get /api/o/{owner}/r/{repo}/lfs/{oid}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "git:fetch"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      },
      "put": {
        "operationId": "putApiOOwnerRRepoLfsOid",
        "parameters": [
          {
            "in": "path",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "oid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/octet-stream": {
              "schema": {
                "format": "binary",
                "type": "string"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "git:push"
            ]
          }
        ],
        "summary": "put /api/o/{owner}/r/{repo}/lfs/{oid}",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "git:push"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/o/{slug}/repos": {
      "get": {
        "operationId": "getApiOSlugRepos",
        "parameters": [
          {
            "in": "path",
            "name": "slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/RepoSummary"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "get /api/o/{slug}/repos",
        "tags": [
          "o"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/orgs": {
      "get": {
        "operationId": "getApiOrgs",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/OrgSummary"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "get /api/orgs",
        "tags": [
          "orgs"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      },
      "post": {
        "operationId": "postApiOrgs",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateOrgRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrgSummary"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "post /api/orgs",
        "tags": [
          "orgs"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/orgs/{slug}": {
      "delete": {
        "operationId": "deleteApiOrgsSlug",
        "parameters": [
          {
            "in": "path",
            "name": "slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "delete /api/orgs/{slug}",
        "tags": [
          "orgs"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      },
      "get": {
        "operationId": "getApiOrgsSlug",
        "parameters": [
          {
            "in": "path",
            "name": "slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrgDetail"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "get /api/orgs/{slug}",
        "tags": [
          "orgs"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      },
      "patch": {
        "operationId": "patchApiOrgsSlug",
        "parameters": [
          {
            "in": "path",
            "name": "slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOrgRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrgSummary"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "patch /api/orgs/{slug}",
        "tags": [
          "orgs"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/orgs/{slug}/members": {
      "post": {
        "operationId": "postApiOrgsSlugMembers",
        "parameters": [
          {
            "in": "path",
            "name": "slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddMemberRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberRow"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "post /api/orgs/{slug}/members",
        "tags": [
          "orgs"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/orgs/{slug}/members/{uid}": {
      "delete": {
        "operationId": "deleteApiOrgsSlugMembersUid",
        "parameters": [
          {
            "in": "path",
            "name": "slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "uid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "delete /api/orgs/{slug}/members/{uid}",
        "tags": [
          "orgs"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      },
      "patch": {
        "operationId": "patchApiOrgsSlugMembersUid",
        "parameters": [
          {
            "in": "path",
            "name": "slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "uid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateRoleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberRow"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "patch /api/orgs/{slug}/members/{uid}",
        "tags": [
          "orgs"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/pats": {
      "get": {
        "operationId": "getApiPats",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PatView"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "get /api/pats",
        "tags": [
          "pats"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      },
      "post": {
        "operationId": "postApiPats",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePatRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PatCreated"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "post /api/pats",
        "tags": [
          "pats"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/pats/{id}": {
      "delete": {
        "operationId": "deleteApiPatsId",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "delete /api/pats/{id}",
        "tags": [
          "pats"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/repos": {
      "post": {
        "operationId": "postApiRepos",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRepoRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RepoSummary"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "post /api/repos",
        "tags": [
          "repos"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/repos/{repo_id}/branches/{name}/decorations": {
      "get": {
        "operationId": "getApiReposRepoIdBranchesNameDecorations",
        "parameters": [
          {
            "in": "path",
            "name": "repo_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Decoration"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "get /api/repos/{repo_id}/branches/{name}/decorations",
        "tags": [
          "repos"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/repos/{repo_id}/commits/{sha}/decorations": {
      "get": {
        "operationId": "getApiReposRepoIdCommitsShaDecorations",
        "parameters": [
          {
            "in": "path",
            "name": "repo_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "sha",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Decoration"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "get /api/repos/{repo_id}/commits/{sha}/decorations",
        "tags": [
          "repos"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/repos/{repo_id}/decorations": {
      "get": {
        "operationId": "getApiReposRepoIdDecorations",
        "parameters": [
          {
            "in": "path",
            "name": "repo_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Decoration"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "get /api/repos/{repo_id}/decorations",
        "tags": [
          "repos"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/search": {
      "get": {
        "operationId": "getApiSearch",
        "parameters": [
          {
            "in": "query",
            "name": "q",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "kind",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "get /api/search",
        "tags": [
          "search"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/ssh-keys": {
      "get": {
        "operationId": "getApiSshKeys",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/SshKeyView"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "get /api/ssh-keys",
        "tags": [
          "ssh-keys"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      },
      "post": {
        "operationId": "postApiSshKeys",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddSshKeyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SshKeyView"
                }
              }
            },
            "description": "Successful response"
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SshKeyView"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "post /api/ssh-keys",
        "tags": [
          "ssh-keys"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/ssh-keys/enrolled": {
      "get": {
        "operationId": "getApiSshKeysEnrolled",
        "parameters": [
          {
            "in": "query",
            "name": "fingerprint",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EnrolledResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "get /api/ssh-keys/enrolled",
        "tags": [
          "ssh-keys"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/ssh-keys/{fingerprint}": {
      "delete": {
        "operationId": "deleteApiSshKeysFingerprint",
        "parameters": [
          {
            "in": "path",
            "name": "fingerprint",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "delete /api/ssh-keys/{fingerprint}",
        "tags": [
          "ssh-keys"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{owner}/r/{repo}/bundle/{id}": {
      "get": {
        "operationId": "getApiUOwnerRRepoBundleId",
        "parameters": [
          {
            "in": "path",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/x-git-bundle": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "git:fetch"
            ]
          }
        ],
        "summary": "get /api/u/{owner}/r/{repo}/bundle/{id}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "git:fetch"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{owner}/r/{repo}/info/lfs/locks": {
      "get": {
        "operationId": "getApiUOwnerRRepoInfoLfsLocks",
        "parameters": [
          {
            "in": "path",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "path",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "id",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "refspec",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListLocksResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "git:fetch"
            ]
          }
        ],
        "summary": "get /api/u/{owner}/r/{repo}/info/lfs/locks",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "git:fetch"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      },
      "post": {
        "operationId": "postApiUOwnerRRepoInfoLfsLocks",
        "parameters": [
          {
            "in": "path",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLockRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LockResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "git:push"
            ]
          }
        ],
        "summary": "post /api/u/{owner}/r/{repo}/info/lfs/locks",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "git:push"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{owner}/r/{repo}/info/lfs/locks/verify": {
      "post": {
        "operationId": "postApiUOwnerRRepoInfoLfsLocksVerify",
        "parameters": [
          {
            "in": "path",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VerifyLocksRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerifyLocksResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "git:push"
            ]
          }
        ],
        "summary": "post /api/u/{owner}/r/{repo}/info/lfs/locks/verify",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "git:push"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{owner}/r/{repo}/info/lfs/locks/{lock_id}/unlock": {
      "post": {
        "operationId": "postApiUOwnerRRepoInfoLfsLocksLockIdUnlock",
        "parameters": [
          {
            "in": "path",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "lock_id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnlockRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LockResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "git:push"
            ]
          }
        ],
        "summary": "post /api/u/{owner}/r/{repo}/info/lfs/locks/{lock_id}/unlock",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "git:push"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{owner}/r/{repo}/info/lfs/objects/batch": {
      "post": {
        "operationId": "postApiUOwnerRRepoInfoLfsObjectsBatch",
        "parameters": [
          {
            "in": "path",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "git:fetch",
              "git:push"
            ]
          }
        ],
        "summary": "post /api/u/{owner}/r/{repo}/info/lfs/objects/batch",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permission-selector": "requestBody.operation",
        "x-gitdown-bot-permissions": [
          "git:fetch",
          "git:push"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{owner}/r/{repo}/lfs/{oid}": {
      "get": {
        "operationId": "getApiUOwnerRRepoLfsOid",
        "parameters": [
          {
            "in": "path",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "oid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/octet-stream": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "git:fetch"
            ]
          }
        ],
        "summary": "get /api/u/{owner}/r/{repo}/lfs/{oid}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "git:fetch"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      },
      "put": {
        "operationId": "putApiUOwnerRRepoLfsOid",
        "parameters": [
          {
            "in": "path",
            "name": "owner",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "oid",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/octet-stream": {
              "schema": {
                "format": "binary",
                "type": "string"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "git:push"
            ]
          }
        ],
        "summary": "put /api/u/{owner}/r/{repo}/lfs/{oid}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "git:push"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{slug}/repos": {
      "get": {
        "operationId": "getApiUSlugRepos",
        "parameters": [
          {
            "in": "path",
            "name": "slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/RepoSummary"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "get /api/u/{slug}/repos",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}": {
      "delete": {
        "operationId": "deleteApiUUserSlugRRepoSlug",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "delete /api/u/{user_slug}/r/{repo_slug}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      },
      "get": {
        "operationId": "getApiUUserSlugRRepoSlug",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RepoSummary"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/u/{user_slug}/r/{repo_slug}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      },
      "patch": {
        "operationId": "patchApiUUserSlugRRepoSlug",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RenameRepoRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RepoSummary"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "patch /api/u/{user_slug}/r/{repo_slug}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/blob-bytes/{ref}/{path}": {
      "get": {
        "operationId": "getApiUUserSlugRRepoSlugBlobBytesRefPath",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ref",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/octet-stream": {
                "schema": {
                  "format": "binary",
                  "type": "string"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/u/{user_slug}/r/{repo_slug}/blob-bytes/{ref}/{path}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/blob/{ref}/{path}": {
      "get": {
        "operationId": "getApiUUserSlugRRepoSlugBlobRefPath",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ref",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "`<start>-<end>` 1-indexed line range (`5-100` → lines 5..=100).\nOut-of-range end is clamped to EOF; start past EOF returns empty.",
            "in": "query",
            "name": "range",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlobView"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/u/{user_slug}/r/{repo_slug}/blob/{ref}/{path}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/branch-actions/abandon/{name}": {
      "post": {
        "operationId": "postApiUUserSlugRRepoSlugBranchActionsAbandonName",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StateChangeResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "branch:update"
            ]
          }
        ],
        "summary": "post /api/u/{user_slug}/r/{repo_slug}/branch-actions/abandon/{name}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "branch:update"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/branch-actions/merge/{name}": {
      "post": {
        "operationId": "postApiUUserSlugRRepoSlugBranchActionsMergeName",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MergeBody"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MergeResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "branch:merge"
            ]
          }
        ],
        "summary": "post /api/u/{user_slug}/r/{repo_slug}/branch-actions/merge/{name}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "branch:merge"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/branch-actions/ready/{name}": {
      "post": {
        "operationId": "postApiUUserSlugRRepoSlugBranchActionsReadyName",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StateChangeResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "branch:update"
            ]
          }
        ],
        "summary": "post /api/u/{user_slug}/r/{repo_slug}/branch-actions/ready/{name}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "branch:update"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/branch-actions/reviewer/{name}": {
      "post": {
        "operationId": "postApiUUserSlugRRepoSlugBranchActionsReviewerName",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReviewerBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StateChangeResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "branch:update"
            ]
          }
        ],
        "summary": "post /api/u/{user_slug}/r/{repo_slug}/branch-actions/reviewer/{name}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "branch:update"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/branches": {
      "get": {
        "operationId": "getApiUUserSlugRRepoSlugBranches",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter by state. Default: no filter (every state) — #1795 flipped\nthis from `ready` so freshly-pushed Draft branches are visible by\ndefault. Pass `?state=ready` for the human-review subset, or any\nother `BranchState` value to filter; `?state=all` is the explicit\nno-filter synonym.",
            "in": "query",
            "name": "state",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/BranchSummary"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "marketplaceOAuthBearer": [
              "branch:read"
            ]
          },
          {
            "botBearer": [
              "branch:read"
            ]
          }
        ],
        "summary": "get /api/u/{user_slug}/r/{repo_slug}/branches",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "branch:read"
        ],
        "x-gitdown-marketplace-oauth-scope": "branch:read",
        "x-gitdown-principal-boundary": "human-user-or-bot-or-delegated-human",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/branches/{name}": {
      "get": {
        "operationId": "getApiUUserSlugRRepoSlugBranchesName",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "name",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BranchDetail"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "branch:read"
            ]
          }
        ],
        "summary": "get /api/u/{user_slug}/r/{repo_slug}/branches/{name}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "branch:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/commit/{sha}": {
      "get": {
        "operationId": "getApiUUserSlugRRepoSlugCommitSha",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "sha",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommitDetail"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/u/{user_slug}/r/{repo_slug}/commit/{sha}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/commit/{sha}/diff": {
      "get": {
        "operationId": "getApiUUserSlugRRepoSlugCommitShaDiff",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "sha",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "**Removed (#237).** `?include=patch` used to switch per-file\nunified-diff text on — clients now use the paginated\n`/commits/{ref}/diff/hunks/{*path}` endpoint per #235's contract.\nKept as a captured field so the handler can return a typed 400\nwhen a client passes it; rejecting unknown query params silently\nwould leave the legacy clients getting empty diffs.",
            "in": "query",
            "name": "include",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiffSummary"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/u/{user_slug}/r/{repo_slug}/commit/{sha}/diff",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/commits/{ref_str}/diff/files": {
      "get": {
        "operationId": "getApiUUserSlugRRepoSlugCommitsRefStrDiffFiles",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ref_str",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_DiffFileMeta"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/u/{user_slug}/r/{repo_slug}/commits/{ref_str}/diff/files",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/commits/{ref_str}/diff/hunks/{path}": {
      "get": {
        "operationId": "getApiUUserSlugRRepoSlugCommitsRefStrDiffHunksPath",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ref_str",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_Hunk"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/u/{user_slug}/r/{repo_slug}/commits/{ref_str}/diff/hunks/{path}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/commits/{ref}": {
      "get": {
        "operationId": "getApiUUserSlugRRepoSlugCommitsRef",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ref",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "format": "int32",
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "before",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrowseResponse_CommitsPage"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/u/{user_slug}/r/{repo_slug}/commits/{ref}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/fork": {
      "post": {
        "operationId": "postApiUUserSlugRRepoSlugFork",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ForkRequest"
              }
            }
          },
          "required": false
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RepoSummary"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "post /api/u/{user_slug}/r/{repo_slug}/fork",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/pushes": {
      "get": {
        "operationId": "getApiUUserSlugRRepoSlugPushes",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Drop receipts with `acceptedAt <= since` (RFC3339). Pagination cursor.",
            "in": "query",
            "name": "since",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PushRow"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/u/{user_slug}/r/{repo_slug}/pushes",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/reflog": {
      "get": {
        "operationId": "getApiUUserSlugRRepoSlugReflog",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Filter to a single ref name (e.g. `refs/heads/main`).",
            "in": "query",
            "name": "ref",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "description": "Drop entries with `at <= since` (RFC3339). Pagination cursor.",
            "in": "query",
            "name": "since",
            "required": false,
            "schema": {
              "format": "date-time",
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/ReflogRow"
                  },
                  "type": "array"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/u/{user_slug}/r/{repo_slug}/reflog",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/settings": {
      "get": {
        "operationId": "getApiUUserSlugRRepoSlugSettings",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RepoSettingsView"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/u/{user_slug}/r/{repo_slug}/settings",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      },
      "patch": {
        "operationId": "patchApiUUserSlugRRepoSlugSettings",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatchRepoSettingsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RepoSettingsView"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          }
        ],
        "summary": "patch /api/u/{user_slug}/r/{repo_slug}/settings",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "denied",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/tree/{ref}": {
      "get": {
        "operationId": "getApiUUserSlugRRepoSlugTreeRef",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ref",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrowseResponse_TreeView"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/u/{user_slug}/r/{repo_slug}/tree/{ref}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/u/{user_slug}/r/{repo_slug}/tree/{ref}/{path}": {
      "get": {
        "operationId": "getApiUUserSlugRRepoSlugTreeRefPath",
        "parameters": [
          {
            "in": "path",
            "name": "user_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "repo_slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "ref",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "cursor",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          {
            "in": "query",
            "name": "limit",
            "required": false,
            "schema": {
              "minimum": 0,
              "type": [
                "integer",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BrowseResponse_TreeView"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "security": [
          {
            "firebaseBearer": []
          },
          {
            "botBearer": [
              "repository:read"
            ]
          }
        ],
        "summary": "get /api/u/{user_slug}/r/{repo_slug}/tree/{ref}/{path}",
        "tags": [
          "u"
        ],
        "x-gitdown-bot-access": "permission-mapped",
        "x-gitdown-bot-permissions": [
          "repository:read"
        ],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "human-user-or-bot",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/api/waitlist": {
      "post": {
        "operationId": "postApiWaitlist",
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WaitlistRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WaitlistResponse"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "summary": "post /api/waitlist",
        "tags": [
          "waitlist"
        ],
        "x-gitdown-bot-access": "public",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "public",
        "x-gitdown-wire-schema": "typed"
      }
    },
    "/healthz": {
      "get": {
        "operationId": "getHealthz",
        "parameters": [],
        "responses": {
          "200": {
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/RateLimited"
          },
          "500": {
            "$ref": "#/components/responses/Internal"
          }
        },
        "summary": "get /healthz",
        "tags": [
          "operations"
        ],
        "x-gitdown-bot-access": "public",
        "x-gitdown-bot-permissions": [],
        "x-gitdown-marketplace-oauth-scope": null,
        "x-gitdown-principal-boundary": "public",
        "x-gitdown-wire-schema": "typed"
      }
    }
  },
  "servers": [
    {
      "url": "https://dev.gitdown.io"
    }
  ],
  "x-gitdown-error-codes": [
    "ADMIN_CLAIMS_TOO_LARGE",
    "ADMIN_CLAIMS_UNAVAILABLE",
    "APP_TAKEN_DOWN",
    "BACKEND_ERROR",
    "BACKEND_TIMEOUT",
    "BAD_REQUEST",
    "BOT_CREDENTIAL_NOT_FOUND",
    "BOT_DISABLED",
    "BOT_GRANT_NOT_FOUND",
    "BOT_GRANT_REVOKED",
    "BOT_NOT_FOUND",
    "BOT_PERMISSION_DENIED",
    "BOT_SSH_KEY_NOT_FOUND",
    "BOT_TOKEN_ERROR",
    "BOT_TOKEN_UNAVAILABLE",
    "BRANCH_ADVANCED",
    "BRANCH_CAS_MISMATCH",
    "CI_NOT_GREEN",
    "CONFLICT",
    "DELIVERY_TERMINAL",
    "FORBIDDEN",
    "GONE",
    "GPG_KEY_ALREADY_ENROLLED",
    "GPG_KEY_CONFLICT",
    "IDEMPOTENCY_KEY_REUSED",
    "INDEX_BUILDING",
    "INSTALLATION_REVOKED",
    "INTERNAL",
    "INVALID_GPG_KEY",
    "INVALID_SSH_KEY",
    "KEY_ALREADY_ENROLLED",
    "LAST_ADMIN",
    "METHOD_NOT_ALLOWED",
    "MOVED",
    "MUTATION_REJECTED",
    "NETWORK_RESET",
    "NOT_FOUND",
    "NOT_IN_STATE",
    "OPERATOR_REVIEW",
    "ORG_NOT_EMPTY",
    "ORG_TOO_LARGE",
    "OUT_OF_DATE",
    "PAT_LIMIT_REACHED",
    "QUOTA",
    "RATE_LIMITED",
    "REPO_CAP_REACHED",
    "REPO_PRE_ULID",
    "ROLE_REVOCATION_UNAVAILABLE",
    "SCOPE_INSUFFICIENT",
    "SERVICE_UNAVAILABLE",
    "SLUG_IN_GRACE",
    "SLUG_REPAIR_REQUIRED",
    "SLUG_RETRY",
    "SLUG_TAKEN",
    "SSH_KEY_CONFLICT",
    "SSH_KEY_LIMIT_REACHED",
    "STATE_CONFLICT",
    "STORE_RACE",
    "UNAUTHORIZED",
    "UNPROCESSABLE_ENTITY",
    "USER_PENDING_DELETE",
    "VERIFIED_EMAIL_HASHES_UNAVAILABLE"
  ],
  "x-gitdown-error-contract": {
    "envelope": "ApiErrorEnvelope",
    "handlerStateConflictCodesMayExtend": true,
    "stableField": "error.code"
  }
}
