Мне нужно создать aws codepipeline webhook для github, используя terraform, который будет фильтровать события, поступающие из 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 "Как-нибудь перезагрузить ядро!"