repos

Create a repo

Register a remote in a workspace the caller can create in. source_uri is normalised before storage — scheme forced to https, host lowercased, credentials, .git and trailing slashes stripped — so the value echoed back may differ from the one sent, and two spellings of one remote are one row. A project_id, if given, must live in the same workspace. Registering an existing readable remote returns that repo unchanged with 200; an existing repo the caller cannot read returns 409 repo_exists without exposing its fields.

post/registry/v1/repos

Request

  • Base URL: https://api.atlan.com (the document declares no server; this is the origin it was published from)
  • URL: https://api.atlan.com/registry/v1/repos
  • Auth: HTTP bearer

Headers

Content-Encoding'base64' | 'gzip, base64'

Codings applied to the request body, outermost last. Send base64, or gzip, base64 to compress first; the body is decoded before it is read and Content-Type still names the inner media type. Omit for an unencoded body.

Request body

descriptionstring nullable

Human-readable description.

display_namestring nullable

Human-readable name.

namestring nullable

The stable machine handle in owner/repo form. Omitted ⇒ derived from the normalised source_uri. Never minted from display_name: prose is refused, not re-slugged.

project_idstring nullable

Handle of the project this repo belongs to. Validated to sit inside workspace_id when supplied — the two are a pair, not alternatives.

source_metadataobject nullable

Opaque provenance the client observed about the remote — default_branch, and contributors[], which is the only input to the detected-contributor writer.

The gateway makes no outbound call to obtain any of this: a client reads its own git history and posts what it saw. That is the whole reason the column is an opaque bag rather than typed fields — the registry does not interpret it beyond the one key it reads.

contributors[] accepts a bare email string or an object carrying an email. A malformed entry is dropped, not refused: a bad provenance entry must not fail a repo registration.

source_typestring required

git | atlan | local. Fixed at create.

source_uristring required

The repo remote. Normalised before storage; fixed at create.

workspace_idstring required

Handle of the workspace to create the repo in.

Response

The remote was already registered; the existing repo is returned unchanged.

created_atstring required

RFC 3339 strings, matching the shipped contract. Changing them to typed timestamps is the api-contract skill's call, not a side effect of a store swap.

created_bystring required

Value of the created_by field.

descriptionstring nullable

Human-readable description.

display_namestring required

Human-readable name.

idstring required

Stable identifier of this resource.

namestring required

Stable machine-readable name.

project_idstring nullable

Stable identifier of the related project resource.

repo_statusstring required

The lifecycle state. repo_status, not status — see ProjectDto::project_status; registry_model::repo::Entity likewise declares ("status", "repo_status") retired, so the response served the one name the request refused.

source_metadataobject nullable

The provenance bag as stored. Served so the write round-trips: the contributor writer reads one key out of it, and a caller that could not read back what it sent has no way to tell a dropped bag from an accepted one.

source_typestring required

Value of the source_type field.

source_uristring nullable

Value of the source_uri field.

updated_atstring required

Value of the updated_at field.

updated_bystring required

Value of the updated_by field.

workspace_idstring required

Stable identifier of the related workspace resource.

Changes

No recorded changes to this operation across all 1 revision of this API.