diff --git a/docs/config-v3-documentation.md b/docs/config-v3-documentation.md index 52c2a054..39687530 100644 --- a/docs/config-v3-documentation.md +++ b/docs/config-v3-documentation.md @@ -53,8 +53,8 @@ These can be basic: - False values: `0`, `False`, `false`, `f`, `no`, `n`, `off` - enum — One of the values specified in the key description. - 'string literal' -- run_ref — String referencing a [`[run]`](#run) section. Must match the regex `[A-Za-z][A-Za-z0-9/_-]*`. -- build_ref — String referencing a [`[build]`](#build) section. Must match the regex `[A-Za-z][A-Za-z0-9/_-]*`. +- run_ref — String referencing a [`[run]`](#run) section. Must match the regex `[A-Za-z0-9][A-Za-z0-9./_^+-]*`. +- build_ref — String referencing a [`[build]`](#build) section. Must match the regex `[A-Za-z0-9][A-Za-z0-9./_^+-]*`. !!! info Through auto-expansion and auto-generation run_ref and build_ref values can interpreted as paths. diff --git a/pisek/config/task_config.py b/pisek/config/task_config.py index 1665f46c..6ad2aa80 100644 --- a/pisek/config/task_config.py +++ b/pisek/config/task_config.py @@ -106,7 +106,7 @@ def _validate_program_name(key: str, value: str) -> str: ) for char in value: # Be careful, the hyphen has to be last - if not re.fullmatch("[A-Za-z0-9./_-]", char): + if not re.fullmatch("[A-Za-z0-9./_^+-]", char): raise PydanticCustomError( f"invalid_{error_key}", f"{key.capitalize()} must not contain '{char}'",