{ "info": { "author": "Tim D. Smith", "author_email": "snooze@tds.xyz", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Build Tools" ], "description": "github-snooze-button |Build Status| |Coverage Status| |GitHub license| |PyPI|\n=============================================================================\n\nProjects with a lot of issue volume accumulate a lot of open issues\nwhich are not immediately actionable, usually because they're waiting\nfor a response from a contributor. There's no easy way to hide those\nfrom the Github interface or signal to other maintainers that an open\nissue or PR isn't actionable yet.\n\nEnter github-snooze-button!\n\nAdd a \"snooze\" label to an issue, and github-snooze-button will remove\nthe label whenever\n\n- an issue or pull request receives a comment,\n- a pull request receives a comment on a diff, or\n- a pull request branch is updated.\n\ngithub-snooze-button can operate in two modes: deployed to AWS Lambda,\nor polling a Amazon SQS queue locally.\n\nConfiguration file\n------------------\n\ngithub-snooze-button uses .ini-style configuration files that look like:\n\n::\n\n [default]\n github_username = your_username\n github_token = your_token\n aws_key = your_key\n aws_secret = your_secret\n snooze_label = snooze\n # aws_region = us-west-2 # optional\n\n [your_username/repo1]\n ignore_member_of = cool_organization # ignore comments from members of an organization\n\n [your_username/repo2]\n snooze_label = response required\n\nThe AWS credentials in the config file are sent to Github and used to\npush notifications into SNS. The listener also uses them to consume\nevents from SQS. They are not used to configure the Lambda deployment.\n\nOption 1: AWS Lambda deployment\n-------------------------------\n\n1. Generate a Github authentication token with ``public_repo``,\n ``admin:repo_hook``, and (if you're using ``ignore_member_of``,\n ``org:read``) scopes. (Note that ``public_repo`` gives write\n permission! These credentials will be embedded in the Lambda\n deployment package, so you should consider the contents of the\n deployment package sensitive.)\n2. Save AWS credentials with `these permissions or\n better `__\n to a place boto can find them: either `in the\n environment `__\n or in a `configuration\n file `__.\n3. Install github-snooze-button:\n ``pip install git+https://github.com/tdsmith/github-snooze-button.git``\n4. Launch with ``snooze_deploy /path/to/config.ini``. ``snooze_deploy``\n will:\n\n - Build deployment packages for each repository\n - Define or re-use a\n ``/tdsmith/github-snooze-button/snooze_lambda_role`` IAM role with\n the ``AWSLambdaBasicExecutionRole`` policy\n - Create or re-use SNS topics for each repository\n - Configure each Github repository to push notifications to SNS\n - Create or update a Lambda function for each repository\n - Give each SNS topic permission to invoke its matching Lambda\n function and create a subscription connecting them\n\nAnd now you're live.\n\nOption 2: Polling mode\n----------------------\n\n1. Generate a Github authentication token with ``public_repo`` and\n ``admin:repo_hook`` scopes.\n2. In AWS IAM, create a Amazon AWS user with all the AmazonSQS\\* and\n AmazonSNS\\* policies (and possibly fewer?)\n3. Install github-snooze-button:\n ``pip install git+https://github.com/tdsmith/github-snooze-button.git``\n4. Launch with ``snooze_listen /path/to/config.ini``\n\nNote that the queue will continue collecting events unless you\ndisconnect the repository from SNS.\n\nTeardown\n--------\n\nThe fastest way to disable github-snooze-button is by deleting the\nAmazon SNS service from your repository's \"Webhooks & services\"\nconfiguration page. It will be automatically recreated the next time you\nrun snooze in either mode.\n\nQuestions\n---------\n\n- *Will this cost me lots of money?* Probably not. Lambda,\n `SNS `__ and\n `SQS `__ are both free for the\n first million transactions a month. Homebrew uses a few hundred\n transactions a day. YMMV!\n\nContact\n-------\n\nTim D. Smith: snooze at tds.xyz, Freenode: tdsmith, @biotimylated\n\n.. |Build Status| image:: https://travis-ci.org/tdsmith/github-snooze-button.svg?branch=master\n :target: https://travis-ci.org/tdsmith/github-snooze-button\n.. |Coverage Status| image:: https://coveralls.io/repos/github/tdsmith/github-snooze-button/badge.svg?branch=master\n :target: https://coveralls.io/github/tdsmith/github-snooze-button?branch=master\n.. |GitHub license| image:: https://img.shields.io/badge/license-MIT-blue.svg\n :target: https://raw.githubusercontent.com/tdsmith/github-snooze-button/master/LICENSE\n.. |PyPI| image:: https://img.shields.io/pypi/v/github-snooze-button.svg\n :target: https://pypi.python.org/pypi/github-snooze-button\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/tdsmith/github-snooze-button", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "github-snooze-button", "package_url": "https://pypi.org/project/github-snooze-button/", "platform": "any", "project_url": "https://pypi.org/project/github-snooze-button/", "project_urls": { "Homepage": "https://github.com/tdsmith/github-snooze-button" }, "release_url": "https://pypi.org/project/github-snooze-button/0.2.0/", "requires_dist": [ "boto3", "requests" ], "requires_python": "", "summary": "Snooze button for Github issues", "version": "0.2.0" }, "last_serial": 2056437, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "9caa074a0509118d794fa67685b37263", "sha256": "48980671b8ab98c220557c30210b88be97bc8f0e58db3ccd63030226a94c5bd3" }, "downloads": -1, "filename": "github_snooze_button-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9caa074a0509118d794fa67685b37263", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11170, "upload_time": "2016-04-09T20:13:04", "url": "https://files.pythonhosted.org/packages/f7/db/d5532ce5e03416d297fce03cd28bcb179ac796f19c75a9cbe4e0207b7c46/github_snooze_button-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7b8dfbb561caf55c0c27f1bc62e79de1", "sha256": "d4496a895d02d6eaa68ed64c2a7100e12c3987a9dc560e8138260a1863990610" }, "downloads": -1, "filename": "github-snooze-button-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7b8dfbb561caf55c0c27f1bc62e79de1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9018, "upload_time": "2016-04-09T20:13:13", "url": "https://files.pythonhosted.org/packages/ca/f9/2398ecd3959e43abd1ee57ef29441c34df8e8538a482d1a820b88a5ba44a/github-snooze-button-0.1.0.tar.gz" } ], "0.1.0.dev0": [], "0.2.0": [ { "comment_text": "", "digests": { "md5": "526938715270e96b796ecce6c3385ac3", "sha256": "2071b960ebaf76e9da9795f8f0f08c1574e2eb8669f23109f85299860a1621d0" }, "downloads": -1, "filename": "github_snooze_button-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "526938715270e96b796ecce6c3385ac3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11517, "upload_time": "2016-04-10T18:11:01", "url": "https://files.pythonhosted.org/packages/90/97/5c5466f6242e6f811bcb11465b172ea6b03ae9292ab9a161adf3560f3f08/github_snooze_button-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d13119bf551142276d40ac41a6fa1217", "sha256": "c8327294e38ce32516e0bdc334dc98259416cb6e2a13e72f0dfd3abdda5eb7e9" }, "downloads": -1, "filename": "github-snooze-button-0.2.0.tar.gz", "has_sig": false, "md5_digest": "d13119bf551142276d40ac41a6fa1217", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9359, "upload_time": "2016-04-10T18:11:29", "url": "https://files.pythonhosted.org/packages/e0/6c/85a4ae157a7a67db6dd9d8cdedc76ec696ad76362858e1688b79ca55b21c/github-snooze-button-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "526938715270e96b796ecce6c3385ac3", "sha256": "2071b960ebaf76e9da9795f8f0f08c1574e2eb8669f23109f85299860a1621d0" }, "downloads": -1, "filename": "github_snooze_button-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "526938715270e96b796ecce6c3385ac3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11517, "upload_time": "2016-04-10T18:11:01", "url": "https://files.pythonhosted.org/packages/90/97/5c5466f6242e6f811bcb11465b172ea6b03ae9292ab9a161adf3560f3f08/github_snooze_button-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d13119bf551142276d40ac41a6fa1217", "sha256": "c8327294e38ce32516e0bdc334dc98259416cb6e2a13e72f0dfd3abdda5eb7e9" }, "downloads": -1, "filename": "github-snooze-button-0.2.0.tar.gz", "has_sig": false, "md5_digest": "d13119bf551142276d40ac41a6fa1217", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9359, "upload_time": "2016-04-10T18:11:29", "url": "https://files.pythonhosted.org/packages/e0/6c/85a4ae157a7a67db6dd9d8cdedc76ec696ad76362858e1688b79ca55b21c/github-snooze-button-0.2.0.tar.gz" } ] }