Кажется невозможным передать строку, представляющую json тело для POST-запроса, с помощью curl, используя команду sh внутри Jenkins Pipeline.
У меня есть следующее sh строка внутри шага конвейера:
def apiCmd = 'curl -X POST --user user:passe --data \\"{\\"state\\":\\"' + stateStr + '\\",\\"context\\":\\"branch-regression\\"}\\"' + " --url ${Configuration.CommitStatusUpdateURL}
Теперь Дженкинс на самом деле выполняет:
curl -X POST --user user:pass--data '""state":"failure""' '""context":"branch-regression""' --url someurl
Что раздражает, так это то, что если вы хотите запустить сообщение запросить нативные groovy жалобы Дженкинса о мерах безопасности ... и если вы попробуете с Curl, то JSON не проанализирован