Skip to main content
Manage Entire Repositories.

Repository References

Commands that take a REPO accept a forge-qualified reference that names where the repository lives: A trailing .git is never part of a repository name, so /et/PROJECT/REPO and /et/PROJECT/REPO.git address the same repository. A bare OWNER/REPO names no forge, so Entire refuses it and suggests the qualified spellings. A GitHub URL such as github.com/OWNER/REPO is refused too, so that one repository has one spelling: the mirror, clone, remote, and grant commands name the /gh/OWNER/REPO form to use instead, while the rest report the reference they expected. Which reference a command takes depends on what it acts on:
A GitHub mirror’s visibility and branch protection are the upstream repository’s, managed on GitHub. repo protection list says so rather than returning an empty rule set.

entire repo create

Create a repository in a project.
A name ending in .git, in any letter case, is refused. By default the command waits for provisioning to become active. Active means provisioning completed; later pushes or mirror creation can still fail for other reasons. If creation succeeds but readiness cannot be confirmed, the command exits nonzero and preserves the repository result. Do not create the repository again to recover.

entire repo list

List repositories in a project.
By default at most 1,000 repositories are fetched, and a note on standard error says so when the project has more. Rows come in server order; this list has no local filters or sort. With --json, a paged response wraps rows in an {items, nextPageToken} envelope.

entire repo view

Show a repository: its name, visibility, and one row per cluster it is placed on, with that cluster’s role, clone URL, and status.
REPO names its forge, and nothing else addresses a repository here: The CLUSTER column prints the public host that --cluster accepts elsewhere. Primary and mirror rows share one status vocabulary, such as ready, processing, or failed. A state the CLI does not recognize is shown as the server reports it. A clone URL is looked up on the login server fronting its cluster, so it resolves even when that cluster belongs to another federation. Every other form is looked up on the active context’s login server. This command does not wait. It exits successfully when it can read the repository, even if provisioning is still in progress or has failed. For scripting, use --authoritative --json and inspect state, where active means provisioning completed. Examples:

entire repo edit

Edit a repository’s settings.
--visibility public grants read-only access to any authenticated Entire user, while push and repository management stay restricted to grantees. --visibility private restricts the repository to explicit grantees. The caller needs manage permission on the repository.

entire repo clone

Clone an Entire repository, a GitHub mirror, or a full entire:// clone URL.
REPO takes one of three forms: With either reference, a single cluster is cloned directly. When the repository is readable on several, an interactive terminal prompts you to pick one. Without a terminal, an /et/ repository falls back to its own primary cluster, while a /gh/ mirror falls back to aws-us-east-2.entire.io and errors asking for --cluster if the mirror is not placed there. Pass --cluster to choose either way, or --nearest to let Entire measure. The optional TARGET_DIR is passed through to git clone in every case. Examples:
The --nearest timing is local, and the control plane is never told where you are. Each candidate cluster does see a connection from you, where without the flag only the one you clone from would.

entire repo delete

Delete a repository.

entire repo mirror add

Register a mirror placement on one or more clusters.
With no arguments, entire repo mirror add opens an interactive wizard to choose repositories and regions, then creates every repository and region pair in parallel and prints the clone URLs. --cluster requires a REPO. With a REPO, the command places it on every cluster named by --cluster in parallel, then waits for each to become usable. Repeat the flag or comma-separate the hosts for several. Placement is idempotent for a given repository and cluster, so naming one the repository is already on reports it rather than failing. Every cluster is attempted independently: one that fails does not stop the others, and the command exits nonzero naming the ones that did. Alongside the clone URLs, the command suggests entire repo remote add origin --override to repoint an existing checkout at the new mirror.

GitHub and Entire Repositories

Examples:

entire repo mirror list

List repositories you can see: existing mirrors and GitHub repositories you could onboard.
GitHub is the default view. Pass --forge et for Entire repositories and where each is placed, or --forge all for both in one table. The NAME column always prints the forge-qualified reference the other commands take. Existing mirrors appear once per repository, with their clusters and status. Available GitHub repositories show access and availability instead of placement details. Sparse cells show -. Use entire repo view /gh/OWNER/REPO for per-cluster clone URLs. Filters and --sort apply to the fetched rows, so combine them with --all to work over the complete list.

entire repo mirror remove

Remove mirror placements from one or more clusters.
The command removes the placements on every cluster named by --cluster, in parallel. Other clusters’ placements of the same repository, and the repository itself, are unaffected. Removing a mirror placement does not delete or rewrite an upstream GitHub repository. There is no default cluster. Which clusters a repository is on is a property of the repository, so guessing one would delete a copy you never named. With --cluster omitted, a terminal offers the clusters the repository is actually mirrored on as a multi-select, with each placement’s status; nothing starts ticked, so the selection doubles as the confirmation. A non-interactive run must name the clusters. An Entire repository’s own primary cluster is listed but never removable — use entire repo delete for that. Teardown is asynchronous, so the command waits for each placement to disappear. Examples:

entire repo remote add

Add a Git remote that goes through Entire instead of the forge.
The repository is resolved from the current clone’s remotes; pass REPO to name a different one. With more than one cluster to choose from, a terminal gets a picker and a script gets the repository’s own cluster. --cluster selects one either way, the same as entire repo clone. REMOTE_NAME must not already exist. As with git remote add, an occupied name is refused rather than repointed. The command only ever edits local Git configuration. The cluster must already serve the repository, so create the placement with entire repo mirror add first; nothing server-side is changed. Examples:
--override prints the URL it replaced, with any credentials redacted. That printout is the only record of the previous URL, so keep your own copy if you need it.
To find a clone URL without touching Git configuration, use entire repo view, which lists the URL for each cluster.

entire repo protection

List, add, or remove a repository’s branch-protection rules.
Each rule names a branch pattern and a level. protected refuses force pushes and deletion, while fast-forward pushes stay allowed. server-side merge only also refuses every direct push, so the branch moves only through a merge Entire performs, such as a trail merge. A pattern is HEAD for the default branch, a branch name such as main, or a pattern with * and ? wildcards such as release/*.
Branch protection applies to Entire repositories only. For a GitHub mirror, entire repo protection list says the rules are the upstream repository’s. That note is part of the table output; with --json, standard output is [] and the note goes to standard error.
Every subcommand takes --json to print raw JSON instead of a table, and --project PROJECT to name the owning project when REPO is a bare name.

entire repo protection list

Show a repository’s branch-protection rules.

entire repo protection add

Protect a branch, or change the level of an existing rule.
A new rule protects the branch from force pushes and deletion. With --server-side-merge-only, every direct push is refused. Re-adding a branch without the flag keeps its current level; pass --server-side-merge-only=false to lower it. The command prints the resulting rules. The caller needs manage permission on the repository.

entire repo protection remove

Remove a branch-protection rule.
BRANCH names the rule as it was added. Removing a branch that has no rule changes nothing. The command prints the resulting rules and needs manage permission on the repository.

entire repo grant

Grant and revoke repository access, and list who can reach a repository.
entire repo grant list answers for both forges: an /et/ reference lists the repository’s grants, and a /gh/ reference lists who can pull the mirror. add and remove take /et/ references only, because a mirror’s access follows the upstream GitHub repository. See grant for roles, grantee syntax, and flags.

entire repo visibility get

Show whether an Entire repository is public or private.
Set visibility with entire repo edit --visibility.

Continue With

Mirror a GitHub Repository

Create a mirror and use it from Git.

Mirror Access and Permissions

Understand GitHub-synced access, hourly collaborator sync, and offboarding.

project

Manage the projects that own repositories.

grant

Grant and revoke repository access.