You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: validate taskRef.apiVersion format for custom tasks
Add validation to ensure taskRef.apiVersion follows the correct format
(group/version) when specified. Previously, invalid apiVersion values
like 'invalid-api-version' were accepted, causing PipelineRuns to create
unhandled CustomRuns that would timeout. Now Pipeline creation fails
immediately with a clear error message when an invalid apiVersion is provided.
Fixes#9044
errs=errs.Also(apis.ErrInvalidValue("custom task spec must specify kind", "taskSpec.kind"))
346
359
}
347
-
ifpt.TaskRef!=nil&&pt.TaskRef.APIVersion=="" {
360
+
// Validate apiVersion format for custom tasks
361
+
ifpt.TaskRef!=nil&&pt.TaskRef.APIVersion!="" {
362
+
if!isValidAPIVersion(pt.TaskRef.APIVersion) {
363
+
errs=errs.Also(apis.ErrInvalidValue(fmt.Sprintf("invalid apiVersion format %q, must be in the format \"group/version\"", pt.TaskRef.APIVersion), "taskRef.apiVersion"))
364
+
}
365
+
} elseifpt.TaskRef!=nil {
348
366
errs=errs.Also(apis.ErrInvalidValue("custom task ref must specify apiVersion", "taskRef.apiVersion"))
349
367
}
350
-
ifpt.TaskSpec!=nil&&pt.TaskSpec.APIVersion=="" {
368
+
ifpt.TaskSpec!=nil&&pt.TaskSpec.APIVersion!="" {
369
+
if!isValidAPIVersion(pt.TaskSpec.APIVersion) {
370
+
errs=errs.Also(apis.ErrInvalidValue(fmt.Sprintf("invalid apiVersion format %q, must be in the format \"group/version\"", pt.TaskSpec.APIVersion), "taskSpec.apiVersion"))
371
+
}
372
+
} elseifpt.TaskSpec!=nil {
351
373
errs=errs.Also(apis.ErrInvalidValue("custom task spec must specify apiVersion", "taskSpec.apiVersion"))
errs=errs.Also(apis.ErrInvalidValue("custom task spec must specify kind", "taskSpec.kind"))
351
364
}
352
-
ifpt.TaskRef!=nil&&pt.TaskRef.APIVersion=="" {
365
+
// Validate apiVersion format for custom tasks
366
+
ifpt.TaskRef!=nil&&pt.TaskRef.APIVersion!="" {
367
+
if!isValidAPIVersion(pt.TaskRef.APIVersion) {
368
+
errs=errs.Also(apis.ErrInvalidValue(fmt.Sprintf("invalid apiVersion format %q, must be in the format \"group/version\"", pt.TaskRef.APIVersion), "taskRef.apiVersion"))
369
+
}
370
+
} elseifpt.TaskRef!=nil {
353
371
errs=errs.Also(apis.ErrInvalidValue("custom task ref must specify apiVersion", "taskRef.apiVersion"))
354
372
}
355
-
ifpt.TaskSpec!=nil&&pt.TaskSpec.APIVersion=="" {
373
+
ifpt.TaskSpec!=nil&&pt.TaskSpec.APIVersion!="" {
374
+
if!isValidAPIVersion(pt.TaskSpec.APIVersion) {
375
+
errs=errs.Also(apis.ErrInvalidValue(fmt.Sprintf("invalid apiVersion format %q, must be in the format \"group/version\"", pt.TaskSpec.APIVersion), "taskSpec.apiVersion"))
376
+
}
377
+
} elseifpt.TaskSpec!=nil {
356
378
errs=errs.Also(apis.ErrInvalidValue("custom task spec must specify apiVersion", "taskSpec.apiVersion"))
0 commit comments