之前写了一篇命令行启动jenkins的三种方法分别是使用curl 、使用jenkins-cli命令行调用jar包启动,或使用python第三方库jenkins来启动
其实python的jenkins库也是封装了request库
因此也是可以直接用requests来启动
今天碰到,使用jenkins库启动总是提示401(传了username和password),后来干脆自己用request搞了
import requests
from requests.auth import HTTPBasicAuth
如果jenkins的安全设置是,匿名用户可以做任何事,则这里就不用了auth,直接发请求即可
requests.post('http://localhost',auth=HTTPBasicAuth("admin",'123456'))
或把auth写在header里
headers={"Authorization": Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxx}
参数直接用字典
data={"branch":"master"}
requests.post('http://localhost',headers=headers,data=data)
这里的url还可以是jenkins自身提供的api url,可以直接获取jenkins的执行信息等
注意:如果jenkins1.0开启了跨站伪造请求保护,则需要在header里传递jenkins-Crumb
直接浏览器访问JENKINS_URL/crumbIssuer/api/json 就可以获取到你的crumb
headers={"jenkins-Crumb":crumb的值 }
或者直接关闭该选项
但是jenkins2.*页面上是关闭不了的,需要修改配置文件或修改启动jenkins参数
网友评论