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

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 repo для каждой работы.

Другие вопросы по тегам