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值:
返回結果類似:
<defaultCrumbIssuer _class="hudson.security.csrf.DefaultCrumbIssuer"
以通過Postman”執行一次新的build“為例:
選擇HTTP POST方法
選擇Authorization Type為Basic Auth,並輸入Username和Password (Jenkins使用者名稱和密碼)
在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 封裝: