1234567891011121314151617181920212223242526272829303132 |
- package filter
- import (
- "github.com/google/cel-go/cel"
- "github.com/pkg/errors"
- exprv1 "google.golang.org/genproto/googleapis/api/expr/v1alpha1"
- )
- var MemoFilterCELAttributes = []cel.EnvOption{
- cel.Variable("content", cel.StringType),
-
-
- cel.Variable("create_time", cel.StringType),
- cel.Variable("tag", cel.StringType),
- cel.Variable("update_time", cel.StringType),
- cel.Variable("visibility", cel.StringType),
- }
- func Parse(filter string, opts ...cel.EnvOption) (expr *exprv1.ParsedExpr, err error) {
- e, err := cel.NewEnv(opts...)
- if err != nil {
- return nil, errors.Wrap(err, "failed to create CEL environment")
- }
- ast, issues := e.Compile(filter)
- if issues != nil {
- return nil, errors.Errorf("failed to compile filter: %v", issues)
- }
- return cel.AstToParsedExpr(ast)
- }
|