我在Jenkins中使用generic-webhook-trigger来在Github中发生事件时触发job。看来我必须从大的JSON请求体中提取所需的每个变量,以将它们转换为env-var。是否可以将整个JSON主体传递给Jenkins作业并让它解析它?
generic-webhook-trigger
wa7juj8i1#
您可以通过将整个正文赋给特定变量,然后在代码中将其作为Json读取并自行解析,来实现您想要的效果。例如,如果您的有效负载(收到的帖子内容)是:
{ "ref": "refs/heads/master", "head_commit": { "committer": { "name": "ido", "email": "ido@test.com" } } }
您可以在通用webhook配置中定义一个名为payload的参数,将该参数的 expression 设置为$,并设置 expressionTypeJSONPath,当触发作业时,该参数将包括接收到的帖子内容的全部内容。然后您可以自己解析它:
payload
$
JSONPath
def payloadMap = readJSON text: payload println "ref value is: ${payloadMap .ref}" println "committer name is: ${payloadMap.head_commit.committer.name}"
您可以看到更多使用generic-webhook-trigger配置插件Here的高级示例,尤其是与您的需求更相关的This one。
1条答案
按热度按时间wa7juj8i1#
您可以通过将整个正文赋给特定变量,然后在代码中将其作为Json读取并自行解析,来实现您想要的效果。
例如,如果您的有效负载(收到的帖子内容)是:
您可以在通用webhook配置中定义一个名为
payload
的参数,将该参数的 expression 设置为$
,并设置 expressionTypeJSONPath
,当触发作业时,该参数将包括接收到的帖子内容的全部内容。然后您可以自己解析它:
您可以看到更多使用
generic-webhook-trigger
配置插件Here的高级示例,尤其是与您的需求更相关的This one。