【问题标题】:In Jenkins what's the differences between Remote access API and Pipeline REST API在 Jenkins 中,远程访问 API 和流水线 REST API 有什么区别
【发布时间】:2019-12-11 09:28:18
【问题描述】:
【问题讨论】:
标签:
jenkins
jenkins-pipeline
【解决方案1】:
您在链接的文档中拥有所有信息来回答您自己的问题。只是把它放在一起:
- Jenkins 有一个 REST API
- 管道 REST API 插件在 Jenkins REST API 中注入新端点,让您可以访问多个管道信息
-
您上面提到的
Python-Jenkins 和jenkinsapi 都是围绕 Jenkins REST API 的包装器,可帮助您在 Python 中开发针对 Jenkins API 的脚本/应用程序。由于这些模块/库很可能基于核心 API 规范,因此它们很可能不提供针对管道端点的特定方法(但您可以很容易地对其进行扩展)。
【解决方案2】:
如果您想留在 Jenkinsapi 中,可以使用 JenkinsBase 类中定义的get_data() 直接查询 Pipeline REST API。不太确定是否推荐。
以下代码对我有用。
from jenkinsapi.jenkins import Jenkins
import requests
requests.packages.urllib3.disable_warnings()
# GET /job/:job-name/:run-id/wfapi/describe
url = 'https://localhost/job/anyjob/10/wfapi/describe'
jenkins = Jenkins(
'https://localhost',
username='username',
password='api_token',
ssl_verify=False,
lazy=True)
print(jenkins.get_data(url))