in api/proposal.go [242:264]
func (k *KEPHandler) Validate(p *Proposal) []error {
var allErrs []error
if err := k.validateStruct(p); err != nil {
allErrs = append(allErrs, fmt.Errorf("struct-based validation: %w", err))
}
if errs := k.validateGroups(p); errs != nil {
allErrs = append(allErrs, errs...)
}
if errs := k.validatePRRApprovers(p); errs != nil {
allErrs = append(allErrs, errs...)
}
if err := p.Status.IsValid(); err != nil {
allErrs = append(allErrs, err)
}
if err := p.Stage.IsValid(); err != nil {
allErrs = append(allErrs, err)
}
if p.Status == ImplementedStatus && p.Stage != StableStage {
allErrs = append(allErrs, fmt.Errorf("status:implemented implies stage:stable but found: %v", p.Stage))
}
return allErrs
}