首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GenericWebhookTrigger未触发特定构建

GenericWebhookTrigger未触发特定构建
EN

Stack Overflow用户
提问于 2019-10-03 22:01:31
回答 2查看 2K关注 0票数 2

我有正常运行的詹金斯和以下规格的管道。我将管道配置设置为使用通用Web钩子触发器,其配置与管道中指定的配置相同。在我的gitbucket存储库中,web钩子也被配置为只发送push触发器。但是当我测试它时,它的响应是200,身体的响应是“触发”的:false。

管道:

代码语言:javascript
复制
pipeline {
    agent any
    triggers {
    GenericTrigger(
     genericVariables: [
        [key: 'ref', value: '$.ref']
     ],
     genericHeaderVariables: [
        [key: 'X-GitHub-Event', regexpFilter: '']
     ],

     causeString: 'Triggered on $ref',

     token: '123456',

     printContributedVariables: true,
     printPostContent: true,

     silentResponse: false,

     regexpFilterText: '$ref',
     regexpFilterExpression: 'refs/heads/' + 'master'
    )
  }

    stages{...

来自gitbucket web钩子的响应体:

代码语言:javascript
复制
{"status":"ok","data":{"triggerResults":{"testePipeline":{"id":0,"regexpFilterExpression":"refs/heads/master","regexpFilterText":"","resolvedVariables":{"ref":"","x_github_event":"","x_github_event_0":""},"triggered":false,"url":""}}}}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-13 12:24:23

我有同样的问题,

代码语言:javascript
复制
{
  "jobs": {
    "Test": {
      "regexpFilterExpression": "(refs/heads/Dev|refs/heads/master)",
      "triggered": false,
      "resolvedVariables": {
        "ref": ""
      },
      "regexpFilterText": "",
      "id": 0,
      "url": ""
    }
  },
  "message": "Triggered jobs."
}

原因是,我的内容类型不是Github中的application/json。修正了它,构建运行良好。

票数 1
EN

Stack Overflow用户

发布于 2019-10-22 14:35:34

在我的例子中,问题就在GitLab方面。使用此配置:

代码语言:javascript
复制
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/.*'
        )
    }

我可以使用标记Push web钩子,如果我从终端上按了一个标签,或者在GitLab WebUI上按下了一个标签,但是不能通过测试的“标签按钮”web钩子按钮来做同样的事情。

事实证明,这是已知的问题:https://gitlab.com/gitlab-org/gitlab-foss/issues/52556请求头在两种情况下都是相同的推送。

测试推触发后请求标头和主体的一部分:

代码语言:javascript
复制
Content-Type: application/json
X-Gitlab-Event: Push Hook

{
  "object_kind": "push",
  "event_name": "push",
  "before": "ab5183fcf2d4e698f1cf6228d0c1532ac7815bcc",
  "after": "3045da963cc63720c3bbc3c1217ecf2708035bfe",
  "ref": "refs/heads/master",
.
.
.

在测试标签按下触发器后,请求标头和主体的一部分:

代码语言:javascript
复制
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。当然,“触发”:如果过滤器正常工作,可能会出现假。例如,如果我发送一个常规的push事件,结果将是一个成功的假触发器状态。这是正确的,因为触发器工作良好,但你的过滤器也。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58227439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档