有一个jenkins作业,用于通过单击build with parameters手动运行,然后添加所需的参数并单击build。现在我们希望使用python脚本自动触发此作业的参数。需要一个可以使用参数构建jenkins作业的python脚本 我们可以用requests来做吗?get in python?
型 所以区别在于内容类型,这使得POST请求更安全。 Jenkins可能会为POST请求返回HTTP 403,并出现以下错误:“Error 403 No valid crumb was included in the request” 在这种情况下,您必须将'Jenkins-Crumb'标头添加到您的请求中
1条答案
按热度按时间tcomlyy61#
虽然您可以发现POST请求更适合用于构建触发,但您仍然可以使用GET请求来实现相同的目的。
首先,您需要将您的作业标记为可以由脚本触发的作业。您可以通过在“生成触发器”作业配置部分中勾选“远程触发器生成”复选框来完成此操作。此操作将强制您创建一个身份验证令牌,该令牌将用作URL的参数。
在此之后,您可以通过requests lib获取以下URL,以远程触发作业的构建:http://www.serverconfiguration/job/servermyjobconfiguration/buildWithParameters?token = TOKEN & PARAMETER = Value
SERVER-您的服务器地址
MYJOB-Jenkins作业的名称
因此,代码可能如下所示:
字符串
如果您自己构建parameters子句,那么请记住,所有参数都需要正确地进行URL转义,并且参数名称大小写非常重要。
查看更多详情here
!编辑
对于POST请求,代码可能如下所示:
型
所以区别在于内容类型,这使得POST请求更安全。
Jenkins可能会为POST请求返回HTTP 403,并出现以下错误:“Error 403 No valid crumb was included in the request”
在这种情况下,您必须将'Jenkins-Crumb'标头添加到您的请求中
型
要获取crumb,您需要向http://SERVER/crumbIssuer/api/json URL发出GET请求,并存储JSON响应中的'crumb'键的值。