我需要使用terraform为github创建一个aws codepipeline webhook,它将把来自github的事件过滤为仅来自特定分支的事件以及添加,修改或删除的文件前缀(以字符串形式列出)在$.head_commit
路径中。
我在分支工作上设置了过滤器,将json_path
设置为$.ref
和match="refs/head/development"
,但是我不清楚用于匹配字符串中的字符串值的语法是什么添加,修改和删除列表。我已经尝试了Json-Path上列出的几个示例,但到目前为止,我还无法生成有效的matchEquals
值。
基本上,我正在尝试使用此过滤器的版本,其中 mypath 是我试图在push事件的有效负载中找到存在的地方:
"filters": [
{
"jsonPath": "$.head_commit.modified",
"matchEquals": "^.*mypath.*$"
},
{
"jsonPath": "$.ref",
"matchEquals": "refs/heads/development"
}
]
这是github发送的有效内容的简化版本
{
"ref": "refs/heads/development",
"head_commit": {
"message": "Update README.md",
"timestamp": "2019-06-26T10:03:38-07:00",
"added": [
],
"removed": [
],
"modified": [
"packages/mypath/README.md"
]
}
}
更新6/27/2019 打开支持凭单后,事实证明当前AWS在matchEquals属性中不支持正则表达式。何时添加该标准尚无定论,但已经有一个现有的功能要求来支持它。
计划c“以某种方式重新启动核心!”