Config¶
The full config is read and inherited from many locations, including
$XDG_CONFIG_DIR/ick/ick.toml$XDG_CONFIG_DIR/ick/ick.toml.local$REPO/ick.toml$REPO/pyproject.toml
Any of these can define one or more [[ruleset]] sections, as detailed below.
For environments that have their own convention for settings files, a
repo_settings setting specifies a TOML or YAML file within the target repo
containing more configuration settings:
[tool.ick.repo_settings]
file = "my_settings.yaml"
key = "ick"
Then in the repo’s my_settings.yaml:
ick:
explicit_project_dirs:
- subproject1
- subproject2
outer_project_dirs:
- services/
The file can include a path into a subdirectory, and the key can be a dotted name to drill down through nested dictionaries in the file.
outer_project_dirs is for nested-project layouts: it tells project
discovery to keep looking beneath the listed directories even if a parent
project has already been found there.
Rulesets¶
A ruleset is a directory or repo url that contains more ick.toml files
that define hooks and can contain arbitrary other files that we
want to exist on the filesystem (for example, compiled Go binaries).
The syntax with the doubled square brackets is called an Array of Tables.
[[ruleset]]
url = "https://github.com/thatch/hobbyhorse"
prefix = "hh/"
(or in pyproject.toml)
[[tool.ick.ruleset]]
url = "https://github.com/thatch/hobbyhorse"
prefix = "hh/"
The .local one is in case the preceding one is provided by your employer, and
you want to add to it to flag more things with your own (personal) checks.