{ "info": { "author": "Martin Melka", "author_email": "melkamar@fit.cvut.cz", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Flask", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Topic :: Software Development", "Topic :: Software Development :: Bug Tracking" ], "description": "GitHub issues bot\n=================\n\n.. image:: https://travis-ci.com/melkamar/gitbot.svg?token=vMAJz6sAMcPRgk9vRaTy&branch=master\n :alt: Travis Status\n.. image:: https://readthedocs.org/projects/melkamargitbot/badge/?version=latest\n :target: http://melkamargitbot.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\nDescription\n-----------\n\nApplication will label issues on GitHub based on the issues' title, contents and/or\ncomments. Labelling is determined by a set of regular expression rules.\n\nDocumentation\n-------------\n\nFor up-to-date documentation, refer to documentation_.\n\n.. _documentation: http://melkamargitbot.readthedocs.io/en/latest/index.html\n\n\npip installation\n~~~~~~~~~~~~~~~~\n\n``pip install gitbot``\n\nAlso installs a ``gitbot`` executable.\n\nRunning tests\n~~~~~~~~~~~~~\n\n- Clone this repository and run ``python setup.py test`` in the root\n directory. By default the tests that need authentication will be\n replayed from stored betamax cassettes. This should be enough in most\n cases.\n- To re-generate betamax cassettes\n\n - have AUTH\\_FILE environment variable filled and pointing to\n ``auth.cfg`` file. (see ``auth.cfg.sample`` for example contents)\n - have file ``auth.cfg`` filled with credentials and run\n ``python setup.py test`` in the root directory\n\n- Download pip package via ``pip download gitbot``. Then unzip\n ``gitbot-x.x.x.zip``, cd into the directory and run\n ``python setup.py test``. The same testing details as described above\n apply.\n\n\nBuilding documentation\n~~~~~~~~~~~~~~~~~~~~~~\n\nTo test and build the Gitbot documentation, do the following:\n- Change folder to ``docs``.\n- Run ``pip install -r requirements.txt``.\n- Run ``make html`` (or ``make.bat html`` on Windows) to build the documentation, or\n- Run ``make doctest`` (or ``make.bat doctest`` on Windows) to run documentation tests.\n\n\nOperation modes\n~~~~~~~~~~~~~~~\n\nThere are two ways of running the bot:\n\n- **Console** - actively polls GitHub for new issues and based on given\n options labels them. Run as ``github_issues_bot.py console (...)``\n- **Web app** - passively listens for GitHub's webhooks informing about\n new or changed issues. The endpoint listening for GitHub calls is\n ``/callback``. May be run from command line as\n ``github_issues_bot.py web`` or deployed as a WSGI application using\n this wsgi config::\n\n import sys path = '/path/to/script/folder'\n if path not in sys.path: sys.path.append(path)\n from web\\_listener import app as application\n\n\nQuick oneliner\n~~~~~~~~~~~~~~\n ``python ./github_issues_bot.py console -i 30 -d default-tag --no-comments --no-process-title melkamar/mi-pyt-test-issues``\n Will process only body of the issue report. Any further comments nor the title of the issue will not be matched against rules.\n\nRules\n~~~~~\n Rules are located in file `rules.cfg` by default. Any other file needs to be passed as a command line option.\n The format for rules is `regexp=>desired label`.\n\nAuthentication\n~~~~~~~~~~~~~~\n Bot needs an authentication token with permissions to label issues. Token is stored in `auth.cfg` file by default. See the example file for details.\n\n For web usage, the webhook secret has to be set in `auth.cfg` as well as the repository to be handled. The script will not do anything if the security check fails.\n\nDetailed parameters for console mode\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n::\n\n Usage: github_issues_bot.py console [OPTIONS] REPOSITORIES...\n\n Options:\n -a, --auth TEXT Authentication file. See auth.cfg.sample.\n -v, --verbose Much verbosity. May be repeated multiple times. More v's, more\n info!\n -r, --rules-file TEXT File containing tagging rules.\n -i, --interval INTEGER Interval of repository checking in seconds. Default\n is 60 seconds. -d, --default-label TEXT Label to apply to an issue if no\n other rule applies. If empty, no label is applied. Defaults to no label.\n --process-title / --no-process-title Should the title of the issue be\n matched against the rules as well? Defaults to true. --comments /\n --no-comments Should comments be also matched against the rules?\n Defaults to true.\n --closed-issues / --no-closed-issues Should closed\n issues be still processed? Defaults to false.\n --skip-labelled / --no-skip-labelled Should issues that are labelled already be skipped?\n Defaults to true.\n --remove-current / --no-remove-current Should the\n current labels on an issue be removed if a rule matches? Defaults to\n false.\n --help Show this message and exit.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/melkamar/gitbot", "keywords": "github,labeling,issues", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "gitbot", "package_url": "https://pypi.org/project/gitbot/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/gitbot/", "project_urls": { "Homepage": "https://github.com/melkamar/gitbot" }, "release_url": "https://pypi.org/project/gitbot/0.5/", "requires_dist": null, "requires_python": "", "summary": "Automatically label GitHub issues based on regexp rules.", "version": "0.5" }, "last_serial": 2449182, "releases": { "0.1": [], "0.3.10": [ { "comment_text": "", "digests": { "md5": "01531b3ed63cc25535c4366155bb8b09", "sha256": "beaa753e061a3b9fb0d8626a148b5bb31c2d865c5d90c51d452cc698b6577e23" }, "downloads": -1, "filename": "gitbot-0.3.10.zip", "has_sig": false, "md5_digest": "01531b3ed63cc25535c4366155bb8b09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33253, "upload_time": "2016-10-22T21:51:00", "url": "https://files.pythonhosted.org/packages/bd/37/b90d376908f8696182eb9a863ca0b19df383750d956586b80ef60500e8a1/gitbot-0.3.10.zip" } ], "0.3.11": [ { "comment_text": "", "digests": { "md5": "d21e28f30b4d823f0d863667ad9713c1", "sha256": "828095bbb9d4bf7d206f954c7ab8052961adaab77e555ae7ca2c811302f4bcbc" }, "downloads": -1, "filename": "gitbot-0.3.11.zip", "has_sig": false, "md5_digest": "d21e28f30b4d823f0d863667ad9713c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34844, "upload_time": "2016-10-25T18:49:41", "url": "https://files.pythonhosted.org/packages/22/9b/8af5943c4938b8673b300d3e455d246c9c8977ea61744d3a25e5023c263d/gitbot-0.3.11.zip" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "b2c29f26c452f1ffead6d3404b4ec883", "sha256": "69993b10d59dcd3268b21e36ce3bb1d744953f5febe007307ed507126c1f6101" }, "downloads": -1, "filename": "gitbot-0.4.1.zip", "has_sig": false, "md5_digest": "b2c29f26c452f1ffead6d3404b4ec883", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 66236, "upload_time": "2016-11-01T13:49:45", "url": "https://files.pythonhosted.org/packages/bd/f5/ea5894c423f90799a1700ccaf89b49f90c8361ee332e1b986428198cb911/gitbot-0.4.1.zip" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "ea9f6f9e4be26f67fba440004d850771", "sha256": "963e46819ab0d2c5be100a1d451e34145e1c0832ff149ed0d452cd9a2f53f143" }, "downloads": -1, "filename": "gitbot-0.4.2.zip", "has_sig": false, "md5_digest": "ea9f6f9e4be26f67fba440004d850771", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 64529, "upload_time": "2016-11-01T14:03:40", "url": "https://files.pythonhosted.org/packages/bc/3b/8d7d892726a9c6cdcfe40902189ca83920f4bee0667fc4ec343d2b4e06b7/gitbot-0.4.2.zip" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "4bd63d18552979f9e1c61eb1af384793", "sha256": "a0bc22a1e54046484e20255e257e0f269833a4f00548de90132a30354d1e2267" }, "downloads": -1, "filename": "gitbot-0.5.zip", "has_sig": false, "md5_digest": "4bd63d18552979f9e1c61eb1af384793", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68107, "upload_time": "2016-11-08T15:12:58", "url": "https://files.pythonhosted.org/packages/78/fa/e429010617cb7ad8c91a7d6d8590b9bc5fb39c6f58a62881c5e05e24bac2/gitbot-0.5.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4bd63d18552979f9e1c61eb1af384793", "sha256": "a0bc22a1e54046484e20255e257e0f269833a4f00548de90132a30354d1e2267" }, "downloads": -1, "filename": "gitbot-0.5.zip", "has_sig": false, "md5_digest": "4bd63d18552979f9e1c61eb1af384793", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68107, "upload_time": "2016-11-08T15:12:58", "url": "https://files.pythonhosted.org/packages/78/fa/e429010617cb7ad8c91a7d6d8590b9bc5fb39c6f58a62881c5e05e24bac2/gitbot-0.5.zip" } ] }