Jenkins API - 使用特定的GIT仓库找到所有工作

时间:2017-03-21 07:40:49

标签: git jenkins jenkins-api

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

谢谢,

2 个答案:

答案 0 :(得分: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中寻找模式:<url>my-repo-url</url>,然后追加到列表中。对我来说,这是不从xml转换为dict或json然后搜索该数据结构的最简单方法。搜索了数百个工作后,它对于我的情况非常有效。

答案 1 :(得分:0)

这是使用python获取特定构建#配置的方法: 导入json import urllib

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

response = urllib.urlopen(url) data = json.loads(response.read())

打印数据

使用此功能,您可以先找到文件夹/ repo下的所有作业,为每个作业找到最后一份作业,然后找到每个作业的git仓库。