В моем случае проблема была на стороне GitLab. С этой конфигурацией:
triggers {
GenericTrigger(
genericVariables: [
[key: 'user_name', value: '$.user_name'],
[key: 'checkout_sha', value: '$.checkout_sha'],
[key: 'web_url', value: '$.project.web_url'],
[key: 'ref', value: '$.ref'],
[key: 'tag', value: '$.ref', regexpFilter: 'refs/tags/'],
],
causeString: '$user_name pushed tag $tag to $web_url referencing $checkout_sha',
token: 'abc123',
printContributedVariables: true,
printPostContent: true,
silentResponse: false,
regexpFilterText: '$ref',
regexpFilterExpression: '^refs/tags/.*'
)
}
Я мог бы использовать Tag Push webhook, если бы я вытолкнул тег из своего терминала или переключился на GitLab WebUI, но не смог сделать то же самое черезtest «Tag Push» кнопка webhook.
Оказалось, что это известная проблема: https://gitlab.com/gitlab-org/gitlab-foss/issues/52556 В обоих случаях заголовок запроса будет одинаковым.
Заголовок запроса и часть тела после теста Push триггера:
Content-Type: application/json
X-Gitlab-Event: Push Hook
{
"object_kind": "push",
"event_name": "push",
"before": "ab5183fcf2d4e698f1cf6228d0c1532ac7815bcc",
"after": "3045da963cc63720c3bbc3c1217ecf2708035bfe",
"ref": "refs/heads/master",
.
.
.
Заголовок запроса и часть тела после теста Push триггера:
Content-Type: application/json
X-Gitlab-Event: Tag Push Hook
{
"object_kind": "push",
"event_name": "push",
"before": "ab5183fcf2d4e698f1cf6228d0c1532ac7815bcc",
"after": "3045da963cc63720c3bbc3c1217ecf2708035bfe",
"ref": "refs/heads/master",
.
.
.
Я настоятельно рекомендуюВы также проверяете заголовки запроса и body . Конечно, «срабатывает»: false может прийти, если ваши фильтры работают должным образом. Например, если я отправлю обычное push-событие, результатом будет успех с ложным состоянием триггера. Это правильно, потому что триггер работал хорошо, но ваш фильтр тоже.