Jira bash curl 在 POST 上向 PR 评论返回错误请求

Jay*_*Dee 1 bash curl jira bitbucket

我对此感到抓狂。我正在尝试以下操作:

curl -S https/api.bitbucket.org/2.0/repositories/etc/etc/pullrequests/comments \
-u username:pw
--request POST --header 'Content-Type: application/json' \
-d '{"content": {"text": "'"$logMsg"'"}}'
Run Code Online (Sandbox Code Playgroud)

即使使用 -S 也会返回一个不明确的错误请求。$logMsg 有大量特殊字符和换行符,其示例如下:

"\n\n***HelloThere**  <->:+/"
Run Code Online (Sandbox Code Playgroud)

请注意,无论变量是什么,都应该用双引号引起来。我不知道 bash 是如何解释该变量的,因为将字符串文字复制并粘贴到邮递员中效果很好。例子:

--data-raw '{"content": { "raw": "\n\n***HelloThere**<->:+/"}}'
Run Code Online (Sandbox Code Playgroud)

我有一种感觉,正在进行一些字符串插值(即将 \n 转换为实际的换行符),但我不确定如何解决。

che*_*ner 5

不要尝试手动生成 JSON。使用jq

jq --arg lm "$logMsg" '{content: {text: $lm}}' | curl ... -d @-
Run Code Online (Sandbox Code Playgroud)