【问题标题】: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 中,我们希望通过 API 获取 Pipeline stages 信息,例如stage 是成功还是失败。从另一个answer看来我们可以通过Pipeline REST API Plugin实现它。

我的问题是:

JenkinsapiPython-Jenkins 可以实现相同的目标吗?似乎它们是为裸机 Jenkins 而设计的,而不是 Pipeline 插件,对吧?如果是这种情况,我们是否有类似的用于 Pipeline 插件的 Python 库?

谢谢!

【问题讨论】:

    标签: jenkins jenkins-pipeline


    【解决方案1】:

    您在链接的文档中拥有所有信息来回答您自己的问题。只是把它放在一起:

    • Jenkins 有一个 REST API
    • 管道 REST API 插件在 Jenkins REST API 中注入新端点,让您可以访问多个管道信息
    • 您上面提到的Python-Jenkinsjenkinsapi 都是围绕 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))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-08
        • 2020-05-28
        • 1970-01-01
        • 2010-12-12
        • 1970-01-01
        • 2015-04-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多