Tags: CTFd/ctfcli
Tags
Mark 0.1.4 (#182) # 0.1.4 / 2025-04-29 ### Added - Added support for `ctf instance` with the `ctf instance config` command which can be used to `get` and `set` configuration on CTFd - Added `ctf media add`, `ctf media rm`, `ctf media url` - Allows ctfcli repos to manage files locally and reference the actual server URLs of media files in Pages - Adds concept of replacing placeholders like `{{ media/ctfd.png }}` with the actual URL on the server - Added the `attribution` field to challenge.yml - Added the `next` field to challenge.yml - Added ability to anoymize challenges while specifying prerequisites - Added specifying CTFd instance URL and access token via envvars: `CTFCLI_URL`, `CTFCLI_ACCESS_TOKEN` ### Fixed - Fix issue with managing challenges with an empty files section - Fix issue where images could not be deployed due to being named incorrectly
Mark 0.1.3 (#154) # 0.1.3 / 2024-08-20 ### Added - Added support for `git subrepo` instead of only `git subtree` - Added the `--create` switch to `ctf challenge mirror` to create local copies of challenges that exist on a remote CTFd instance ### Fixed - `ctf challenge {push, pull}` will now push / pull all challenges instead of the challenge in the current working directory. ### Changed - Use `--load` switch as part of docker build to support alternate build drivers
Mark 0.1.1 (#140) # 0.1.1 / 2023-12-11 ### Added - Added `ctf challenge mirror` command to pull changes from the remote CTFd instance into the local project ### Fixed - Properly include challenge.yml when generating a challenge from a template ### Changed - No longer require a ctfcli project to run all `ctf challenge` (e.g. `new`, `format`, `lint`)
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` command
Mark 0.0.13 (#128) # 0.0.13 / 2023-07-29 ### Added - Add env variable `CTFCLI_PLUGIN_DIR` to override the default plugin dir for development. - Add `--directory` argument to `ctfcli challenge add` - Can also be called as `ctf challenge add [email protected]:repo.git directory` - Useful for grouping challenges into separate directories like: `web/challenge1`. - `connection_info` specified in challenge.yml will be used instead of details generated by a deploy handler ### Fixed - Bump PyYAML version to 6.0.1
Mark 0.0.12 (#119) # 0.0.12 / 2023-06-25 ### Added - Add cloud deploy for hosted CTFd instances - Add the `protocol` field in the challenge.yml spec - Further define what other deployment methods should provide & return - Add the ability to add HTTP cookies to ctfcli requests via the config file ### Fixed - Allow ignoring category during challenge sync
Mark 0.0.11 (#103) # 0.0.11 / 2022-11-09 ### Added - Added a restart policy and container name to services deployed via ssh - Added `--yaml-path` to `ctf challenge add` to specify a specific `challenge.yml` path that will be added to the .ctf config ### Fixed - Fixed issue in `ctf templates list` where not all templates would be listed - Bumped version of dependencies to support Python 3.11 - Bumped `cookiecutter` to 2.1.1 - Bumped `requests` to 2.28.1 - Bumped `colorama` to 0.4.6
Mark 0.0.10 (#88) # 0.0.10 / 2022-03-07 ### Added - Add support for pages in event repos - Add the `ctf pages install` command that looks for markdown and html files with frontmatter in a special pages folder - Add `healthcheck` key in `challenge.yml` to specify a healthcheck script - Add `ctf challenge healthcheck [challenge_name]` - Add `ssl_verify` in the `.ctf/config` file to support SSL verification disabling. `ssl_verify` can be `true` or `false` or a string (specifying the trusted SSL certificates) - Adds a `--no-git` option to `ctf init` to skip git repo creation in event folder ### Changed - Allow empty string in CTFd URL and CTFd access token values for `ctf init` - `ctf init` will not attempt to create git repos when the event folder is in a git repo already - `ctf init <folder>` can now be used to create the event folder instead of creating the folder beforehand ### Fixed - Fix issue in `ctf challenge add` where challenges weren't being added to `.ctf/config` - Fix issue where plugins couldnt be installed if only pip3 was available
PreviousNext