表达式格式
筛选条件使用 Lisp 风格的 S-expression:(操作符 参数 ...)。表达式返回 true(处理事件)或 false(忽略事件)。字符串使用双引号;数字和布尔值不加引号;列表用括号括起。
使用以点分隔的路径引用字段,例如 "action"、"issue.state" 或 "pull_request.head.ref"。引用数组对象中的字段时使用 *,例如 "tags.*.name"。字段路径区分大小写,且必须与 JSON 负载一致。
操作符
“不等于”可写作
(not (eq "field" value))。starts-with 用于字符串;数值操作符需要数值参数。
测试筛选条件
使用应该命中和应该被拒绝的样例负载进行测试,并核对字段名称、类型、大小写、嵌套路径和数组内容。比较是类型安全的:不兼容的类型结果为 false。字段缺失或为 null 时,所有操作都返回 false;唯一例外是(not (exists "field")),它会返回 true。has-all 或 has-any 使用空列表时返回 false。表达式中的空格和换行不会影响结果。