1234567891011121314151617181920212223242526272829303132333435 |
- import os
- import jenkins
- from bs4 import BeautifulSoup
-
- from .service import Service
-
-
- class Jenkins(Service):
-
- SCM_CLASS = "hudson.plugins.git.GitSCM"
-
- def __init__(self, url, username, password):
- self._server = jenkins.Jenkins(url, username=username, password=password)
-
- def get_jobs(self):
- for job in self._server.get_all_jobs():
- name = job["fullname"]
- config = BeautifulSoup(self._server.get_job_config(name), features="xml")
- for git_config in config.find_all("scm", class_=self.SCM_CLASS):
- branch_spec = git_config.find("branches").find("name").text
- yield name, branch_spec, git_config.find("url").text
-
- def build_job(self, name):
- self._server.build_job(name)
-
-
- def jenkins_factory():
- return Jenkins(
- os.environ["LAS_JENKINS_URL"],
- os.environ["LAS_JENKINS_USER"],
- os.environ["LAS_JENKINS_PASSWORD"],
- )
-
-
- Service.add_factory(jenkins_factory)
|