Create a hosted repository
Your first repository on the hosted service, and what changes versus a local one.
Written By Dustin
Last updated About 6 hours ago
Create it from the web interface, then clone it, or push an existing local repository to it. Nothing about how you work locally changes: the same CLI, the same commands, the same object format.
Public or private
Public repositories are readable by anyone. Private ones are readable by the members you grant access to. On the Free plan you get unlimited public repositories and one private one, limited to five policy declarations.
The Free caps are enforced, not advisory
Three of them will refuse an operation rather than bill you, and it is better to know where they are before you meet one:
One private repository. Checked when you create a repository and when you flip an existing public one to private — the second is the one people forget.
5 GB of storage. Checked when objects are uploaded. On Free this refuses; on a paid plan the same overage is billed instead.
Five policy declarations. Counted against the manifest that is actually served, and checked before it is stored, so a manifest over the allowance never becomes your active policy.
The policy cap governs your active policy only. A manifest that arrives as an object inside pushed history is deliberately not counted — otherwise a downgrade would make your own published history unpushable, which is a defect rather than a paywall.
What hosting changes
You get a durable remote that is not one of your own machines, with proposals, reviews, lock arbitration, and an audit trail.
Your protected paths are still encrypted before they reach hosted storage. The service stores ciphertext for policy-covered content and cannot read it.
Not every hosted datum is ciphertext. Public content, repository metadata, identity and policy metadata, and billing records are not. This is documented rather than implied, and it is worth reading the trust-boundary article before putting something sensitive in a repository name.
Who can do what to it
Repository access has three roles — Read, Write, and Admin — and they are separate from your organization role. The roles article sets out both, and the one rule that matters most: a repository Admin who holds no key still cannot read a protected path. Roles grant authority over the service, not decryption.
Moving an existing repository up
Add the hosted remote and push. If the repository came from Git, import it locally first and then push — importing and hosting are separate steps, and doing them separately makes the import easier to check.
Storage counts against your plan
Storage is measured as a daily average in decimal GB across the organization, not as a peak. A large one-off import that you then garbage-collect costs very little.