GithubHelp home page GithubHelp logo

python-jenkins's Introduction

README

Python Jenkins is a python wrapper for the Jenkins REST API which aims to provide a more conventionally pythonic way of controlling a Jenkins server. It provides a higher-level API containing a number of convenience functions.

We like to use python-jenkins to automate our Jenkins servers. Here are some of the things you can use it for:

  • Create new jobs
  • Copy existing jobs
  • Delete jobs
  • Update jobs
  • Get a job's build information
  • Get Jenkins master version information
  • Get Jenkins plugin information
  • Start a build on a job
  • Create nodes
  • Enable/Disable nodes
  • Get information on nodes
  • Create/delete/reconfig views
  • Put server in shutdown mode (quiet down)
  • List running builds
  • Create/delete/update folders [1]
  • Set the next build number [2]
  • Install plugins
  • and many more..

To install:

$ sudo python setup.py install

Online documentation:

Developers

Bug report:

Repository:

Cloning:

Patches are submitted via Gerrit at:

Please do not submit GitHub pull requests, they will be automatically closed.

More details on how you can contribute is available on our wiki at:

Writing a patch

We ask that all code submissions be flake8 clean. The easiest way to do that is to run tox before submitting code for review in Gerrit. It will run flake8 in the same manner as the automated test suite that will run on proposed patchsets.

Installing without setup.py

Then install the required python packages using pip:

$ sudo pip install python-jenkins

Footnotes

[1]The free Cloudbees Folders Plugin provides support for a subset of the full folders functionality. For the complete capabilities you will need the paid for version of the plugin.
[2]The Next Build Number Plugin provides support for setting the next build number.

python-jenkins's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

python-jenkins's Issues

Using self signed certificates

If I utilize a self signed certificate and calling any function, e.g. whoami , the the following exception will be raised

>>> server = jenkins.Jenkins('https://my-host', username='my_user', password='123456')
>>> server.get_whoami()
Traceback (most recent call last):
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\urllib3\connectionpool.py", line 699, in urlopen
    httplib_response = self._make_request(
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\urllib3\connectionpool.py", line 382, in _make_request   
    self._validate_conn(conn)
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\urllib3\connectionpool.py", line 1010, in _validate_conn 
    conn.connect()
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\urllib3\connection.py", line 411, in connect
    self.sock = ssl_wrap_socket(
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\urllib3\util\ssl_.py", line 449, in ssl_wrap_socket      
    ssl_sock = _ssl_wrap_socket_impl(
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\urllib3\util\ssl_.py", line 493, in _ssl_wrap_socket_impl
    return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
  File "C:\Python\3.9\lib\ssl.py", line 500, in wrap_socket
    return self.sslsocket_class._create(
  File "C:\Python\3.9\lib\ssl.py", line 1040, in _create
    self.do_handshake()
  File "C:\Python\3.9\lib\ssl.py", line 1309, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1129)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\requests\adapters.py", line 439, in send
    resp = conn.urlopen(
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\urllib3\connectionpool.py", line 755, in urlopen
    retries = retries.increment(
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\urllib3\util\retry.py", line 574, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='my-host', port=443): Max retries exceeded with url: /testing/crumbIssuer/api/json (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1129)')))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\jenkins\__init__.py", line 793, in get_whoami
    response = self.jenkins_open(requests.Request(
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\jenkins\__init__.py", line 557, in jenkins_open
    return self.jenkins_request(req, add_crumb, resolve_auth).text
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\jenkins\__init__.py", line 573, in jenkins_request
    self.maybe_add_crumb(req)
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\jenkins\__init__.py", line 370, in maybe_add_crumb
    response = self.jenkins_open(requests.Request(
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\jenkins\__init__.py", line 557, in jenkins_open
    return self.jenkins_request(req, add_crumb, resolve_auth).text
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\jenkins\__init__.py", line 576, in jenkins_request
    self._request(req))
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\jenkins\__init__.py", line 550, in _request
    return self._session.send(r, **_settings)
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\requests\sessions.py", line 655, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\casabre\Documents\my_project\.venv\lib\site-packages\requests\adapters.py", line 514, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='my-host', port=443): Max retries exceeded with url: /testing/crumbIssuer/api/json (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1129)')))

It would be quite helpful to have a flag, e. g. ssl_verify=False, in order to skip certificate checking if you are working in an environment were self signed certificates are mandatory.

Thanks
Carsten

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.