openapi: 3.0.0 info: title: Xata API Keys GitHub App API description: Xata API version: '1.0' contact: name: help@xata.io servers: - url: https://api.xata.tech description: Xata API tags: - name: GitHub App description: Operations for managing GitHub App installation mappings x-displayName: GitHub App paths: /organizations/{organizationID}/githubapp/installations: summary: GitHub App Installation Operations (organization-scoped) description: Manage GitHub App installations for an organization. get: operationId: listGithubAppInstallations summary: List GitHub App installations for organization description: Returns all GitHub App installations associated with the specified organization. parameters: - name: organizationID in: path description: Unique identifier of the organization required: true schema: $ref: '#/components/schemas/OrganizationID' responses: '200': description: List of GitHub App installations content: application/json: schema: type: object properties: installations: description: Array of GitHub App installations type: array items: $ref: '#/components/schemas/GithubInstallation' required: - installations '400': $ref: '#/components/responses/GenericError' '401': $ref: '#/components/responses/AuthorizationError' 5XX: description: Unexpected Error default: description: Unexpected Error security: - xata: - project:read tags: - GitHub App x-excluded: true post: operationId: createGithubAppInstallation summary: Create GitHub App installation description: Creates a new GitHub App installation mapping for the specified organization. parameters: - name: organizationID in: path description: Unique identifier of the organization required: true schema: $ref: '#/components/schemas/OrganizationID' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateGithubAppInstallationRequest' responses: '201': description: Installation created successfully content: application/json: schema: $ref: '#/components/schemas/GithubInstallation' '400': $ref: '#/components/responses/GenericError' '401': $ref: '#/components/responses/AuthorizationError' '409': $ref: '#/components/responses/GenericError' 5XX: description: Unexpected Error default: description: Unexpected Error security: - xata: - org:write tags: - GitHub App x-excluded: true /organizations/{organizationID}/githubapp/installations/{githubInstallationID}: summary: GitHub App Installation Operations by ID description: Manage a specific GitHub App installation. put: operationId: updateGithubAppInstallation summary: Update GitHub App installation description: Updates an existing GitHub App installation mapping. parameters: - name: organizationID in: path description: Unique identifier of the organization required: true schema: $ref: '#/components/schemas/OrganizationID' - name: githubInstallationID in: path description: Unique identifier of the GitHub installation record required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateGithubAppInstallationRequest' responses: '200': description: Installation updated successfully content: application/json: schema: $ref: '#/components/schemas/GithubInstallation' '400': $ref: '#/components/responses/GenericError' '401': $ref: '#/components/responses/AuthorizationError' '404': $ref: '#/components/responses/GenericError' '409': $ref: '#/components/responses/GenericError' 5XX: description: Unexpected Error default: description: Unexpected Error security: - xata: - org:write tags: - GitHub App x-excluded: true /organizations/{organizationID}/projects/{projectID}/branches/{branchID}/githubapp/repository: summary: GitHub App Repository Operations description: Manage GitHub repository to Xata branch mappings. get: operationId: getGithubRepository summary: Get GitHub repository for branch description: Returns the GitHub repository mapping for the specified branch. parameters: - name: organizationID in: path description: Unique identifier of the organization required: true schema: $ref: '#/components/schemas/OrganizationID' - name: projectID in: path description: Unique identifier of the project required: true schema: type: string - name: branchID in: path description: Unique identifier of the branch required: true schema: type: string responses: '200': description: GitHub repository mapping details content: application/json: schema: type: object properties: mapping: description: Repository mapping details, null if no mapping exists $ref: '#/components/schemas/GithubRepository' nullable: true required: - mapping '400': $ref: '#/components/responses/GenericError' '401': $ref: '#/components/responses/AuthorizationError' 5XX: description: Unexpected Error default: description: Unexpected Error security: - xata: - project:read tags: - GitHub App x-excluded: true post: operationId: createGithubRepository summary: Create GitHub repository mapping description: Creates a new GitHub repository to Xata branch mapping. parameters: - name: organizationID in: path description: Unique identifier of the organization required: true schema: $ref: '#/components/schemas/OrganizationID' - name: projectID in: path description: Unique identifier of the project required: true schema: type: string - name: branchID in: path description: Unique identifier of the branch required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateGithubRepositoryRequest' responses: '201': description: Repository mapping created successfully content: application/json: schema: $ref: '#/components/schemas/GithubRepository' '400': $ref: '#/components/responses/GenericError' '401': $ref: '#/components/responses/AuthorizationError' '409': $ref: '#/components/responses/GenericError' 5XX: description: Unexpected Error default: description: Unexpected Error security: - xata: - project:write tags: - GitHub App x-excluded: true put: operationId: updateGithubRepository summary: Update GitHub repository mapping description: Updates an existing GitHub repository to Xata branch mapping. parameters: - name: organizationID in: path description: Unique identifier of the organization required: true schema: $ref: '#/components/schemas/OrganizationID' - name: projectID in: path description: Unique identifier of the project required: true schema: type: string - name: branchID in: path description: Unique identifier of the branch required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateGithubRepositoryRequest' responses: '200': description: Repository mapping updated successfully content: application/json: schema: $ref: '#/components/schemas/GithubRepository' '400': $ref: '#/components/responses/GenericError' '401': $ref: '#/components/responses/AuthorizationError' '404': $ref: '#/components/responses/GenericError' 5XX: description: Unexpected Error default: description: Unexpected Error security: - xata: - project:write tags: - GitHub App x-excluded: true delete: operationId: deleteGithubRepository summary: Delete GitHub repository mapping description: Deletes the GitHub repository mapping for the specified branch. parameters: - name: organizationID in: path description: Unique identifier of the organization required: true schema: $ref: '#/components/schemas/OrganizationID' - name: projectID in: path description: Unique identifier of the project required: true schema: type: string - name: branchID in: path description: Unique identifier of the branch required: true schema: type: string responses: '204': description: Repository mapping deleted successfully '400': $ref: '#/components/responses/GenericError' '401': $ref: '#/components/responses/AuthorizationError' '404': $ref: '#/components/responses/GenericError' 5XX: description: Unexpected Error default: description: Unexpected Error security: - xata: - project:write tags: - GitHub App x-excluded: true components: schemas: UpdateGithubRepositoryRequest: type: object properties: githubRepositoryID: description: GitHub repository ID type: integer format: int64 required: - githubRepositoryID OrganizationID: title: OrganizationID type: string pattern: '[a-zA-Z0-9_-~:]+' x-oapi-codegen-extra-tags: validate: identifier CreateGithubAppInstallationRequest: type: object properties: installationId: description: GitHub App installation ID type: integer format: int64 required: - installationId UpdateGithubAppInstallationRequest: type: object properties: installationId: description: GitHub App installation ID type: integer format: int64 required: - installationId GithubRepository: description: A mapping between a GitHub repository and a Xata project type: object properties: id: description: Unique identifier of the mapping record type: string githubRepositoryID: description: GitHub repository ID type: integer format: int64 project: description: Project ID this mapping is associated with type: string rootBranchId: description: ID of the root Xata branch mapped to this repository type: string createdAt: description: Timestamp when the mapping was created type: string format: date-time updatedAt: description: Timestamp when the mapping was last updated type: string format: date-time required: - id - githubRepositoryID - project - rootBranchId - createdAt - updatedAt CreateGithubRepositoryRequest: type: object properties: githubRepositoryID: description: GitHub repository ID type: integer format: int64 required: - githubRepositoryID GithubInstallation: description: A GitHub App installation associated with an organization type: object properties: id: description: Unique identifier of the installation record type: string installationId: description: GitHub App installation ID type: integer format: int64 organization: description: Organization ID this installation belongs to type: string createdAt: description: Timestamp when the installation was created type: string format: date-time updatedAt: description: Timestamp when the installation was last updated type: string format: date-time required: - id - installationId - organization - createdAt - updatedAt responses: GenericError: description: Generic error response for most error conditions content: application/json: schema: type: object properties: id: description: Error identifier for tracking and debugging type: string message: description: Human-readable error message explaining the issue type: string required: - message AuthorizationError: description: Error response when authentication or authorization fails content: application/json: schema: type: object properties: id: description: Error identifier for tracking and debugging type: string message: description: Human-readable error message explaining the authentication or authorization issue type: string required: - message securitySchemes: oidc: type: openIdConnect openIdConnectUrl: https://auth.xata.io/realms/xata/.well-known/openid-configuration apiKey: type: apiKey in: header name: Authorization description: 'API key authentication using Bearer token format: Bearer ' xata: type: oauth2 flows: implicit: authorizationUrl: https://auth.xata.io/realms/xata/protocol/openid-connect/auth scopes: org:read: Read organization information org:write: Create and modify organizations keys:read: Read API keys keys:write: Create and manage API keys project:read: Read project information project:write: Create and modify projects branch:read: Read branch information branch:write: Create and modify branches metrics:read: Read metrics data logs:read: Read logs data credentials:read: Read credentials credentials:write: Rotate credentials marketplace:write: Register with cloud marketplaces branchConnectionString: type: apiKey in: header name: Connection-String description: Branch PostgreSQL connection string (`postgres://user:pass@{branch}.{region}.xata.tech/db`), including the embedded password. The hostname selects the target branch, region, and endpoint type (the `-rw`/`-ro` suffix, see `EndpointType`), and must match the request host. Obtain it from the Xata dashboard or the control-plane API. This is the only credential the gateway accepts; the control-plane API key (Bearer token) is rejected here. For the WebSocket endpoint (`GET /v2`) the same connection string is conveyed via the PostgreSQL startup message instead of this header. externalDocs: url: https://xata.io/docs/api x-tagGroups: - name: Authentication API tags: - Organizations - Users - API Keys - Marketplace - Billing - Webhooks - name: Gateway API tags: - Gateway - name: Projects API tags: - Projects Webhooks - Projects - Branches - GitHub App - Metrics - Logs