
Python調用Google Bard API 完整指南
當直接調用 Jenkins 接口時,可能會遇到 HTTP ERROR 403 No valid crumb was included in the request
的錯誤。這是因為默認情況下,Jenkins 的接口不允許跨域請求。我們可以通過修改 Jenkins 的配置來解決此問題。
首先,進入 Jenkins 容器并修改配置文件 jenkins.sh
,添加 -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true
參數。
# 進入 Jenkins 容器
$ docker exec -u root -it jenkins /bin/bash
# 修改配置文件
$ vim /usr/local/bin/jenkins.sh
然后重啟 Jenkins 容器:
# 重啟 Jenkins
$ docker restart jenkins
配置完成后,打開 Jenkins 的“系統管理-全局安全配置”,確認設置已生效。
Jenkins 提供了一系列的 API 接口,支持通過 HTTP 請求來進行任務的觸發、創建和管理。
可以通過 HTTP POST
請求觸發 Jenkins 任務的執行。例如,無參任務 parallelsAlwaysFailFast
可以這樣觸發:
curl -X POST 'http://192.168.56.114:8080/job/parallelsAlwaysFailFast/build' --user admin:admin123
對于帶參數的任務,如 pipeline_variables
,需調用 buildWithParameters
接口:
curl -X POST 'http://192.168.56.114:8080/job/pipeline_variables/buildWithParameters' --user admin:admin123 --data ENV=prod
要在 Jenkins 中創建任務,可以使用 POST
請求發送 config.xml
文件到 Jenkins 服務器。
curl -L 'http://192.168.56.114:8080/createItem?name=api_job_test'
-H 'Content-Type: application/xml'
--user admin:admin123
--data ''
Jenkins 提供了多種 SDK 來支持 API 調用,幫助開發者在不同語言環境下更方便地操作 Jenkins。
Python 的 JenkinsAPI、Python-Jenkins、api4jenkins 和 aiojenkins 是針對 Jenkins REST API 的 Python 包裝器,提供面向對象的接口,使得通過 Python 控制 Jenkins 更加簡便。
jenkins-rest
是一個 Java 項目,提供對 Jenkins REST API 的訪問,支持通過編程方式進行作業提交、監控等操作。
Jenkins API 客戶端是 Ruby 的包裝器,使用 JSON API 來控制 Jenkins,支持作業和視圖的創建和管理。
通過本文的介紹,您可以更好地利用 Jenkins 的遠程訪問 API 來簡化持續集成的管理和操作過程。
HTTP ERROR 403 No valid crumb was included in the request
的錯誤。這是因為 Jenkins 默認啟用了 CSRF 保護??梢酝ㄟ^進入 Jenkins 容器,修改 jenkins.sh
配置文件,添加 -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true
參數,然后重啟 Jenkins 來解決。HTTP POST
請求來觸發 Jenkins 任務的執行。對于無參任務,可以直接使用 build
接口;對于帶參數的任務,需要使用 buildWithParameters
接口,并在請求中附加參數數據。POST
請求將 config.xml
文件發送到 Jenkins 服務器來創建新任務。請求需要包括任務名稱和有效的 XML 配置數據。