【问题标题】:Jenkins API - find all jobs using specific GIT repoJenkins API - 使用特定的 GIT 存储库查找所有工作
【发布时间】:2017-03-21 07:40:48
【问题描述】:

知道如何查询 jenkins 以获取运行特定 GIT 存储库的所有作业的列表吗?或者列出所有作业和他们正在使用的 GIT 源代码?

谢谢,

【问题讨论】:

    标签: git jenkins jenkins-api


    【解决方案1】:
    import re
    import jenkins
    
    repo_name = 'my_repo'
    found_jobs = []
    
    server = jenkins.Jenkins(<jenkins-ip>, <username>, <password>)
    jobs = server.get_all_jobs()
    for job in jobs:
        data = server.get_job_config(job['name']) . # data is xml
        if re.search(r'%s\<\/url\>' %repo_name, data):
            found_jobs.append(job['name'])
    

    基本上,我只是在 xml 中查找模式:&lt;url&gt;my-repo-url&lt;/url&gt;,然后附加到列表中。对我来说,这是最简单的方法,无需从 xml 转换为 dict 或 json,然后搜索该数据结构。在搜索了数百个工作后,它对我的​​情况很有效。

    【讨论】:

    • 另外需要注意的是,如果您使用项目文件夹对构建进行分组,则需要使用job['fullname'] 而不是job['name']。当项目嵌套时,即使作业名称是唯一的,jenkins 也需要完整路径。
    【解决方案2】:

    这是您使用 python 获得特定构建 # 配置的方式: 导入json 导入urllib

    url = 'http://jenkins_user:jenkins_password@my_jenkins_repo.com:8080/job/job_folder/job/job_name/build_number/api/json?pretty=true'

    响应 = urllib.urlopen(url) 数据 = json.loads(response.read())

    打印数据

    通过这个你可以首先找到文件夹/repo下的所有作业,为每个作业获取最后一个作业并找到每个作业的git repo。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      • 1970-01-01
      • 2017-11-15
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      • 1970-01-01
      相关资源
      最近更新 更多