<p align="center">
<img width="120" alt="portfolio_view" src="https://raw.githubusercontent.com/ismet55555/yojenkins/main/docs/source/logo_final.png">
</p>
<h1 align="center">yojenkins</h1>
<p align="center">
<a href="https://pypi.org/project/yojenkins/">
<img alt="PYPI Version" src="https://img.shields.io/pypi/v/yojenkins?color=blue">
</a>
<a href="https://pypi.org/project/yojenkins/">
<img alt="Python Versions" src="https://img.shields.io/pypi/pyversions/yojenkins">
</a>
<a href="https://pypi.org/project/yojenkins/">
<img alt="PYPI Status" src="https://img.shields.io/pypi/status/yojenkins">
</a>
<a href="https://github.com/ismet55555/yojenkins/blob/main/LICENSE">
<img alt="Licence" src="https://img.shields.io/pypi/l/yojenkins">
</a>
<a href="https://github.com/ismet55555/yojenkins/actions/workflows/test-build-publish.yml">
<img alt="Workflow" src="https://github.com/ismet55555/yojenkins/actions/workflows/test-build-publish.yml/badge.svg">
</a>
<h3 align="center">
<a href="https://www.yojenkins.com/installation/">Install Now!</a>
</h3>
</p>
**`yojenkins`** is a cross-platform command line interface (CLI) tool to monitor, manage, and deal with Jenkins server. It makes it possible to interact with a Jenkins server without using the browser based Jenkins UI.
This tool is able to be integrated into a script as middleware in order to automate Jenkins related tasks or enable Jenkins configuration as code.
**`yojenkins` will liberate you and your browser from the Jenkins Web UI**
With **`yojenkins`** you can manage:
- **Authentication**: _Authentication structure similar to AWS API_
- **Server**: _Create, shutdown, view queue, and more_
- **User accounts**: _Create, delete, add/remove permission, and more_
- **Nodes/agents:** _Create, delete, shut down server, and more_
- **Credentials**: _Create, update, delete, list, and more_
- **Folders:** _Create items, delete items, disable, enable, and more_
- **Jobs:** _Create, delete, trigger, monitor, search, and more_
- **Builds:** _Monitor, abort, tail logs, follow logs, and more_
- **Stages:** _Get info, get logs, view steps, view status_
- **Steps:** _Get info_
- **Other tools and functions:** _Run groovy scripts remotely, run custom REST calls, setup a shared library, view command usage history, and more_
_For a complete CLI command outline, see [section below](#complete-cli-outline)_
## :blue_book: Documentation
For all information and documentation, please visit [yojenkins.com](https://yojenkins.com)
## :movie_camera: Overview Video
This video presents an overview of `yojenkins`, while demonstrating a few basic funcitonalities and workflow.
<a target="_blank" rel="noopener noreferrer" href="https://youtu.be/w1p-eMzKuLE">
<img width="35%" alt="overview_video" style="border:2px solid black;" src="https://img.youtube.com/vi/w1p-eMzKuLE/hqdefault.jpg">
</a>
## :ballot_box_with_check: Project Contact
If you happen to find any issues with this project or think of any features that you want to
request, see the following links:
- Read more about the [release cycle](https://en.wikipedia.org/wiki/Software_release_life_cycle).
- [Bug Reports](https://www.yojenkins.com/bug_report/)
- [Feature Requests](https://www.yojenkins.com/feature_request/)
## :heartbeat: Help this Project
This is a very young project and I am always looking for help in any way. If you like this project, please consider helping.
- For financial or marketing support options see [Support This Project!](https://www.yojenkins.com/support/).
- To contribute to this project, see [Contribute to This Project!](https://www.yojenkins.com/contribute/).
## :broken_heart: Similar Projects
If this project is not something you were were looking for, that ok, there are similar projects out there,
which each one with their own advantages and disadvantages.
- [Official Jenkins CLI](https://www.jenkins.io/doc/book/managing/cli/)
- [jenkins-cli](https://github.com/jenkins-zh/jenkins-cli)
- [jenni](https://github.com/m-sureshraj/jenni)
- [jenkins-job-cli](https://github.com/gocruncher/jenkins-job-cli)
## Complete CLI Outline
```txt
yojenkins
|
|-- account Manage user accounts
| |--- create Create a user account
| |--- delete Delete a user account
| |--- info Get user information
| |--- list List all users
| |--- password-reset Reset a user password
| |--- permission Add or remove user permission
| |--- permission-list List all available permissions
|
|
|-- auth Manage authentication and profiles
| |--- configure Configure authentication
| |--- show Show the local credentials profiles
| |--- token Generate authentication API token
| |--- user Show current user information
| |--- verify Check if credentials can authenticate
| |--- wipe Wipe all credentials for this device
|
|
|-- build Manage builds
| |--- abort Abort build
| |--- browser Open build in web browser
| |--- delete Delete build
| |--- diff Find difference between two builds
| |--- info Build information
| |--- logs Get build logs
| |--- monitor Start monitor UI
| |--- rebuild Rebuild a build with same parameters
| |--- stages Get build stages
| |--- status Build status text/label
|
|
|-- credential Manage credentials
| |--- config Get credential configuration
| |--- create Create new credentials
| |--- delete Remove credentials
| |--- get-template Cred. type template to create a cred.
| |--- info Credential information
| |--- list List credentials
| |--- move Move a credential to another folder/domain
| |--- update Reconfigure existing credentials
|
|
|-- folder Manage folders
| |--- browser Open folder in web browser
| |--- config Get folder configuration
| |--- copy Copy an existing item
| |--- create Create an item [folder, view, job]
| |--- delete Delete folder or view
| |--- info Folder information
| |--- items List all items in folder
| |--- jobs List all jobs in folder
| |--- search Search folders by REGEX pattern
| |--- subfolders List all subfolders in folder
| |--- views List all views in folder
|
|
|-- job Manage jobs
| |--- browser Open job in web browser
| |--- build Build a job
| |--- build-exist Check if build number exists
| |--- config Get job configuration
| |--- create Create a job
| |--- delete Delete job
| |--- diff Find difference between two jobs
| |--- disable Disable job
| |--- enable Enable job
| |--- info Job information
| |--- last Get previous build number
| |--- list List all builds for job
| |--- monitor Start monitor UI
| |--- next Get next build number
| |--- queue-cancel Cancel this job in queue
| |--- queue-check Check if this job is in queue
| |--- rename Rename job
| |--- search Search jobs by REGEX pattern
| |--- set Set the next build number
| |--- wipe Wipe job workspace
|
|
|-- node Manage nodes
| |--- config Get node configuration
| |--- create-ephemeral Setup a local or remote ephemeral node
| |--- create-permanent Setup a local or remote persistent node
| |--- delete Delete a node
| |--- disable Disable a node
| |--- enable Enable a node
| |--- info Node information
| |--- list List all nodes
| |--- logs Node logs
| |--- prepare Prepare a remote machine to become a node
| |--- reconfig Reconfigure the node
| |--- status Node status
|
|
|-- server Manage server
| |--- browser Open server home page in web browser
| |--- info Server information
| |--- people Show all people/users on server
| |--- plugins Show plugin information
| |--- queue Show current job build queues on server
| |--- quiet Server quite mode enable/disable
| |--- reachable Check if server is reachable
| |--- restart Restart the server
| |--- server-deploy Create a local development server (Docker)
| |--- server-teardown Remove a local development server
| |--- shutdown Shut down the server
|
|
|-- stage Manage build stages
| |--- info Stage information
| |--- logs Stage steps
| |--- status Stage status text
| |--- steps Get stage steps
|
|
|-- step Manage stage steps
| |--- info Step information
|
|
|-- tools Tools and more
|--- bug-report Report a bug
|--- docs Open browser to the documentation
|--- feature-request Request a feature
|--- history Show detailed command usage history
|--- rest-request Send a generic Rest request to server
|--- run-script Run Groovy script on server, return result
|--- shared-lib-setup Set up a Jenkins shared library
```
Raw data
{
"_id": null,
"home_page": "https://github.com/ismet55555/yojenkins",
"name": "yojenkins",
"maintainer": "Ismet Handzic",
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "jenkins monitor manage job build fun",
"author": "Ismet Handzic",
"author_email": "ismet.handzic@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/66/6a/b2d649cd67abbf59b65fa8791f1ffeff15d39c26e33371501f70c6846b21/yojenkins-0.1.1.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n <img width=\"120\" alt=\"portfolio_view\" src=\"https://raw.githubusercontent.com/ismet55555/yojenkins/main/docs/source/logo_final.png\">\n</p>\n\n<h1 align=\"center\">yojenkins</h1>\n\n<p align=\"center\">\n\n<a href=\"https://pypi.org/project/yojenkins/\">\n <img alt=\"PYPI Version\" src=\"https://img.shields.io/pypi/v/yojenkins?color=blue\">\n</a>\n\n<a href=\"https://pypi.org/project/yojenkins/\">\n <img alt=\"Python Versions\" src=\"https://img.shields.io/pypi/pyversions/yojenkins\">\n</a>\n\n<a href=\"https://pypi.org/project/yojenkins/\">\n <img alt=\"PYPI Status\" src=\"https://img.shields.io/pypi/status/yojenkins\">\n</a>\n\n<a href=\"https://github.com/ismet55555/yojenkins/blob/main/LICENSE\">\n <img alt=\"Licence\" src=\"https://img.shields.io/pypi/l/yojenkins\">\n</a>\n\n<a href=\"https://github.com/ismet55555/yojenkins/actions/workflows/test-build-publish.yml\">\n <img alt=\"Workflow\" src=\"https://github.com/ismet55555/yojenkins/actions/workflows/test-build-publish.yml/badge.svg\">\n</a>\n\n<h3 align=\"center\">\n<a href=\"https://www.yojenkins.com/installation/\">Install Now!</a>\n</h3>\n\n</p>\n\n**`yojenkins`** is a cross-platform command line interface (CLI) tool to monitor, manage, and deal with Jenkins server. It makes it possible to interact with a Jenkins server without using the browser based Jenkins UI.\n\nThis tool is able to be integrated into a script as middleware in order to automate Jenkins related tasks or enable Jenkins configuration as code.\n\n**`yojenkins` will liberate you and your browser from the Jenkins Web UI**\n\nWith **`yojenkins`** you can manage:\n\n- **Authentication**: _Authentication structure similar to AWS API_\n- **Server**: _Create, shutdown, view queue, and more_\n- **User accounts**: _Create, delete, add/remove permission, and more_\n- **Nodes/agents:** _Create, delete, shut down server, and more_\n- **Credentials**: _Create, update, delete, list, and more_\n- **Folders:** _Create items, delete items, disable, enable, and more_\n- **Jobs:** _Create, delete, trigger, monitor, search, and more_\n- **Builds:** _Monitor, abort, tail logs, follow logs, and more_\n- **Stages:** _Get info, get logs, view steps, view status_\n- **Steps:** _Get info_\n- **Other tools and functions:** _Run groovy scripts remotely, run custom REST calls, setup a shared library, view command usage history, and more_\n\n_For a complete CLI command outline, see [section below](#complete-cli-outline)_\n\n## :blue_book: Documentation\n\nFor all information and documentation, please visit [yojenkins.com](https://yojenkins.com)\n\n## :movie_camera: Overview Video\n\nThis video presents an overview of `yojenkins`, while demonstrating a few basic funcitonalities and workflow.\n\n<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://youtu.be/w1p-eMzKuLE\">\n <img width=\"35%\" alt=\"overview_video\" style=\"border:2px solid black;\" src=\"https://img.youtube.com/vi/w1p-eMzKuLE/hqdefault.jpg\">\n</a>\n\n## :ballot_box_with_check: Project Contact\n\nIf you happen to find any issues with this project or think of any features that you want to\nrequest, see the following links:\n\n- Read more about the [release cycle](https://en.wikipedia.org/wiki/Software_release_life_cycle).\n- [Bug Reports](https://www.yojenkins.com/bug_report/)\n- [Feature Requests](https://www.yojenkins.com/feature_request/)\n\n## :heartbeat: Help this Project\n\nThis is a very young project and I am always looking for help in any way. If you like this project, please consider helping.\n\n- For financial or marketing support options see [Support This Project!](https://www.yojenkins.com/support/).\n- To contribute to this project, see [Contribute to This Project!](https://www.yojenkins.com/contribute/).\n\n## :broken_heart: Similar Projects\n\nIf this project is not something you were were looking for, that ok, there are similar projects out there,\nwhich each one with their own advantages and disadvantages.\n\n- [Official Jenkins CLI](https://www.jenkins.io/doc/book/managing/cli/)\n- [jenkins-cli](https://github.com/jenkins-zh/jenkins-cli)\n- [jenni](https://github.com/m-sureshraj/jenni)\n- [jenkins-job-cli](https://github.com/gocruncher/jenkins-job-cli)\n\n## Complete CLI Outline\n\n```txt\nyojenkins\n |\n |-- account Manage user accounts\n | |--- create Create a user account\n | |--- delete Delete a user account\n | |--- info Get user information\n | |--- list List all users\n | |--- password-reset Reset a user password\n | |--- permission Add or remove user permission\n | |--- permission-list List all available permissions\n |\n |\n |-- auth Manage authentication and profiles\n | |--- configure Configure authentication\n | |--- show Show the local credentials profiles\n | |--- token Generate authentication API token\n | |--- user Show current user information\n | |--- verify Check if credentials can authenticate\n | |--- wipe Wipe all credentials for this device\n |\n |\n |-- build Manage builds\n | |--- abort Abort build\n | |--- browser Open build in web browser\n | |--- delete Delete build\n | |--- diff Find difference between two builds\n | |--- info Build information\n | |--- logs Get build logs\n | |--- monitor Start monitor UI\n | |--- rebuild Rebuild a build with same parameters\n | |--- stages Get build stages\n | |--- status Build status text/label\n |\n |\n |-- credential Manage credentials\n | |--- config Get credential configuration\n | |--- create Create new credentials\n | |--- delete Remove credentials\n | |--- get-template Cred. type template to create a cred.\n | |--- info Credential information\n | |--- list List credentials\n | |--- move Move a credential to another folder/domain\n | |--- update Reconfigure existing credentials\n |\n |\n |-- folder Manage folders\n | |--- browser Open folder in web browser\n | |--- config Get folder configuration\n | |--- copy Copy an existing item\n | |--- create Create an item [folder, view, job]\n | |--- delete Delete folder or view\n | |--- info Folder information\n | |--- items List all items in folder\n | |--- jobs List all jobs in folder\n | |--- search Search folders by REGEX pattern\n | |--- subfolders List all subfolders in folder\n | |--- views List all views in folder\n |\n |\n |-- job Manage jobs\n | |--- browser Open job in web browser\n | |--- build Build a job\n | |--- build-exist Check if build number exists\n | |--- config Get job configuration\n | |--- create Create a job\n | |--- delete Delete job\n | |--- diff Find difference between two jobs\n | |--- disable Disable job\n | |--- enable Enable job\n | |--- info Job information\n | |--- last Get previous build number\n | |--- list List all builds for job\n | |--- monitor Start monitor UI\n | |--- next Get next build number\n | |--- queue-cancel Cancel this job in queue\n | |--- queue-check Check if this job is in queue\n | |--- rename Rename job\n | |--- search Search jobs by REGEX pattern\n | |--- set Set the next build number\n | |--- wipe Wipe job workspace\n |\n |\n |-- node Manage nodes\n | |--- config Get node configuration\n | |--- create-ephemeral Setup a local or remote ephemeral node\n | |--- create-permanent Setup a local or remote persistent node\n | |--- delete Delete a node\n | |--- disable Disable a node\n | |--- enable Enable a node\n | |--- info Node information\n | |--- list List all nodes\n | |--- logs Node logs\n | |--- prepare Prepare a remote machine to become a node\n | |--- reconfig Reconfigure the node\n | |--- status Node status\n |\n |\n |-- server Manage server\n | |--- browser Open server home page in web browser\n | |--- info Server information\n | |--- people Show all people/users on server\n | |--- plugins Show plugin information\n | |--- queue Show current job build queues on server\n | |--- quiet Server quite mode enable/disable\n | |--- reachable Check if server is reachable\n | |--- restart Restart the server\n | |--- server-deploy Create a local development server (Docker)\n | |--- server-teardown Remove a local development server\n | |--- shutdown Shut down the server\n |\n |\n |-- stage Manage build stages\n | |--- info Stage information\n | |--- logs Stage steps\n | |--- status Stage status text\n | |--- steps Get stage steps\n |\n |\n |-- step Manage stage steps\n | |--- info Step information\n |\n |\n |-- tools Tools and more\n |--- bug-report Report a bug\n |--- docs Open browser to the documentation\n |--- feature-request Request a feature\n |--- history Show detailed command usage history\n |--- rest-request Send a generic Rest request to server\n |--- run-script Run Groovy script on server, return result\n |--- shared-lib-setup Set up a Jenkins shared library\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "A CLI tool to manage and have fun with Jenkins server",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://github.com/ismet55555/yojenkins"
},
"split_keywords": [
"jenkins",
"monitor",
"manage",
"job",
"build",
"fun"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6edb8b377e82b433990d87380e412e862588a1da477f7d37a77322ff6ba0a01f",
"md5": "7c352f280702aba2fbaff5923ef32565",
"sha256": "6530c322a7382122e08f73048479779b966fa8d9752fd01544dfb95b3c8c7427"
},
"downloads": -1,
"filename": "yojenkins-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7c352f280702aba2fbaff5923ef32565",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 1163660,
"upload_time": "2024-09-09T01:27:00",
"upload_time_iso_8601": "2024-09-09T01:27:00.241324Z",
"url": "https://files.pythonhosted.org/packages/6e/db/8b377e82b433990d87380e412e862588a1da477f7d37a77322ff6ba0a01f/yojenkins-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "666ab2d649cd67abbf59b65fa8791f1ffeff15d39c26e33371501f70c6846b21",
"md5": "6e2beea4a18ec3d85e0b44ea66004768",
"sha256": "50b221bcf857d6b1285310ab5a109e488ff156538c31e0675d6ba0d35bf330a5"
},
"downloads": -1,
"filename": "yojenkins-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "6e2beea4a18ec3d85e0b44ea66004768",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 1173356,
"upload_time": "2024-09-09T01:27:02",
"upload_time_iso_8601": "2024-09-09T01:27:02.109888Z",
"url": "https://files.pythonhosted.org/packages/66/6a/b2d649cd67abbf59b65fa8791f1ffeff15d39c26e33371501f70c6846b21/yojenkins-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-09 01:27:02",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ismet55555",
"github_project": "yojenkins",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "PyYAML",
"specs": [
[
"==",
"6.0"
]
]
},
{
"name": "click-help-colors",
"specs": [
[
"==",
"0.9.4"
]
]
},
{
"name": "click",
"specs": [
[
"==",
"8.1.7"
]
]
},
{
"name": "coloredlogs",
"specs": [
[
"==",
"15.0.1"
]
]
},
{
"name": "docker",
"specs": [
[
"==",
"7.1.0"
]
]
},
{
"name": "json2xml",
"specs": []
},
{
"name": "pypiwin32",
"specs": []
},
{
"name": "python-jenkins",
"specs": [
[
"==",
"1.8.2"
]
]
},
{
"name": "pywin32",
"specs": []
},
{
"name": "requests-futures",
"specs": [
[
"==",
"1.0.1"
]
]
},
{
"name": "toml",
"specs": [
[
"==",
"0.10.2"
]
]
},
{
"name": "windows-curses",
"specs": []
},
{
"name": "xmltodict",
"specs": []
},
{
"name": "yaspin",
"specs": []
}
],
"lcname": "yojenkins"
}