kuma-cli 0.7.0

CLI tool for managing and interacting with Uptime Kuma
#### []HEADER

<div align="center" width="100%">
    <p>
        <a href="https://github.com/BigBoot/AutoKuma/actions"><img alt="GitHub Actions Workflow Status" src="https://img.shields.io/github/actions/workflow/status/BigBoot/AutoKuma/docker-build-push.yml?style=flat&logo=rust&link=https%3A%2F%2Fgithub.com%2FBigBoot%2FAutoKuma%2Factions"></a>
        <a href="https://github.com/BigBoot/AutoKuma/releases/latest"><img alt="GitHub Tag" src="https://img.shields.io/github/v/tag/BigBoot/AutoKuma?logo=github&label=latest"></a>
        <a href="https://ghcr.io/bigboot/autokuma"><img alt="GHCR Tag" src="https://img.shields.io/github/v/tag/BigBoot/AutoKuma?logo=docker&logoColor=white&label=GHCR"></a>
    </p>
    <p>
        <b>
            <a href="https://crates.io/crates/autokuma">AutoKuma</a>
            &nbsp&nbsp
            <a href="https://crates.io/crates/kuma-cli">Kuma CLI</a> 
            &nbsp&nbsp
            <a href="https://crates.io/crates/kuma-client">Kuma Client</a> 
        </b>
    </p>
</div>

# Kuma CLI 🤖 <a href="https://crates.io/crates/kuma-cli"><img alt="Crates.io Version" src="https://img.shields.io/crates/v/kuma-cli?logo=rust&color=blue"></a>

Kuma CLI is a Command Line Interface (CLI) tool for managing and interacting with [Uptime Kuma](https://uptime.kuma.pet/). With Kuma CLI you can easily configure, monitor and manage your applications from the command line.

## Features 🎯
- [x] Commands: `kuma monitor`
    - [x] `add`
    - [x] `delete`
    - [x] `edit`
    - [x] `list`
    - [x] `get`
    - [x] `pause`
    - [x] `resume`
- [x] Commands : `kuma tag`
    - [x] `add`
    - [x] `delete`
    - [x] `edit`
    - [x] `ls`
    - [x] `get`
- [x] Commands : `kuma notification`
    - [x] `add`
    - [x] `delete`
    - [x] `edit`
    - [x] `ls`
    - [x] `get`
- [x] Commands : `kuma maintenance`
    - [x] `add`
    - [x] `delete`
    - [x] `edit`
    - [x] `ls`
    - [x] `get`
    - [x] `pause`
    - [x] `resume`
- [x] Commands : `kuma status-page`
    - [x] `add`
    - [x] `delete`
    - [x] `edit`
    - [x] `ls`
    - [x] `get`
- [x] Commands : `kuma docker-host`
    - [x] `add`
    - [x] `delete`
    - [x] `edit`
    - [x] `ls`
    - [x] `get`
    - [x] `test`

## How to Install 📦

Binaries for Windows, Linux and Mac OS are provided for [GitHub Releases](https://github.com/BigBoot/AutoKuma/releases/latest) and additionally Kuma CLI can be installed using `cargo`:

```bash
cargo install --git https://github.com/BigBoot/AutoKuma.git kuma-cli
```

## Usage 💡

```bash
Usage: kuma [OPTIONS] [COMMAND]

Commands:
  monitor       Manage Monitors
  notification  Manage Notifications
  tag           Manage Tags
  maintenanc    Manage Maintenances
  help          Print this message or the help of the given subcommand(s)

Options:
      --url <URL>
          The URL AutoKuma should use to connect to Uptime Kuma
      --username <USERNAME>
          The username for logging into Uptime Kuma (required unless auth is disabled)
      --password <PASSWORD>
          The password for logging into Uptime Kuma (required unless auth is disabled)
      --mfa-token <MFA_TOKEN>
          The MFA token for logging into Uptime Kuma (required if MFA is enabled)
      --header <KEY=VALUE>
          Add a HTTP header when connecting to Uptime Kuma
      --connect-timeout <CONNECT_TIMEOUT>
          The timeout for the initial connection to Uptime Kuma [default: 30.0]
      --call-timeout <CALL_TIMEOUT>
          The timeout for executing calls to the Uptime Kuma server [default: 30.0]
      --format <OUTPUT_FORMAT>
          The output format [default: json] [possible values: json, toml, yaml]
      --pretty
          Wether the output should be pretty printed or condensed
  -h, --help
          Print help
  -V, --version
          Print version
```


## Configuration 🔧

All configuration options can also be specified as environment variables:
```
KUMA__URL="http://localhost:3001/"
KUMA__USERNAME="<username>"
KUMA__PASSWORD="<password>"
...
```

Additionally Kuma CLI will read configuration from a file named `kuma.{toml,yaml,json}` in the current directory and in the following locations:
| Platform | Value                                                            | Example                                                   |
|----------|------------------------------------------------------------------|-----------------------------------------------------------|
| Linux    | `$XDG_CONFIG_HOME`/kuma/config.{toml,yaml,json}                  | /home/alice/.config/kuma/config.toml                      |
| macOS    | `$HOME`/Library/Application Support/kuma/config.{toml,yaml,json} | /Users/Alice/Library/Application Support/kuma/config.toml |
| Windows  | `%LocalAppData%`\\\kuma\\\config.{toml,yaml,json}                    | C:\\\Users\\\Alice\\\AppData\\\Local\\\kuma\\\config.toml             |

An example `.toml` config could look like the following:
```toml
url = "http://localhost:3001/"
username = "<username>"
password = "<password>"
```