Jenkins API - найти все рабочие места, используя специальное GIT-репо
Любая идея, как я могу запросить Дженкинс, чтобы получить список всех заданий, выполняющих определенные репозиторий GIT? Или список всех заданий и исходного кода GIT, которые они используют?
Спасибо,
2 ответа
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, а затем поиска в этой структуре данных. Обыскав сотни рабочих мест, это хорошо сработало для моего случая.
Вот как вы получаете конкретную конфигурацию build #, используя python: import json import urllib
response = urllib.urlopen (url) data = json.loads (response.read ())
печать данных
с помощью этого вы можете сначала найти все работы в папке /repo, взять последнюю работу для каждой и найти git repo для каждой работы.