func decodeSelectors()

in pkg/signature/manifest.go [74:90]


func decodeSelectors(selectorsB64Encoded string) (selectors []string, err error) {
	decoded, err := base64.StdEncoding.DecodeString(selectorsB64Encoded)
	if err != nil {
		return selectors, err
	}
	selectors = filter(strings.Split(string(decoded), "\n"))
	for _, arg := range selectors {
		parsed, err := gojq.Parse(arg)
		if err != nil {
			return nil, err
		}
		if parsed.Term == nil || parsed.Term.Type != gojq.TermTypeIndex {
			return nil, errors.New("invalid selector(s) provided")
		}
	}
	return selectors, err
}