Jenkins API 中文文档

Jenkins API 文档与学习路线图

官方文档

学习路线图

整理了Jenkins API 学习路线图如下:

Jenkins API 学习路线图

下面来说明Jenkins API学习路线图的各个部分。

API格式

Jenkins API支持以下3种格式:

  • XML
  • JSON并支持JSONP跨域访问
  • Python

API在线文档

Jenkins API没有统一的入口,而是采用“…/api/” 的REST API样式,其中”…” 表示Jenkins资源的URL。

常见的Jenkins资源包括:站点(实例)、Job和Build。

上面的学习路线图中只是列出了不同级别API的常用API,具体用法请参考Jenkins API在线文档:

站点API文档 (例子)

# JENKINS_URL/api/
http://192.168.37.100:8080/api/

Job API文档 (例子)

# JENKINS_URL/job/JOB_NAME/api/
http://192.168.37.100:8080/job/email-test/api/

Build API文档 (例子)

# JENKINS_URL/job/JOB_NAME/lastSucessfulBuild/api/
http://192.168.37.100:8080/job/email-test/lastSuccessfulBuild/api/

过滤返回数据

Jenkins API将Jenkins资源模型抽象为树形结构,可以通过tree来指定返回Jenkins资源的层次。

具体用法请参考Jenkins API 在线文档。

安全

在调用Jenkins API 时需要以HTTP Basic Auth验证方式提供用户名和密码。

另外,在Jenkins 2之后默认开启CSRF protection (跨域访问伪造保护),对有些Jenkins API的调用还需要提供Jenkins-Crumb;否则会出现”403 No valid crumb was included in the request“ 的错误。

获取Jenkins生成的crumb值:

  1. 通过浏览器直接打开:http://192.168.37.100:8080/crumbIssuer/api/xml

  2. 返回结果类似:

    <defaultCrumbIssuer _class="hudson.security.csrf.DefaultCrumbIssuer">
    <crumb>068ab0b4e0622b374d8822b22cee8b18</crumb>
    <crumbRequestField>Jenkins-Crumb</crumbRequestField>
    </defaultCrumbIssuer>

以通过Postman”执行一次新的build“为例:

  1. 选择HTTP POST方法

  2. 输入URL: http://192.168.37.100:8080/job/email-test/build

  3. 选择Authorization Type为Basic Auth,并输入Username和Password (Jenkins用户名和密码)

  4. 在Headers中填入一个新的header:

    • Key为Jenkins-Crumb
    • Value为上面一步获取到的Jenkins生成的crumb值

Tips: 测试过Jenkins API官方文档中的wget方法获取到的Jenkins的crumb值,和浏览器直接访问获取到的值不同,并且用wget方法获取到的crumb值在Postman测试失败。

Jenkins CSRF protection参考文档:

API调试工具

推荐使用 Postman 来调试Jenkins API, 当然你可以使用命令行工具wget或curl。

API封装

Jenkins API 官网上推荐了几个对Jenkins API封装的框架:

Python API 封装

Ruby API 封装:

Java API 封装:

参考文档

猜你喜欢

转载自blog.csdn.net/nklinsirui/article/details/80832005