在Jenkins中获取有效负载参数

时间:2017-08-08 07:13:39

标签: github jenkins webhooks

我是詹金斯的新手。我按照help来实现Jenkins,Github和Webhook。

然而,我陷入了这个问题。我想在Jenkins中获取有效负载参数,以检查来自有效负载json的更改,操作等信息。

我写了一些脚本来测试。 ACTION$payload始终返回空

# !/bin/bash    
ACTION=`echo $payload | php -r '$data = file_get_contents("php://stdin"); $json = json_decode($data, true); echo $json["action"];'`

我阅读了一些教程但未成功。

2 个答案:

答案 0 :(得分:3)

在没有额外的库来解析JSON的情况下,更简单的方法就是在Jenkins中使用Generic Webhook Trigger Plugin

它可以使用JSONPath解析JSON中的任何值,并将其分配给构建中可用的变量。

答案 1 :(得分:1)

您应该遵循以下几个步骤:

  1. 在GitHub中配置Web挂钩,您将通过该挂钩开始与Jenkins通信。这可以通过访问您的GitHub存储库轻松实现 - >设置 - >网络挂钩。

  2. 将内容类型的条目设为application / x-www-form-encoded。

  3. 选择事件为推送事件。
  4. 在Jenkins服务器中使用" payload"。
  5. 的名称创建一个String参数
  6. 按照步骤3,GitHub可以将内容包装在此变量中并将其发送给Jenkins。
  7. 在Jenkins中,您可以在构建开始时读取$ payload变量。
  8. 使用您选择的库解析JSON
  9. 参考文献: How to process a github webhook payload in Jenkins? https://developer.github.com/webhooks/#payloads