trustblock-cli 0.9.0

human-friendly console utility that helps to interact with Trustblock from command line.
Documentation
Trustblock CLI
==============

Trustblock CLI is a user-friendly command-line utility that helps you interact with Trustblock and publish audit reports.
Refer to the [Trustblock CLI documentation](https://docs.trustblock.run/technical-documentation/publish-an-audit#using-our-cli) for more detailed information.

Installation
------------

If you have cargo installed, you can install our CLI via:

```bash
cargo install trustblock-cli
```

For other installation methods please refer to: 

```bash
https://github.com/Trustblock-Inc/trustblock-cli/releases
```
Usage
-----

To see available subcommands, use the `help` flag:

```bash
trustblock help
```

For more information and help with specific subcommands, use the `--help` flag:

```bash
trustblock <subcommand> --help
```

### Setup

Before publishing an audit, run the following command to initialize the `~/.trustblock/.env` file:

```bash
trustblock init
```

Next, add your private key from the whitelisted wallet and JWT to the `~/.trustblock/.env` file. You can obtain an API key by navigating to your profile and clicking the "Edit my profile" button on the Trustblock website after authentication.

Note: Trustblock CLI can still be used without adding data to the `.env` file, as long as the required information is passed as arguments.

### Audit Publishing

To publish an audit, you can either attach pdf file or specify a web audit URL:

```bash
-r, --report-pdf <AUDIT_REPORT_PDF_FILE>
-u, --report-url <AUDIT_REPORT_URL>
```

Example: 

```bash
trustblock publish-audit -a audit.json -r ./Audit_Report.pdf
```

```bash
trustblock publish-audit -a audit.json -u https://trustblock.run/my_audit
```

You can obtain an example _audit.json_ file from https://github.com/Trustblock-Inc/trustblock-cli/blob/main/src/data/audit.json. You should fill in the fields with the appropriate information from your audit.


To include api key and private key:

```bash
-k, --api-key
-p, --private-key
```

To also publish to Smart Contracts, add the `--publish-sc` flag:

```bash
 -s, --publish-sc
```

Commands
--------

- `publish-audit`: Publishes an audit to Trustblock.
- `init`: Initializes the `.trustblock` folder.
- `clean`: Cleans the `.trustblock` folder.
- `help`: Print this message or the help of the given subcommand(s).

Audit JSON Schema
--------
```json
{
  "project": {
    "name": String,
    "links": {
      "website": URL String,
      "twitter": URL String
    },
    "contact": {
      "email": Email String
    }
  },
  "issues": {
    "FIXED": {
      "LOW": uint,
      "MEDIUM": uint,
      "HIGH": uint,
      "CRITICAL": uint
    },
    "RISK_ACCEPTED": {
      "LOW": uint,
      "MEDIUM": uint,
      "HIGH": uint,
      "CRITICAL": uint
    }
  },
    "tags": [ "TOKEN" | "FINANCE" | "COLLECTIBLES" | "GAMING" | "GOVERNANCE" | "SOCIAL" | "OTHER"],
    "contracts": [
        {
            "evmAddress": Evm Address String,
            "chain": "ETHEREUM" | "POLYGON" | "AVALANCHE" | "BNBCHAIN"
        }
    ],
    "description": {
        "summary": Markdown String
    },
    "name": String
}
```