# noust push

Deploy an application with git push, to a repository on this server.

```bash
noust push [OPTIONS] COMMAND [ARGS]...
```

Subcommands: [`disable`](#noust-push-disable), [`enable`](#noust-push-enable), [`key`](#noust-push-key), [`list`](#noust-push-list), [`refresh`](#noust-push-refresh), [`setup`](#noust-push-setup), [`show`](#noust-push-show), [`status`](#noust-push-status)

## noust push disable

Make an application stop deploying from git push.

```bash
noust push disable [OPTIONS] DOMAIN
```

Arguments: `domain`

| Option | What it does | Default |
|---|---|---|
| `--delete-repository` | Also delete the repository (the code pushed to it). |  |
| `--json` | Print the result as JSON. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust push enable

Make an application deploy from git push.

```bash
noust push enable [OPTIONS] DOMAIN
```

Arguments: `domain`

| Option | What it does | Default |
|---|---|---|
| `--branch` | The branch a push deploys (default: the pinned one, or main). |  |
| `--key-file` | A public key that may push (a .pub file; '-' reads standard input). |  |
| `--key` | A public key that may push, as its line. |  |
| `--label` | What to call that key: laptop, ci... |  |
| `--host` | The server's name, for the remote (default: DOMAIN). |  |
| `--json` | Print the deployment as JSON. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust push key

The keys that may push to an application's repository (one key per application).

```bash
noust push key [OPTIONS] COMMAND [ARGS]...
```

Subcommands: [`add`](#noust-push-key-add), [`list`](#noust-push-key-list), [`remove`](#noust-push-key-remove)

## noust push key add

Let a key push to an application's repository.

```bash
noust push key add [OPTIONS] DOMAIN LABEL
```

Arguments: `domain`, `label`

| Option | What it does | Default |
|---|---|---|
| `--key-file` | The public key (a .pub file; '-' reads stdin). |  |
| `--key` | The public key, as its line. |  |
| `--json` | Print the keys as JSON. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust push key list

List the keys that may push to an application.

```bash
noust push key list [OPTIONS] DOMAIN
```

Arguments: `domain`

| Option | What it does | Default |
|---|---|---|
| `--json` | Print the keys as JSON. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust push key remove

Take a key's permission to push to an application away.

```bash
noust push key remove [OPTIONS] DOMAIN LABEL_OR_FINGERPRINT
```

Arguments: `domain`, `which`

| Option | What it does | Default |
|---|---|---|
| `--json` | Print the keys that are left as JSON. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust push list

List the applications that deploy from git push.

```bash
noust push list [OPTIONS]
```

| Option | What it does | Default |
|---|---|---|
| `--json` | Print the applications as JSON. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust push refresh

Write an application's hook and its settings again.

```bash
noust push refresh [OPTIONS] DOMAIN
```

Arguments: `domain`

| Option | What it does | Default |
|---|---|---|
| `--json` | Print the deployment as JSON. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust push setup

Prepare this server to take git pushes (once, as root).

```bash
noust push setup [OPTIONS]
```

| Option | What it does | Default |
|---|---|---|
| `--json` | Print the result as JSON. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust push show

Show how an application's push deployment stands: branch, remote, keys, hook.

```bash
noust push show [OPTIONS] DOMAIN
```

Arguments: `domain`

| Option | What it does | Default |
|---|---|---|
| `--host` | The server's name, for the remote (default: DOMAIN). |  |
| `--json` | Print the deployment as JSON. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

## noust push status

Say whether this server takes git pushes, and what stops it.

```bash
noust push status [OPTIONS]
```

| Option | What it does | Default |
|---|---|---|
| `--json` | Print the status as JSON. |  |
| `--reason` | Why this change is made (a change reference, a ticket). Recorded with the command in the audit log; required only where a compliance framework asks for it (ENS) or security.change_reasons is on. |  |

