Skip to content
garage
Esc
navigateopen⌘Jpreview
On this page

Organizations and repository names

How active organizations and bare repository names determine a target repository.

An organization is the namespace that contains a repository. The full identity of a repository is therefore an organization slug and a repository name. One example is acme/website.

Most CLI and SDK operations accept only the bare name:

website

The active organization supplies the missing namespace. This behavior keeps routine commands short. It also lets one bare name identify a different repository after the active organization changes.

CLI resolution

garage setup selects an organization during sign-in. Inspect or change it with:

garage org list
garage org switch <slug>

A command such as garage repos get website resolves website inside that organization. A command that you run inside a linked clone can also identify the repository from its garage Git remote.

--repo <name> and GARAGE_REPO select a repository for commands that accept repository context. They do not change the active organization.

SDK resolution

The authenticated SDK also accepts a bare repository name:

const repo = await garage('website', { token })

The organization context of the API key determines the namespace. The SDK rejects a value such as acme/website, because it expects a bare name.

Explicitly addressed interfaces

A Git remote and a repository MCP endpoint contain the namespace in their URL. They always identify the same repository. They do not read the active organization of the CLI.

Was this page helpful?