MCPcopy
hub / github.com/go-task/task / areTaskRequiredVarsAllowedValuesSet

Method areTaskRequiredVarsAllowedValuesSet

requires.go:183–211  ·  view source on GitHub ↗
(t *ast.Task)

Source from the content-addressed store, hash-verified

181}
182
183func (e *Executor) areTaskRequiredVarsAllowedValuesSet(t *ast.Task) error {
184 if t.Requires == nil || len(t.Requires.Vars) == 0 {
185 return nil
186 }
187
188 var notAllowedValuesVars []errors.NotAllowedVar
189 for _, requiredVar := range t.Requires.Vars {
190 varValue, _ := t.Vars.Get(requiredVar.Name)
191
192 enumValues := getEnumValues(requiredVar.Enum)
193 value, isString := varValue.Value.(string)
194 if isString && len(enumValues) > 0 && !slices.Contains(enumValues, value) {
195 notAllowedValuesVars = append(notAllowedValuesVars, errors.NotAllowedVar{
196 Value: value,
197 Enum: enumValues,
198 Name: requiredVar.Name,
199 })
200 }
201 }
202
203 if len(notAllowedValuesVars) > 0 {
204 return &errors.TaskNotAllowedVarsError{
205 TaskName: t.Name(),
206 NotAllowedVars: notAllowedValuesVars,
207 }
208 }
209
210 return nil
211}
212
213func getEnumValues(e *ast.Enum) []string {
214 if e == nil {

Callers 1

RunTaskMethod · 0.95

Calls 3

getEnumValuesFunction · 0.85
NameMethod · 0.80
GetMethod · 0.45

Tested by

no test coverage detected