gpt4 book ai didi

jenkins - 如何在 jenkins 管道 groovy 脚本中使用 json 发出 curl 请求

转载 作者:行者123 更新时间:2023-12-04 08:04:09 25 4
gpt4 key购买 nike

我正在尝试使用 Groovy 管道将 New Relic 部署 API 调用作为 Jenkins 构建步骤。由于在 groovy 脚本的 shell ('sh') 命令中同时使用单引号和双引号,我遇到了麻烦。每当我执行以下操作时:

node {

//...

def json = '''\
{"deployment": {"revision": "v1","user": "me"}}'
'''

sh "curl -o /dev/null -s -X POST 'https://api.newrelic.com/v2/applications/[redacted]/deployments.json' \
-H 'X-Api-Key:[redacted]' \
-H 'Content-Type: application/json' \
-d '${json}'"

// ...
}

我在 Jenkins 中收到一条错误消息:

/var/lib/jenkins/jobs/[redacted]/workspace@tmp/durable-0f6c52ef/script.sh:第 2 行:寻找匹配的“'”时出现意外 EOF

最佳答案

'json' 变量包含一个带有额外尾随单引号 (') 的字符串。

当这用于
-d '${json}'"
我怀疑它会在数据块中产生一个额外的 (')。数据块将要求将 JSON 括在单引号中,因此请确保包含这些。

不是一个 Groovy 人(双关语),您可能必须使用转义字符来确保将正确的字符串传递给 cURL 命令。

关于jenkins - 如何在 jenkins 管道 groovy 脚本中使用 json 发出 curl 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41497385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com