{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6" ], "description": "# Yas Jenkins [Handler]\n###### A handler for [yas](github.com/schlueter/yas) to interact with a Jenkins instance\n\n## Setup\n\nTo simply run a an instance of yas with this handler, `docker run` may be executed directly, albeit with a number of requisite environment variables:\n\n docker run --rm --tty \\\n --env YAS_SLACK_TOKEN=xoxb-XXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXX \\\n --env YAS_BOT_NAME=yasjenkins \\\n --env YAS_JENKINS_URL=https://jenkins.example.com \\\n --env YAS_JENKINS_USERNAME=yasjenkins \\\n --env YAS_JENKINS_PASSWORD=superdupersecret \\\n --env YAS_JENKINS_JOBS='{\"MyJob\": \"do ci (?P\\w+)\"}' \\\n --env YAS_HANDLER_LIST=yas.handlers.ignored_types_handler.,yas.handlers.not_talking_to_bot_handler.,yas.handlers.help_handler.,yas.handlers.identify_handler.,yasjenkins.,yas.handlers.rules_handler.,yas.handlers.default_handler. \\\n schlueter/yasjenkins:latest\n\nThat handler list should be made DRYer sometime; the important bit for this module is the `yasjenkins.`, but the\nrest is mostly necessary for YAS to operate in a reasonable way.\n\nWith yas installed manually, this module may be installed from pip with `python -m pip install yasjenkins` and the handler entry\n\"yasjenkins.\" added to the `YAS_HANDLER_LIST` environment variable in the execution environment. This handler may work\nwith pre 2.0 versions of yas by adding it to the handler list in the configuration file, but that is neither tested nor supported.\n\n## Configuration\n\nIn addition to the configuration of yas itself, this handler is configured via the environment variables `YAS_JENKINS_URL`,\n`YAS_JENKINS_USERNAME`, `YAS_JENKINS_PASSWORD`, and `YAS_JENKINS_JOBS`. The url, username, and password refer to the url\nof a Jenkins instance, and the user credentials for a user on that instance. A service account should be preferred. The\njobs variable is used to expose jobs (surprise) via the indicated command. The command is a python regex string with any\nparameters to the job present as named group like `(?P\\w+)` where my_parameter matches an **existing**\nparameter defined in the job and `\\w+` will match any value which should be expected from a slack request.\n\n## Architecture\n\nThis plugin uses the [python-jenkins](https://python-jenkins.readthedocs.io/en/latest/) module to interact with the\nconfigured Jenkins instance. At present (version 1.0) only triggering builds of jobs is exposed. The configured\njobs' command regexes are looped over to determine if any of them match a previously unmatched message to the host\nYAS instance and a request to build the associated job is sent. At present (version 1.0) there is meek acknowledgement\nthat the request was made (it doesn't indicate which job or anything else), and nothing more. Improving that initial\nresponse should be an expected feature in an upcoming version, but acknowledgement of failure or other state of\ncompletion of the job will be left to the Jenkins job.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "yasjenkins", "package_url": "https://pypi.org/project/yasjenkins/", "platform": "", "project_url": "https://pypi.org/project/yasjenkins/", "project_urls": null, "release_url": "https://pypi.org/project/yasjenkins/1.0rc1/", "requires_dist": [ "yas", "python-jenkins" ], "requires_python": "", "summary": "A Jenkins handler for YAS", "version": "1.0rc1", "yanked": false, "yanked_reason": null }, "last_serial": 6035524, "releases": { "1.0b2": [ { "comment_text": "", "digests": { "md5": "87faf98fcf3bd8bd8376948e676f9fef", "sha256": "514abed6b0234be4af9649ec27ca7a230ad8a2a117d4e63bbc8e731282ee2d54" }, "downloads": -1, "filename": "yasjenkins-1.0b2-py3-none-any.whl", "has_sig": true, "md5_digest": "87faf98fcf3bd8bd8376948e676f9fef", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3692, "upload_time": "2019-10-26T20:50:50", "upload_time_iso_8601": "2019-10-26T20:50:50.853392Z", "url": "https://files.pythonhosted.org/packages/a1/90/b12457d4f848b4ff210a35312368491bca2d3aeab85848323f29bbfa3d38/yasjenkins-1.0b2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0b32e694c1e68b4d7802f0b9d6cdce11", "sha256": "da2db46f0217807b0285a7d92d1576de28a8cacd382edfff3835e6c3180a66f9" }, "downloads": -1, "filename": "yasjenkins-1.0b2.tar.gz", "has_sig": true, "md5_digest": "0b32e694c1e68b4d7802f0b9d6cdce11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3286, "upload_time": "2019-10-26T20:50:53", "upload_time_iso_8601": "2019-10-26T20:50:53.556927Z", "url": "https://files.pythonhosted.org/packages/e9/6e/b2786e32feabe21f102123cd7c6ecb42882320a243eac72adfb18755b93e/yasjenkins-1.0b2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0rc1": [ { "comment_text": "", "digests": { "md5": "c27031907c3ef4aef5a458c541972eaa", "sha256": "dd6158f7b0dff23d63ac5fa54c0853af3453647ad8ddcab0fa14386277a63919" }, "downloads": -1, "filename": "yasjenkins-1.0rc1-py3-none-any.whl", "has_sig": true, "md5_digest": "c27031907c3ef4aef5a458c541972eaa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4125, "upload_time": "2019-10-27T00:49:00", "upload_time_iso_8601": "2019-10-27T00:49:00.935053Z", "url": "https://files.pythonhosted.org/packages/c2/33/8ea252b37c1a83feffd50f16e5144aa77120691e01254c01aca9f76b8cf0/yasjenkins-1.0rc1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e6f7772cb7b7221af589ac47afc76d6b", "sha256": "0f79971ae6a2d2efb78110a32d78226b8fd4203186df461dc62a7e734925e93f" }, "downloads": -1, "filename": "yasjenkins-1.0rc1.tar.gz", "has_sig": true, "md5_digest": "e6f7772cb7b7221af589ac47afc76d6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3699, "upload_time": "2019-10-27T00:49:02", "upload_time_iso_8601": "2019-10-27T00:49:02.607012Z", "url": "https://files.pythonhosted.org/packages/49/c5/e7a3beb6f7182fb59d8a2e428bc31594e708fb9b841813e42dabc50194d4/yasjenkins-1.0rc1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c27031907c3ef4aef5a458c541972eaa", "sha256": "dd6158f7b0dff23d63ac5fa54c0853af3453647ad8ddcab0fa14386277a63919" }, "downloads": -1, "filename": "yasjenkins-1.0rc1-py3-none-any.whl", "has_sig": true, "md5_digest": "c27031907c3ef4aef5a458c541972eaa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4125, "upload_time": "2019-10-27T00:49:00", "upload_time_iso_8601": "2019-10-27T00:49:00.935053Z", "url": "https://files.pythonhosted.org/packages/c2/33/8ea252b37c1a83feffd50f16e5144aa77120691e01254c01aca9f76b8cf0/yasjenkins-1.0rc1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e6f7772cb7b7221af589ac47afc76d6b", "sha256": "0f79971ae6a2d2efb78110a32d78226b8fd4203186df461dc62a7e734925e93f" }, "downloads": -1, "filename": "yasjenkins-1.0rc1.tar.gz", "has_sig": true, "md5_digest": "e6f7772cb7b7221af589ac47afc76d6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3699, "upload_time": "2019-10-27T00:49:02", "upload_time_iso_8601": "2019-10-27T00:49:02.607012Z", "url": "https://files.pythonhosted.org/packages/49/c5/e7a3beb6f7182fb59d8a2e428bc31594e708fb9b841813e42dabc50194d4/yasjenkins-1.0rc1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }