github.com/drone/go-convert@v0.0.0-20240307072510-6bd371c65e61/convert/github/yaml/environment.go (about) 1 package yaml 2 3 import "errors" 4 5 type Environment struct { 6 Name string `yaml:"name"` 7 URL string `yaml:"url,omitempty"` 8 } 9 10 func (v *Environment) UnmarshalYAML(unmarshal func(interface{}) error) error { 11 var out1 string 12 if err := unmarshal(&out1); err == nil { 13 v.Name = out1 14 return nil 15 } 16 var out2 struct { 17 Name string `yaml:"name"` 18 URL string `yaml:"url,omitempty"` 19 } 20 if err := unmarshal(&out2); err == nil { 21 *v = out2 22 return nil 23 } 24 return errors.New("failed to unmarshal environment") 25 }