Repo: Create
Create a repository. The JWT repo claim supplies the repository name. The optional repo_name body field must equal that claim.
A repository starts empty or from a source. base_repo is a one-time copy of a Code Storage repository; upstream is a lasting link to an external Git host. A copy takes the history of one commit (base_repo.ref, or the source HEAD) into one branch, and keeps no link to its source. A sync keeps its upstream, and the repository can sync from it again. Set at most one of the two.
The deprecated form of base_repo, with provider and operation, still works.
JWT claims
Required scopes: repo:write
Requires per repo scope: Yes
Authorizations
JWT bearer token signed with your organization's registered signing key. There is no OAuth authorization server; you mint tokens yourself and the token's scopes claim carries the granted permission scopes. Public scopes: git:read (read repository contents), git:write (write branches, commits, tags, and notes), repo:write (create and manage repositories), org:read (list an organization's repositories). Each operation's security requirement names the scopes it requires. See https://code.storage/docs/getting-started/authentication for how to mint tokens.
Query Parameters
Optional default branch override. When present, it is used if the request body does not already specify one.
Body
Create an empty repository, a copy of a Code Storage repository (base_repo), or a repository that syncs from an external Git host (upstream).
Create-repository request body. The JWT repo claim supplies the repository name. The optional repo_name field must equal that claim. The body also supplies optional default-branch and Git Sync or fork configuration.
Code Storage repository to copy once. The new repository keeps no link to it. Do not set it together with upstream.
Default branch for the new repository. Defaults to main when omitted.
"main"
Name of the new repository. It can contain a slash. When present, it must equal the JWT repo claim. When omitted, the repo claim supplies the name.
"pierre/sdk-documentation"
External Git host to keep syncing from. The link lasts, and the repository can sync again. Do not set it together with base_repo.
Response
Repository created successfully.
Result of creating a repository, including the assigned internal repository ID and the repository URL path.
Deprecated: use repo_name. Repository name or path, not a full URL.
"pierre/sdk-documentation"
High-level creation result.
"repository created"
Deprecated: use repo_name. Stable repository identifier.
"repo_7f2b3d9"
Repository name or path. It can contain a slash. It matches the JWT repo claim.
"pierre/sdk-documentation"