in pkg/gcv/validator.go [205:228]
func (v *Validator) ReviewAsset(ctx context.Context, asset *validator.Asset) ([]*validator.Violation, error) {
// Sanitize the ancestry path first, so that an asset that only provides ancestors
// can still pass ValidateAsset.
if err := asset2.SanitizeAncestryPath(asset); err != nil {
return nil, err
}
if err := asset2.ValidateAsset(asset); err != nil {
return nil, err
}
assetInterface, err := asset2.ConvertResourceViaJSONToInterface(asset)
if err != nil {
return nil, err
}
assetMapInterface := assetInterface.(map[string]interface{})
result, err := v.ReviewUnmarshalledJSON(ctx, assetMapInterface)
if err != nil {
return nil, err
}
return result.ToViolations()
}