in cli/bptest/blueprint_connection_source_version_rule.go [18:46]
func (r *BlueprintConnectionSourceVersionRule) check(ctx lintContext) error {
// Check if Spec or Interfaces is nil to avoid null pointer dereference
if ctx.metadata == nil || ctx.metadata.Spec == nil || ctx.metadata.Spec.Interfaces == nil {
fmt.Println("metadata, spec, or interfaces are nil")
return nil
}
for _, variable := range ctx.metadata.Spec.Interfaces.Variables {
if variable == nil {
continue // Skip if variable is nil
}
for _, conn := range variable.Connections {
if conn == nil || conn.Source == nil {
continue // Skip if connection or source is nil
}
if conn.Source.Version != "" {
_, err := version.NewConstraint(conn.Source.Version)
if err != nil {
return fmt.Errorf("invalid version: %w", err)
}
return nil
}
}
}
return nil
}