是的,经过多次即插即用终于得到了解决方案。想分享一下,因为它可以帮助别人。首先,我传递的 Json 值不正确,并且它没有促销所期望的所有参数。其次,因为我启用了 CSRF 保护,所以 HTTP 请求应该有一个有效的面包屑。所以我所做的是我手动批准了一些虚拟工作并获得了成功提升工作的 JSON。它包含所有传递的参数。所以它帮助我获取了应该从 CURL 命令传递的所有参数。所以最后的工作网址如下。您可以根据您的要求将任何其他参数传递/删除到 JSON DATA。
请注意: crumb 字段名称与许多 stackoverflow 答案中提供的答案不同。现在归档的名称不是“.crumb”而是“Jenkins-Crumb”
curl -v -H "Jenkins-Crumb:XXXXXXXXXXX" -X POST http://USER:TOKEN@JENKINS_URL/job/JOB_NAME/JOB_NUMBER/promotion/promotionProcess/PromoteForTesting/promotionCondition/hudson.plugins.promoted_builds.conditions.ManualCondition/approve --data-urlencode json='{"parameters":[{"_class":"hudson.model.StringParameterValue","name":"PARAMETER","value":""},{"_class":"hudson .model.StringParameterValue","name":"Job","value":"Deploy(ZettaDevelopment)"},{"_class":"hudson.model.StringParameterValue","name":"BuildSelection","value" :"PARAMETER"},{"_class":"hudson.model.StringParameterValue","name":"参数","值":"参数"}]}'
使用http://USER:TOKEN@JENKINS_URL/job/JOB_NAME/JOB_NUMBER/promotion/promotionProcess/PromoteForTesting/promotionBuild/Build_NUMBER/api/json找到传递的参数值
这里 Build_NUMBER 是我手动批准的构建。从输出中,您可以轻松获取要传递的所需参数。
希望这可以帮助,因为至少它对我有用:-)