{ "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\n###### Yet Another Slack bot\nThe operations team at Refinery29 was replacing a old system for\nlaunching development systems which utilized an older version of\n[Hubot](https://hubot.github.com/). At the time our team was more\ncomfortable with python than the Node/Coffeescript which Hubot is\nbuilt on, and we were already familiar with python modules with\nwhich we could interface with the systems we wanted our new bot to\ninteract with. Thus YAS was born.\n\nYAS is framework which tests Slack messages which are available to\nit against handlers which will operate on a message if they are the\nfirst handler to produce a truthy result upon running a test\nagainst the message. A simple practical example is the built in id\nhandler. This handler has a test which looks for a message\nstarting with `id`. If it does, the handler is invoked, replying\nwith some information about the server yas is running on.\n\nSlack has a number of message types of which only a few are\ninitiated by a user and in most cases only a subset of user\ninitiated messages will be meant to be handled by your bot. To\nhandle these cases a number of handlers are included with yas, but\nare not automatically added, and must be included in the list of\nhandlers when that is configured.\n\n## Setup\nYas may be run directly, but it won't do much, so setup including\none or more additional handlers will be included here.\n\nThe easiest method (as of version 2.0) is to construct a Docker\nimage based on the yas image and install the additional handlers\nand configure them. Alternatively, if any of the handlers has a\nDockerfile available, that could be used as a base on which to\nadd any others, but since Docker files need to be manually\ncombined it is likely easier to simply construct a new image\nbased directly on yas'. For instance, the yas-jenkins handler\ncan be built with a Dockerfile such as:\n\n```\nFROM schlueter/yas:latest\n\nENV YAS_JENKINS_JOBS '{}'\nENV YAS_JENKINS_URL ''\nENV YAS_JENKINS_USERNAME ''\nENV YAS_JENKINS_PASSWORD ''\n\nCOPY . .\nRUN python -m pip install yas-jenkins\n```\n\nTo add an additional handler, its configuration need only be added\nand it installed as well.\n\nOnce built, the resulting image may be run with the appropriate\nconfiguration provided in environment variables with:\n\n```\ndocker run --rm --tty \\\n --env YAS_SLACK_TOKEN=xoxb-XXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXX \\\n --env YAS_BOT_NAME=yas \\\n --env YAS_JENKINS_URL=https://jenkins.example.com \\\n --env YAS_JENKINS_USERNAME=yas \\\n --env YAS_JENKINS_PASSWORD=supersecret \\\n --env YAS_JENKINS_JOBS='{\"MyJob\": \"build (?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.,YasJenkinsHandler.,yas.handlers.rules_handler.,yas.handlers.default_handler. \\\n my-yas-image:my-tag\n```\n\nFor yas to function, the `YAS_SLACK_TOKEN`, `YAS_BOT_NAME`, and\n`YAS_HANDLER_LIST` variables must be provided. The token and name\nmust be obtained/configured from a new or existing bot in your\nSlack organization. A new bot may be created at\nhttps://my.slack.com/services/new/bot.\n\nThe handler list should include most of the default handlers,\npotentially discluding those not being generally necessary to\nyas' normal functioning being the identify_handler, rules_handler, and\nthe default_handler. The help_handler is also not necessary to yas\noperating in a reasonable manner, but it may be utilized by other\nplugins to make help functionality available.\n\n\n\n\n\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": "yas", "package_url": "https://pypi.org/project/yas/", "platform": "", "project_url": "https://pypi.org/project/yas/", "project_urls": null, "release_url": "https://pypi.org/project/yas/2.0/", "requires_dist": [ "slackclient (==1.0.5)", "websocket-client (==0.40.0)" ], "requires_python": "", "summary": "Yet Another Slack bot", "version": "2.0", "yanked": false, "yanked_reason": null }, "last_serial": 6032521, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "12a4f08a1eec3f021ce53091f0f0fda4", "sha256": "2903e3caa9fca346669a33140eb3065a32d4b05af8dae0247cb564997f1d2336" }, "downloads": -1, "filename": "Yas-0.0.1.tar.gz", "has_sig": false, "md5_digest": "12a4f08a1eec3f021ce53091f0f0fda4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15612, "upload_time": "2017-02-28T22:55:47", "upload_time_iso_8601": "2017-02-28T22:55:47.890166Z", "url": "https://files.pythonhosted.org/packages/db/15/d77fe8fd4d27799e2cd2d04d22a97c6f5ab808d73b6e5fe148e07b1aac21/Yas-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "8a8e002bb3be183d11ffed03783363ff", "sha256": "f85d122f2316373d76db2c79b108864549ee637ef270369b05971a3f41ab1565" }, "downloads": -1, "filename": "Yas-0.0.2.tar.gz", "has_sig": false, "md5_digest": "8a8e002bb3be183d11ffed03783363ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15655, "upload_time": "2017-03-01T00:24:18", "upload_time_iso_8601": "2017-03-01T00:24:18.331177Z", "url": "https://files.pythonhosted.org/packages/7f/22/89d7fcfa0ce2f421f1f8db935378d5da0878db6ece11ab94954a94cb8263/Yas-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "433acc8ef9aa216237a4848988eb6f52", "sha256": "3e1031f3110f9e6b39b5c8067a6fc07c243712e00a268244ccb65a11d801fb4f" }, "downloads": -1, "filename": "Yas-0.0.3.tar.gz", "has_sig": false, "md5_digest": "433acc8ef9aa216237a4848988eb6f52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16177, "upload_time": "2017-03-01T07:20:04", "upload_time_iso_8601": "2017-03-01T07:20:04.081147Z", "url": "https://files.pythonhosted.org/packages/36/90/ce9c158d4c6479e9106de9a6435f9a61565b08ef4395096a56409026a93a/Yas-0.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "77d11d0f426ee630a8fb97da494a51d5", "sha256": "81cc577970fbab85de31d809d1c08c26d56cb131e32887f21698f339979e6075" }, "downloads": -1, "filename": "Yas-0.0.5.tar.gz", "has_sig": false, "md5_digest": "77d11d0f426ee630a8fb97da494a51d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15495, "upload_time": "2017-03-02T19:53:58", "upload_time_iso_8601": "2017-03-02T19:53:58.080001Z", "url": "https://files.pythonhosted.org/packages/e4/f5/780eafe0cc4aa35229f9aa3b0259811a3372fe7fa8a5fd5e7fb2662036d2/Yas-0.0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "9f5ddd1cfa57b32f2c2158f30b5000e9", "sha256": "2156a9b5cf2df544b405d6d074ee9dea1831ddbde7cad21356c38f536a247a21" }, "downloads": -1, "filename": "Yas-0.0.6.tar.gz", "has_sig": false, "md5_digest": "9f5ddd1cfa57b32f2c2158f30b5000e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16673, "upload_time": "2017-03-05T19:27:03", "upload_time_iso_8601": "2017-03-05T19:27:03.485840Z", "url": "https://files.pythonhosted.org/packages/4f/55/5c893d4127d3fc61e886ea1da3c1c3f9aef3a0b82bf08fabd1d18b1afee0/Yas-0.0.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "910964469a37c1ebdcd55d136b378162", "sha256": "4df50be76e35a269252440efb42adb1567564700523551b12203d93ba146aaef" }, "downloads": -1, "filename": "Yas-0.0.7.tar.gz", "has_sig": false, "md5_digest": "910964469a37c1ebdcd55d136b378162", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14960, "upload_time": "2017-03-07T20:53:08", "upload_time_iso_8601": "2017-03-07T20:53:08.226019Z", "url": "https://files.pythonhosted.org/packages/56/95/fb08527a0d751ce2065ce626245858d85f32ccb41bc8e35b8e51a06d7393/Yas-0.0.7.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "309e7e2e43af4c839ae89b4f32644188", "sha256": "ebfa7bdcf200393f1fe2ae6f12172fc0e0c81aa68d10e13d6d1db200fadd4cda" }, "downloads": -1, "filename": "Yas-0.0.8.tar.gz", "has_sig": false, "md5_digest": "309e7e2e43af4c839ae89b4f32644188", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15722, "upload_time": "2017-03-21T18:08:50", "upload_time_iso_8601": "2017-03-21T18:08:50.352380Z", "url": "https://files.pythonhosted.org/packages/56/94/21c34d6d02b4b10866967970b4637d68c7eea860d7f15849043d831a3c68/Yas-0.0.8.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "5574a975bb1684f49651ce6f29ff7cec", "sha256": "c3b1aa772151f13118e3ed5b1f26b9a1e9ae140ba06df13978293b77f5152d98" }, "downloads": -1, "filename": "Yas-0.0.9.tar.gz", "has_sig": false, "md5_digest": "5574a975bb1684f49651ce6f29ff7cec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15788, "upload_time": "2017-03-21T19:59:45", "upload_time_iso_8601": "2017-03-21T19:59:45.892059Z", "url": "https://files.pythonhosted.org/packages/1a/15/28dc93b3ea39f430fb9182b5c3523ee3d17f743ffa8d533f0f944c4825cf/Yas-0.0.9.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "04c4c7a5f333776a329349f7f4b7052d", "sha256": "47952b5a222df47bb44f81ae5d0c2e0db0ec1864bc8d216c816a8fbe4fe3186f" }, "downloads": -1, "filename": "Yas-0.1.0.tar.gz", "has_sig": false, "md5_digest": "04c4c7a5f333776a329349f7f4b7052d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16087, "upload_time": "2017-03-26T23:19:10", "upload_time_iso_8601": "2017-03-26T23:19:10.932019Z", "url": "https://files.pythonhosted.org/packages/13/6c/6b34fdd247f9973f648f29037cb5f0c3058a8424190501642d37694774b8/Yas-0.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0": [ { "comment_text": "", "digests": { "md5": "10b923fb5845e19d6588498e1a86ac75", "sha256": "92b05aa9110446e2eb1a735d8aef75513a9b9a59fc445a96a2318a196da9f76d" }, "downloads": -1, "filename": "yas-2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "10b923fb5845e19d6588498e1a86ac75", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12715, "upload_time": "2019-10-26T01:23:37", "upload_time_iso_8601": "2019-10-26T01:23:37.295582Z", "url": "https://files.pythonhosted.org/packages/1a/3b/593cf692b571dd6cfa0781da17160ca83824b6bdfa90d74d0f1a7d491961/yas-2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "34676731b83c0a7913acf330ae6b1c4c", "sha256": "64a8b90b0b7525ec0b5231c166f57bd86d5a2350683b5f6e302b45de73ba26e9" }, "downloads": -1, "filename": "yas-2.0.tar.gz", "has_sig": false, "md5_digest": "34676731b83c0a7913acf330ae6b1c4c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10826, "upload_time": "2019-10-26T01:23:44", "upload_time_iso_8601": "2019-10-26T01:23:44.484463Z", "url": "https://files.pythonhosted.org/packages/12/47/aa8ac2195d5f24de972ec6002e833097fbb08e73f339e64113e2cb9b212e/yas-2.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "10b923fb5845e19d6588498e1a86ac75", "sha256": "92b05aa9110446e2eb1a735d8aef75513a9b9a59fc445a96a2318a196da9f76d" }, "downloads": -1, "filename": "yas-2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "10b923fb5845e19d6588498e1a86ac75", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12715, "upload_time": "2019-10-26T01:23:37", "upload_time_iso_8601": "2019-10-26T01:23:37.295582Z", "url": "https://files.pythonhosted.org/packages/1a/3b/593cf692b571dd6cfa0781da17160ca83824b6bdfa90d74d0f1a7d491961/yas-2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "34676731b83c0a7913acf330ae6b1c4c", "sha256": "64a8b90b0b7525ec0b5231c166f57bd86d5a2350683b5f6e302b45de73ba26e9" }, "downloads": -1, "filename": "yas-2.0.tar.gz", "has_sig": false, "md5_digest": "34676731b83c0a7913acf330ae6b1c4c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10826, "upload_time": "2019-10-26T01:23:44", "upload_time_iso_8601": "2019-10-26T01:23:44.484463Z", "url": "https://files.pythonhosted.org/packages/12/47/aa8ac2195d5f24de972ec6002e833097fbb08e73f339e64113e2cb9b212e/yas-2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }