Before running testbed you will need to create a repositories file. It is a YAML file containing a list of repositories to test.
It also contains the parameters to the `llm-ls/getCompletions` request.
Repositories can either be sourced from your local storage or Github.
You can check the repositories files at the root of the crate to see the full structure.
### Generating holes
Before running testbed, you will need to generate a holes file for each repository. To generate a holes file run testbed with the `-g` option. You can specify the number of holes to make with `-n <number>`. It will take the list of repositories in your YAML file and create the associated files at the defined path.
testbed runs hole completions in parallel. It will first, and only once per repository, create a temporary directory, then copy or download the repository's source files to that location and finally run the setup commands. Then for each subsequent completion it will copy the content of the "setup directory" to a new temporary directory so that work can be parallelised.