# Repository settings

Open **Settings → General** in a repository to change its details, visibility
and default branch, transfer it, restore deleted branches or delete it. The
**Settings** tab is shown to maintainers and admins.

## Edit the description and topics

Edit the description, homepage, topics and **Automatically delete head
branches**, then choose **Save changes**. **Discard** restores the saved
values.

```sh
cafe repo edit --description "A parser" --topics parser,rust
```

## Change visibility

Admins can switch a repository between public and private. Making it public
lets anyone read its code, issues and pull requests.

```sh
cafe repo edit --visibility public --yes
```

For a repository synchronized with GitHub, you must be able to renew its GitHub
authorization, and a private GitHub source must stay private. Forks and
generic Git mirrors cannot change visibility.

## Change the default branch

The default branch is what people see when they open or clone the repository,
and the base for new pull requests. Choose an existing branch in General
settings, or run:

```sh
cafe repo edit --default-branch trunk
```

New repositories start with `main` unless you chose another name. Forks
inherit their parent's default branch.

## Transfer a repository

Choose **Transfer repository**, enter the new owner, an optional new name and
the current full name to confirm. You need permission at both the current and
the new owner. Or run `cafe repo transfer owner/repo new-owner --yes`.

After a transfer:

- Update your Git remote to the new address:
  `git remote set-url origin https://git.cafe/new-owner/repo`.
- Review access: team access from the old organization is removed; direct
  collaborators keep theirs.
- Reconnect GitHub synchronization under the new owner; it is paused by the
  transfer.

## Restore a deleted branch

Expand **Deleted branches**, find the branch and choose **Restore**. It is
recreated at the commit it pointed to when it was deleted. You need write
access, and no branch with that name may exist. Or run
`cafe branch restore <name>`.

Tags and deleted repositories cannot be restored.

## Delete a repository

Only the owner can delete a repository.

1. Under **Delete this repository**, choose **Delete repository**.
2. Type the full `owner/name`.
3. Choose **I understand, delete this repository**.

The repository disappears immediately and cannot be restored.
