workspace-registry

Create a new workspace

Changed on
post/workspaces

Request

  • Base URL: / (relative, and the document was published on a file host, not at the API’s origin)
  • URL: /workspaces
  • Auth: HTTP bearer

Request body

accountLoginstring required

Git provider account login (GitHub org/user or GitLab group path)

accountType'ORG' | 'USER' required

Type of account (USER or ORG)

displayNamestring required

Human-readable name of the workspace

kind'GITHUB' | 'GITLAB' required

Integration kind to provision. SLACK flows through OAuth, not this endpoint.

ownerUserIdinteger

Deprecated: ignored by the server. The authenticated user always becomes the owner.

personalAccessTokenstring

Personal Access Token. Required for both kinds (GitLab API or GitHub PAT). Stored encrypted at rest.

serverUrlstring

For GitLab, the default GitLab instance this server reads from, which is also used when omitted; any other instance is refused.

workspaceSlugstring required

Non-reserved lowercase ASCII DNS label. Consecutive hyphens are prohibited.

Example request

{
  "accountLogin": "my-org",
  "displayName": "My Workspace",
  "kind": "GITLAB",
  "personalAccessToken": "glpat-...",
  "serverUrl": "https://gitlab.example.com",
  "workspaceSlug": "my-workspace"
}

Response

Workspace created

accountLoginstring required

Git provider account login associated with this workspace

createdAtstring date-time required

Timestamp when the workspace was created

displayNamestring required

Human-readable name of the workspace

gitlabWebhookRegisteredboolean required

Whether a GitLab webhook has been auto-registered for this workspace

hasPersonalAccessTokenboolean required

Whether a Personal Access Token is configured

hasSlackTokenboolean required

Whether Slack token is configured

idinteger required

Unique identifier of the workspace

installationIdinteger

GitHub App installation ID, if linked

installationLinkedAtstring date-time

Timestamp when the GitHub App installation was linked

kindstring

Integration kind backing this workspace (GITHUB or GITLAB)

practiceReviewAutoTriggerEnabledboolean required

Whether automatic practice reviews triggered by PR events are enabled

practiceReviewManualTriggerEnabledboolean required

Whether manual practice reviews triggered through a bot command are enabled

practicesEnabledboolean required

Whether practice reviews are on

providerType'GITHUB' | 'GITLAB' | 'SLACK' | 'OUTLINE'

High-level git provider type for the workspace's SCM connection (null if none bound)

publicActivityEnabledboolean required

Whether this workspace has enabled its public activity page

serverUrlstring

Custom server URL for self-hosted instances (null for cloud defaults)

slackConnectionIdinteger

ID of the active Slack connection, if any — addresses PATCH /connections/{id}/status

statusstring required

Current lifecycle status of the workspace (PENDING, ACTIVE, ARCHIVED)

updatedAtstring date-time required

Timestamp when the workspace was last updated

workspaceAddressstring required

Canonical workspace address. Uses the apex path when subdomains are off.

workspaceSlugstring required

URL-friendly identifier for the workspace

Example response

{
  "workspaceSlug": "my-workspace"
}

Changes

    • breaking

      removed the required property from the response with the status

    • info

      added the required property to the response with the status

    • breaking

      the request property's minLength was increased from 1 to 3

    • warning

      the request property's maxLength was set to 51

    • warning

      changed the pattern of the request property from ^[a-z0-9][a-z0-9-]{2,50}$ to ^(?!.*--)[a-z0-9][a-z0-9-]{1,49}[a-z0-9]$

    • info

      added the required property to the response with the status