{"id":13501638,"url":"https://github.com/pycontribs/jenkinsapi","last_synced_at":"2026-04-21T09:01:30.683Z","repository":{"id":41394784,"uuid":"3111557","full_name":"pycontribs/jenkinsapi","owner":"pycontribs","description":"A Python API for accessing resources and configuring Hudson \u0026 Jenkins continuous-integration servers","archived":false,"fork":true,"pushed_at":"2025-01-07T12:31:46.000Z","size":1650,"stargazers_count":859,"open_issues_count":81,"forks_count":487,"subscribers_count":47,"default_branch":"master","last_synced_at":"2025-01-07T13:19:20.248Z","etag":null,"topics":["automation","ci","continuous-integration","devops","devops-packages","jenkins","scripting"],"latest_commit_sha":null,"homepage":"http://pypi.python.org/pypi/jenkinsapi","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"ramonvanalteren/jenkinsapi-old","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pycontribs.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-01-05T16:43:13.000Z","updated_at":"2025-01-07T12:31:50.000Z","dependencies_parsed_at":"2023-02-12T08:01:01.249Z","dependency_job_id":null,"html_url":"https://github.com/pycontribs/jenkinsapi","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fjenkinsapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fjenkinsapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fjenkinsapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fjenkinsapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pycontribs","download_url":"https://codeload.github.com/pycontribs/jenkinsapi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235405233,"owners_count":18984868,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","ci","continuous-integration","devops","devops-packages","jenkins","scripting"],"created_at":"2024-07-31T22:01:44.549Z","updated_at":"2026-04-21T09:01:30.668Z","avatar_url":"https://github.com/pycontribs.png","language":"Python","readme":"Jenkinsapi\n==========\n\n.. image:: https://badge.fury.io/py/jenkinsapi.png\n    :target: http://badge.fury.io/py/jenkinsapi\n\nInstallation\n------------\n\n.. code-block:: bash\n\n    pip install jenkinsapi\n\nLogging\n-------\n\nJenkinsAPI emits request/response debug logs when enabled.\nYou can opt in with the environment variable or by calling the helper:\n\n.. code-block:: bash\n\n    export JENKINSAPI_LOG_LEVEL=DEBUG\n\n.. code-block:: python\n\n    from jenkinsapi.utils.logging import configure_logging\n\n    configure_logging(\"INFO\")\n\nImportant Links\n---------------\n* `Documentation \u003chttp://pycontribs.github.io/jenkinsapi/\u003e`__\n* `Source Code \u003chttps://github.com/pycontribs/jenkinsapi\u003e`_\n* `Support and bug-reports \u003chttps://github.com/pycontribs/jenkinsapi/issues?direction=desc\u0026sort=comments\u0026state=open\u003e`_\n* `Releases \u003chttps://pypi.org/project/jenkinsapi/#history\u003e`_\n\n\nAbout this library\n-------------------\n\nJenkins is the market leading continuous integration system.\n\nJenkins (and its predecessor Hudson) are useful projects for automating common development tasks (e.g. unit-testing, production batches) - but they are somewhat Java-centric.\n\nJenkinsapi makes scripting Jenkins tasks a breeze by wrapping the REST api into familiar python objects.\n\nHere is a list of some of the most commonly used functionality\n\n* Add, remove, and query Jenkins jobs\n* Control pipeline execution\n    * Query the results of a completed build\n    * Block until jobs are complete or run jobs asyncronously\n    * Get objects representing the latest builds of a job\n* Artifact management\n    * Search for artifacts by simple criteria\n    * Install artifacts to custom-specified directory structures\n* Search for builds by source code revision\n* Create, destroy, and monitor\n    * Build nodes (Webstart and SSH slaves)\n    * Views (including nested views using NestedViews Jenkins plugin)\n    * Credentials (username/password and ssh key)\n* Authentication support for username and password\n* Manage jenkins and plugin installation\n\nFull library capabilities are outlined in the `Documentation \u003chttp://pycontribs.github.io/jenkinsapi/\u003e`__\n\nGet details of jobs running on Jenkins server\n---------------------------------------------\n\n.. code-block:: python\n\n    \"\"\"Get job details of each job that is running on the Jenkins instance\"\"\"\n    def get_job_details():\n        # Refer Example #1 for definition of function 'get_server_instance'\n        server = get_server_instance()\n        for job_name, job_instance in server.get_jobs():\n            print('Job Name:%s' % (job_instance.name))\n            print('Job Description:%s' % (job_instance.get_description()))\n            print('Is Job running:%s' % (job_instance.is_running()))\n            print('Is Job enabled:%s' % (job_instance.is_enabled()))\n\nDisable/Enable a Jenkins Job\n----------------------------\n\n.. code-block:: python\n\n    def disable_job():\n        \"\"\"Disable a Jenkins job\"\"\"\n        # Refer Example #1 for definition of function 'get_server_instance'\n        server = get_server_instance()\n        job_name = 'nightly-build-job'\n        if (server.has_job(job_name)):\n            job_instance = server.get_job(job_name)\n            job_instance.disable()\n            print('Name:%s,Is Job Enabled ?:%s' % (job_name, job_instance.is_enabled()))\n\nUse the call ``job_instance.enable()`` to enable a Jenkins Job.\n\nCreating jobs in folders\n------------------------\n\nWhen using the Folders plugin, you can pass folder paths directly:\n\n.. code-block:: python\n\n    jenkins.create_job(\"folder1/folder2/job-name\", config_xml)\n    jenkins.create_job(\"/job/folder1/job/folder2/job-name\", config_xml)\n\n\nKnown issues\n------------\n* Job deletion operations fail unless Cross-Site scripting protection is disabled.\n\nFor other issues, please refer to the `support URL \u003chttps://github.com/pycontribs/jenkinsapi/issues?direction=desc\u0026sort=comments\u0026state=open\u003e`_\n\nDevelopment\n-----------\n\n* Make sure that you have Java_ installed. Jenkins will be automatically\n  downloaded and started during tests.\n* Create virtual environment for development\n* Install package in development mode\n\n.. code-block:: bash\n\n    uv sync\n\n* Make your changes, write tests and check your code\n\n.. code-block:: bash\n\n    uv run pytest -sv\n\nPython versions\n---------------\n\nThe project has been tested against Python versions:\n\n\u003c\u003c\u003c\u003c\u003c\u003c\u003c HEAD\n* 3.10 - 3.14\n=======\n* 3.10 - 3.14 (tested via CI)\n\u003e\u003e\u003e\u003e\u003e\u003e\u003e e554089 (docs: comprehensive documentation and examples updates)\n\nJenkins versions\n----------------\n\nProject tested on both stable (LTS) and latest Jenkins versions.\n\nProject Contributors\n--------------------\n\n* Aleksey Maksimov (ctpeko3a@gmail.com)\n* Salim Fadhley (sal@stodge.org)\n* Ramon van Alteren (ramon@vanalteren.nl)\n* Ruslan Lutsenko (ruslan.lutcenko@gmail.com)\n* Cleber J Santos (cleber@simplesconsultoria.com.br)\n* William Zhang (jollychang@douban.com)\n* Victor Garcia (bravejolie@gmail.com)\n* Bradley Harris (bradley@ninelb.com)\n* Kyle Rockman (kyle.rockman@mac.com)\n* Sascha Peilicke (saschpe@gmx.de)\n* David Johansen (david@makewhat.is)\n* Misha Behersky (bmwant@gmail.com)\n* Clinton Steiner (clintonsteiner@gmail.com)\n\nPlease do not contact these contributors directly for support questions! Use the GitHub tracker instead.\n\n.. _Java: https://www.oracle.com/java/technologies/downloads/#java21\n","funding_links":[],"categories":["Python","automation"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpycontribs%2Fjenkinsapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpycontribs%2Fjenkinsapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpycontribs%2Fjenkinsapi/lists"}