【发布时间】:2017-03-21 07:40:48
【问题描述】:
知道如何查询 jenkins 以获取运行特定 GIT 存储库的所有作业的列表吗?或者列出所有作业和他们正在使用的 GIT 源代码?
谢谢,
【问题讨论】:
标签: git jenkins jenkins-api
知道如何查询 jenkins 以获取运行特定 GIT 存储库的所有作业的列表吗?或者列出所有作业和他们正在使用的 GIT 源代码?
谢谢,
【问题讨论】:
标签: git jenkins jenkins-api
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,然后搜索该数据结构。在搜索了数百个工作后,它对我的情况很有效。
【讨论】:
job['fullname'] 而不是job['name']。当项目嵌套时,即使作业名称是唯一的,jenkins 也需要完整路径。
这是您使用 python 获得特定构建 # 配置的方式: 导入json 导入urllib
响应 = urllib.urlopen(url) 数据 = json.loads(response.read())
打印数据
通过这个你可以首先找到文件夹/repo下的所有作业,为每个作业获取最后一个作业并找到每个作业的git repo。
【讨论】: