Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pbelskiy/aiojenkins

Python async client for Jenkins
https://github.com/pbelskiy/aiojenkins

aiohttp asynchronous-python-library asyncio jenkins pypi python

Last synced: 3 days ago
JSON representation

Python async client for Jenkins

Awesome Lists containing this project

README

        

Async python client for `Jenkins `_
=======================================================

|Build status|
|Docs status|
|Coverage status|
|Version status|
|Downloads status|

.. |Build Status|
image:: https://github.com/pbelskiy/aiojenkins/workflows/Tests/badge.svg
.. |Docs status|
image:: https://readthedocs.org/projects/aiojenkins/badge/?version=latest
.. |Coverage status|
image:: https://img.shields.io/coveralls/github/pbelskiy/aiojenkins?label=Coverage
.. |Version status|
image:: https://img.shields.io/pypi/pyversions/aiojenkins?label=Python
.. |Downloads status|
image:: https://img.shields.io/pypi/dm/aiojenkins?color=1&label=Downloads

Asynchronous python package of Jenkins API endpoints based on aiohttp.

----

Also pay attention to brand new package with same API set but with sync and async interfaces:

https://github.com/pbelskiy/ujenkins

Installation
------------

.. code:: shell

pip3 install aiojenkins

Usage
-----

Start new build using `aiojenkins.Jenkins` as an async context manager (preferred):

.. code:: python

import asyncio
import aiojenkins

async def example():
async with aiojenkins.Jenkins('http://your_server/jenkins', 'user', 'password') as jenkins:
await jenkins.builds.start('job_name', {'parameter': 'test'})

asyncio.run(example())

Or without an async context manager:

.. code:: python

import asyncio
import aiojenkins

jenkins = aiojenkins.Jenkins('http://your_server/jenkins', 'user', 'password')

async def example():
try:
await jenkins.builds.start('job_name', {'parameter': 'test'})
finally:
jenkins.close()

asyncio.run(example())

`Please look at tests directory for more examples. `_

Documentation
-------------

`Read the Docs `_

Testing
-------

Currently tests aren't using any mocking.
I am testing locally with dockerized LTS Jenkins ver. 2.222.3

Prerequisites: `docker, tox`

::

docker run -d --name jenkins --restart always -p 8080:8080 jenkins/jenkins:lts
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
chromium http://localhost:8080 # create admin:admin
tox

Contributing
------------

Feel free to PR