{ "info": { "author": "Matthias Bussonnier", "author_email": "bussonniermatthias@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License" ], "description": "MeeseeksBox\n===========\n\nA base for stateless GitHub Bot.\n\nSee what is a `MrMeeseeks and a\nMeeseeksBox `__\n\nHosted for you\n--------------\n\nWe host MeeseeksBoxes and will expose them as GitHub Integrations so you\ndon't have to host and run your own, but you can if you want, it should\nbe pretty simple.\n\nThe advantage of having One and only one box, is to do cross repository\noperations.\n\nWhat can a MeeseeksBox do ?\n---------------------------\n\n@MrMeeseeks Hello\n~~~~~~~~~~~~~~~~~\n\nRespond with\n\n Hello {user} look at me, I'm Mr Meeseeks\n\nTo test whether a Meeseeks understand you.\n\n@MrMeeseeks backport [to] \n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIf issued from a PR which is merged, attempt to backport (cherry-pick\nthe merge commit) on an older branch and submit a PR with this backport\n(on said branch)\n\nNo option to push directly.\n\nRepo admins only\n\n@MrMeeseeks pep8ify\n~~~~~~~~~~~~~~~~~~~\n\n(in progress)\n\nIf issued from a PR, will apply autopep8 to the current lines changed by\nthis PR, and push an extra commit to it that fixes pep8.\n\nCode in progress and due to GitHub API limitation only works if\nMrMeeseeks also available on Source repo of the PR.\n\nRepo admins only, plan to make it available to PR author as well.\n\n@MrMeeseeks migrate [to] \n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nNeeds MeeseeksBox to be installed on both current and target repo.\nCommand issuer to be admin on both.\n\nMrMeeseeks will open a similar issue, replicate all comments with links\nto first, migrate labels (if possible).\n\nSimple extension.\n-----------------\n\nMost extension and new command for the MeeseeksBox are only one\nfunction, for example here is how to let everyone request the zen of\nPython:\n\n.. code:: python\n\n from textwrap import dedent\n\n @everyone\n def zen(*, session, payload, arguments):\n comment_url = payload['issue']['comments_url']\n session.post_comment(comment_url,\n dedent(\n \"\"\"\n Zen of Pyton ([pep 20](https://www.python.org/dev/peps/pep-0020/))\n ```\n >>> import this\n Beautiful is better than ugly.\n Sparse is better than dense.\n ....\n Although never is often better than *right* now.\n Namespaces are one honking great idea -- let's do more of those!\n ```\n \"\"\"\n ))\n\nThe ``session`` object is authenticated with the repository the command\ncame from. If you need to authenticate with another repository with\nMeeseeksBox installed ``yield`` the ``org/repo`` slug.\n\n.. code:: python\n\n @admin\n def foo(*, session, payload, argument):\n other_session = yield 'MeeseeksBox/MeeseeksBox'\n if other_session:\n print('you are allowed to access MeeseeksBox/MeeseeksBox')\n other_session.do_stuff()\n else:\n session.post_comment(\"Sorry Jerry you are not allowed to do that.\")\n\nWhy do you request so much permission ?\n=======================================\n\nGitHub API does not allow to change permissions once given. We don't\nwant you to go though the process of reinstalling all integrations.\n\nWe would like to request less permission if necessary.\n\nSetup.\n======\n\nThese are the environment variable that need to be set.\n\n- ``INTEGRATION_ID`` The integration ID given to you by GitHub when you\n create an integration\n- ``BOTNAME`` Name of the integration on GitHub, should be without the\n leading ``@``, and with the ``[bot]``. This is used for the bot to\n react to his own name, and not reply to itself...\n\nTODO\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Carreau/meeseeksbox", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "meeseeksbox", "package_url": "https://pypi.org/project/meeseeksbox/", "platform": "", "project_url": "https://pypi.org/project/meeseeksbox/", "project_urls": { "Homepage": "https://github.com/Carreau/meeseeksbox" }, "release_url": "https://pypi.org/project/meeseeksbox/0.0.4/", "requires_dist": [ "tornado", "requests", "pyjwt", "gitpython", "there", "mock", "cryptography", "friendlyautopep8", "yieldbreaker" ], "requires_python": ">=3.4", "summary": "MeeseeksBox", "version": "0.0.4" }, "last_serial": 2557897, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "876fd31c0c959566324291ce3430dceb", "sha256": "efd1d3f812e6eddfb7b548872018136b745e564a97b222db15c80aed8d801664" }, "downloads": -1, "filename": "meeseeksbox-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "876fd31c0c959566324291ce3430dceb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 32494, "upload_time": "2016-12-26T21:10:01", "url": "https://files.pythonhosted.org/packages/16/6f/56770a3015b351c6fce7ec2a915bcacca2b886c9186bf038726113b3c5ec/meeseeksbox-0.0.1-py3-none-any.whl" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "15a369cbeacf99b7cb1647d3a2644a95", "sha256": "95f9acfd71622e62ba2a63f956ae3dca91048e5f8a02c96535b2d493a9ef992f" }, "downloads": -1, "filename": "meeseeksbox-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "15a369cbeacf99b7cb1647d3a2644a95", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 69020, "upload_time": "2016-12-27T11:45:48", "url": "https://files.pythonhosted.org/packages/9a/23/de65400adfae66345e7559c1343e54335796f2d2c795600662695fca0257/meeseeksbox-0.0.2-py3-none-any.whl" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "555d3ee40f0bc226a1567478c0007116", "sha256": "98ba3b51219d66f885c2e74a8249cae35cf6a07528f8c83d1e567146e841f977" }, "downloads": -1, "filename": "meeseeksbox-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "555d3ee40f0bc226a1567478c0007116", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 96053, "upload_time": "2017-01-05T15:22:39", "url": "https://files.pythonhosted.org/packages/9a/44/72ee83cecf7e37ff6b6f7a7d9edf7004e6b3275ba9dbabbf29ceeb45c78a/meeseeksbox-0.0.3-py3-none-any.whl" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "b7114bc06480fc94417569ba738e9a59", "sha256": "082cfb6cb6f6ab16f1984cb0c911352d6229fca1a289a9c9dffb8d865a1b0241" }, "downloads": -1, "filename": "meeseeksbox-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "b7114bc06480fc94417569ba738e9a59", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 175513, "upload_time": "2017-01-06T15:20:34", "url": "https://files.pythonhosted.org/packages/31/a2/dd717642990f31ca89e70298c5e87f6a550082980991f4e4e0f244fcf535/meeseeksbox-0.0.4-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b7114bc06480fc94417569ba738e9a59", "sha256": "082cfb6cb6f6ab16f1984cb0c911352d6229fca1a289a9c9dffb8d865a1b0241" }, "downloads": -1, "filename": "meeseeksbox-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "b7114bc06480fc94417569ba738e9a59", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 175513, "upload_time": "2017-01-06T15:20:34", "url": "https://files.pythonhosted.org/packages/31/a2/dd717642990f31ca89e70298c5e87f6a550082980991f4e4e0f244fcf535/meeseeksbox-0.0.4-py3-none-any.whl" } ] }