在 Jenkins 中获取负载参数

问题描述 投票:0回答:2

我是詹金斯的新手。我按照这个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"];'`

我读了一些教程但没有成功。

github jenkins webhooks
2个回答
3
投票

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

  1. 在 GitHub 中配置一个 web-hook,您将通过它开始与 Jenkins 进行通信。这可以很容易地通过转到您的 GitHub 存储库 --> 设置 --> Web-hooks

  2. 将内容类型条目设置为

    application/x-www-form-encoded

  3. 选择事件为推送事件。

  4. 在 Jenkins Server 中创建一个名为

    payload
    的字符串参数。

  5. 按照第 3 步,GitHub 将能够将内容包装在该变量中并将其发送到 Jenkins。

  6. 在 Jenkins 中,您可以在构建启动时读取 $payload 变量。

  7. 使用您选择的库解析 JSON

参考文献


3
投票

更简单的方法是使用 Jenkins 中的Generic Webhook Trigger Plugin,无需额外的解析 JSON 的库。

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

© www.soinside.com 2019 - 2024. All rights reserved.