use Struct with custom datatype Gitlabrunner::Settings
Because this provide more constraints, this is less error prone:
type Gitlabrunner::Settings = Struct[{
registration-token => String[1],
tags => Optional[Array],
run-untagged => Boolean,
url => Stdlib::HTTPSUrl,
concurrent => Integer,
maximum-timeout => Integer,
limit => Integrer,
executor => Enum['docker','shell'],
executor-options => Hash,
}]
Some of them can be Optional
like tags
. I didn't checked others.
Changing this can produce some code refactoring. For instance i didn't cheked if the code uses the assert_type()
function.