审批人是否可以使用curl命令批准特定的构建?
我正在使用Promoted Builds Plugin手动批准构建。
当我在curl命令下面尝试时,它正在给出“错误400没有提交”。我到处搜索,但无法得到正确答案。请帮忙
当我试图传递JSON数据时,它正在抛出“错误403请求中没有包含有效的碎屑”
命令是 curl http://admin:XXXXXXXXXXXX@JENKINS_URL/job/JOB_NAME/129/promotion/promotionProcess/PromoteForTesting/promotionCondition/hudson.plugins.promoted_builds.conditions.ManualCondition/approve?token=abcde1234 --data-urlencode json ='{& Submit = Approve}'
我关注此API support for manual approval of promoted builds in Jenkins?帖子作为参考,但没有运气
答案 0 :(得分:2)
是的,在玩了很多插件之后终于得到了解决方案..想分享,因为它可以帮助别人。 首先,我传递的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”, “名称”: “参数”, “值”: “”},{ “_类”: “hudson.model.StringParameterValue”, “名称”: “工作”, “值”: “部署(ZettaDevelopment)”},{ “_class”: “hudson.model.StringParameterValue”, “名”: “BuildSelection”, “值”: “参数”},{ “_类”: “hudson.model.StringParameterValue”, “名”: “参数”, “值”: “参数”}]}“
找到传递的参数值这里Build_NUMBER是手动批准的构建。从输出中,您可以轻松获得要传递的所需参数。
希望这可以帮助,至少它对我有用: - )