in schema/v1/reference.go [23:48]
func (r *Reference) UnmarshalJSON(b []byte) error {
var raw map[string]interface{}
if err := json.Unmarshal(b, &raw); err != nil {
return err
}
_, gitDefined := raw["git"]
_, ociDefined := raw["oci"]
if gitDefined && ociDefined {
return fmt.Errorf("cannot use both git: and oci: fields, please specify only one step location")
}
if !gitDefined && !ociDefined {
return fmt.Errorf("field git: or oci: required")
}
type Plain Reference
var plain Plain
if err := json.Unmarshal(b, &plain); err != nil {
return err
}
*r = Reference(plain)
return nil
}