Commit d00925d
authored
Mark 0.1.0 (#133)
# 0.1.0 / 2023-10-03
### Added
- ctfcli has been separated into two main modules `cli` and `core`. The `core` module now packages logic previously found inside `utils`, wrapped into classes.
- The classes in the `core` module will only print out warnings instead of interrupting the whole process. Everything else will throw exceptions which can be caught and handled however desired
- `cli` and `core` internal modules have type hints
- Improved error messages
- Unit tests have been added for the entire `core` module
- ctfcli will now ask to initialize a new project if one does not exist
- Added `--hidden` to `ctf challenge install` which will deploy the challenge / challenges in a hidden state regardless of their `challenge.yml` value.
- Added `ctf challenge edit <name>` and `ctf challenge edit <name> --dockerfile` to open challenge.yml or Dockerfile for that challenge
- Added aliases under `ctf templates` and `ctf plugins` for `dir` (`path`) and for `view` (`show`)
- Progress bars for `ctf challenge deploy` / `ctf challenge install` / `ctf challenge sync`
- `ctf challenge deploy` will now deploy ALL deployable challenges if a specific challenge is not specified
- For the SSH and Registry deployments, to facilitate this behaviour the challenge name will be automatically appended. So the host should be for example: `registry://registry.example.com/example-project` and the challenge name will be appended for a full location.
- `ctf challenge deploy` will now also automatically login to the registry with Cloud and Registry deployments.
- For cloud deployments the instance url must be ctfd assigned (e.g. example.ctfd.io) - this is because to log-in to the registry we require a username like `[email protected]`. The deployment will use the access token as the password.
- For registry deployment it will look for the `username` and `password` keys inside a `[registry]` section in the project config file.
- ctfcli will read a `LOGLEVEL` environment variable to enable DEBUG logging has been added
### Fixed
- When syncing a challenge to a remote instance, state specified in challenge.yml will now be ignored to prevent accidental challenge leaking
- The CLI will now exit with a 0 if everything went right, and 1 if something went wrong.
- With `install`/`sync`/`deploy` - exit code will be 1 if ANY of the challenges failed to `install`/`sync`/`deploy`.
### Changed
- Built using poetry and `pyproject.toml`
- `python-fire` has been updated to 0.5.0
### Removed
- Removed the `ctf challenge finalize` command1 parent 3c78ec4 commit d00925d
1 file changed
+36
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
3 | 39 | | |
4 | 40 | | |
5 | 41 | | |
| |||
0 commit comments