在 Jenkins 中获取 payload 参数
Get payload parameters in Jenkins
我是 Jenkins 的新手。我按照这个 help 来实现 Jenkins、Github 和 Webhook。
但是,我陷入了这个问题。我想在 Jenkins 中获取 payload 参数以检查更改、操作等信息...来自 payload json.
我写了一些脚本来测试。 ACTION
和 $payload
总是 returns 空
# !/bin/bash
ACTION=`echo $payload | php -r '$data = file_get_contents("php://stdin"); $json = json_decode($data, true); echo $json["action"];'`
我看了一些教程但没有成功。
您应该遵循几个步骤:
在 GitHub 中配置一个网络挂钩,您将通过它开始与 Jenkins 通信。通过转到您的 GitHub 存储库 --> 设置 --> Web-hooks 可以很容易地做到这一点。
将内容类型设为application/x-www-form-encoded。
- Select 事件作为推送事件。
- 在 Jenkins 服务器中创建一个名为 "payload" 的字符串参数。
- 按照步骤 3 GitHub 将能够将内容包装在这个变量中并将其发送给 Jenkins。
- 在 Jenkins 中,您可以在开始构建时读取 $payload 变量。
- 使用您选择的库
解析JSON
更简单的方法是在 Jenkins 中使用 Generic Webhook Trigger Plugin,无需额外的库来解析 JSON。
它可以使用 JSONPath 解析 JSON 中的任何值,并将其分配给构建中可用的变量。
我是 Jenkins 的新手。我按照这个 help 来实现 Jenkins、Github 和 Webhook。
但是,我陷入了这个问题。我想在 Jenkins 中获取 payload 参数以检查更改、操作等信息...来自 payload json.
我写了一些脚本来测试。 ACTION
和 $payload
总是 returns 空
# !/bin/bash
ACTION=`echo $payload | php -r '$data = file_get_contents("php://stdin"); $json = json_decode($data, true); echo $json["action"];'`
我看了一些教程但没有成功。
您应该遵循几个步骤:
在 GitHub 中配置一个网络挂钩,您将通过它开始与 Jenkins 通信。通过转到您的 GitHub 存储库 --> 设置 --> Web-hooks 可以很容易地做到这一点。
将内容类型设为application/x-www-form-encoded。
- Select 事件作为推送事件。
- 在 Jenkins 服务器中创建一个名为 "payload" 的字符串参数。
- 按照步骤 3 GitHub 将能够将内容包装在这个变量中并将其发送给 Jenkins。
- 在 Jenkins 中,您可以在开始构建时读取 $payload 变量。
- 使用您选择的库 解析JSON
更简单的方法是在 Jenkins 中使用 Generic Webhook Trigger Plugin,无需额外的库来解析 JSON。
它可以使用 JSONPath 解析 JSON 中的任何值,并将其分配给构建中可用的变量。