Repositories

Manage repository settings

Use Settings → General (/<owner>/<repo>/settings) to manage visibility, the default branch, transfers, retained branches and repository deletion. Administration requires the permissions described below. If settings change while you are editing, reload and review the current values before retrying.

The Settings tab is available to repository maintainers and administrators, not ordinary readers of a public repository. Direct settings access requires sign-in (401); signed-in readers without sufficient authority receive 403. Missing repositories and private repositories you cannot access remain 404. API credentials also need repository metadata-read scope to read General settings; editing requires metadata-write scope. Individual administration actions retain their stricter permissions below.

Description, homepage, topics and automatic branch deletion are saved together with Save changes in the header. Discard restores the latest loaded values. Leaving with unsaved edits asks for confirmation. Other administration actions use their own confirmation dialogs.

Deleting a repository

Only the owner can delete a repository.

  1. Find Delete this repository and press Delete repository.
  2. Type the full owner/name exactly as shown.
  3. Press I understand, delete this repository.

Once accepted, the repository becomes inaccessible and disappears from normal repository lists and code views. Deletion does not currently erase the stored Git data. This workflow offers no repository restore action.

Changing visibility

Repository administrators can change a standalone repository between public and private in General settings. Publishing makes its content accessible to anyone. Private repositories require an eligible plan on instances that enforce plan limits.

For a repository connected through an active GitHub App mirror, you must be able to renew GitHub authorization. A public GitHub source may sync to either visibility; a private source requires a private destination. The selected sync mode and conflict preference are preserved. Wait for pending synchronization to settle before changing visibility.

Visibility changes are unavailable for GitCafe fork networks and mirrors without active, renewable GitHub authorization. A source being a fork on GitHub is a separate property and does not by itself impose that restriction.

Changing the default branch

Administrators can choose a default branch in General settings or use cafe repo edit --default-branch <name>. Select an existing branch; an empty repository can name its initial branch. The default determines what people see when opening or cloning the repository.

New repositories default to main unless you choose another name during creation. Forks inherit their parent's default branch.

If changing the default branch is unavailable on your instance, the request says so. A pending or uncertain result does not mean the change failed: inspect the existing operation before starting another change.

Transferring a repository

Use Transfer repository in General settings. Enter the destination owner, an optional new name, and the current full repository name. You need permission at both the current owner and the destination. Conflicting work can prevent the transfer.

After a successful transfer:

  • Update your local Git remote to the new address.
  • Review access: source-organization team access is removed, while direct collaborator access remains.
  • Reauthorize GitHub synchronization under the new owner; sync is paused by the transfer.

The CLI also exposes cafe repo transfer.

Deleting a branch or tag

Repository writers can delete eligible branches and tags from their branches or tags page, or through the CLI. Review the selected ref before confirming. If it changed after the page loaded, refresh before retrying.

Deletion is unavailable for the default branch, the branch used by Git HEAD, refs used by open pull requests, fork networks, and GitHub mirrors. Matching active deletion protections also apply; only an unconditional bypass can skip them. Other review requirements do not themselves prevent deletion.

An accepted request may still be pending. If the response is lost or the outcome is uncertain, use Deletion activity or the CLI's ref-deletion commands to inspect the existing operation. Inspection does not start another deletion. Only the account that started it, with current repository write access, can inspect the operation.

Restoring a deleted branch

In General settings, expand Deleted branches, search retained branches, and choose Restore to recreate a branch at its recorded commit. You need repository write access. A branch with the same name must not already exist, and the retained branch data must still be available and unchanged.

An accepted restore may still be pending. Use Check restore status to inspect it; the page reports Branch restored after confirmation. This workflow restores retained branches, not tags or deleted repositories.

Read as MarkdownGitCafe documentation
Documentation