# repo

manage an apt source

The check fails when the source file or the key file on the host is larger than 1 MiB.

## Keys

| Key | Type | Default | Meaning |
| --- | --- | --- | --- |
| [`name`](#repo.name) | string | required | file name in /etc/apt |
| [`url`](#repo.url) | string | required | without a user or a password |
| [`suite`](#repo.suite) | string | required | such as trixie |
| [`components`](#repo.components) | string or list of strings | - | such as main |
| [`key`](#repo.key) | string | - | key file in the recipe's files/ |
| [`key_content`](#repo.key_content) | string | - | key text, in place of key |

### `repo.name` {#repo.name}

string, required

File name in /etc/apt, of the source file and of the key file.

### `repo.url` {#repo.url}

string, required

Without a user or a password.

### `repo.suite` {#repo.suite}

string, required

Such as trixie. A flat suite ends in /.

### `repo.components` {#repo.components}

string or list of strings

Such as main. They are required, except for a flat suite, which has none.

### `repo.key` {#repo.key}

string

Key file in the recipe's files/ directory: an ASCII-armored OpenPGP public key. Download the vendor's key once and keep it in the project. A step has at most one of key and key\_content.

### `repo.key_content` {#repo.key_content}

string

Key text, in place of key: an ASCII-armored OpenPGP public key. A step has at most one of key and key\_content.

## Example

```yaml
- repo:
    name: nginx
    url: https://nginx.org/packages/debian
    suite: trixie
    components: [nginx]
    key: key.asc
```
