hanzoai/ci keeps the reusable at .github/workflows/build.yml — the one path both planes resolve, since github.com reads a reusable only from there and the forge reads it too. The v1 tag moved with it, so a caller still naming .hanzo/workflows/build.yml asks for a blob that is not in the tree: InsertRun: read hanzoai/ci@v1:.hanzo/workflows/build.yml: object does not exist The caller itself stays at .hanzo/workflows/cicd.yml on purpose: github.com has no runner for these labels, so a caller placed there could never be scheduled. Co-authored-by: Hanzo Dev <[email protected]>
eval
An arbitrary expression evaluator for Go. Parses a string expression once into an
EvaluableExpression, then evaluates it repeatedly against a set of named parameters,
returning a single interface{} result.
Supports arithmetic, comparison, logical, bitwise, ternary, and string operators;
regular-expression matching; membership (in); parameter accessors that reach into
struct fields and map keys (obj.Field); and user-defined functions.
expr, err := eval.NewEvaluableExpression("foo > 0 && bar in ('a', 'b')")
result, err := expr.Evaluate(map[string]interface{}{"foo": 1, "bar": "a"})
// result == true
For a stable set of custom functions, build with
eval.NewEvaluableExpressionWithFunctions. To supply parameters lazily, pass any
value implementing the Parameters interface to Eval.
Provenance
Taken from github.com/casbin/govaluate v1.3.0, itself a fork of
github.com/Knetic/govaluate by George Lester. See NOTICE for the full lineage and
LICENSE for the MIT terms.