{ "info": { "author": "Alex Cornejo", "author_email": "acornejo@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "pybz\n====\n\npybz provides a simple command line utility to interact with a bugzilla\n5.x server through their REST API. The specification of the bugzilla\nREST API is `documented\nhere `_.\n\nInstallation\n============\n\nThe recommended installation method is through ``pip``. Installing as\nroot with pip is not recommended since it might create conflicts with\nother globally installed python packages.\n\n::\n\n pip install --user pybz\n\nThis will install pybz in ``~/.local/bin``.\n\nIf your system doesn't have ``pip`` available, you can install it as\nfollows:\n\n::\n\n curl --silent --show-error https://bootstrap.pypa.io/get-pip.py | sudo python\n\nConfiguration\n=============\n\nNo configuration is required to use pybz, all parameters can be\nspecified in the command line. The server URL can be specified with the\n``--url`` flag; a server URL is required to perform any operation on\nbugzilla. For operations that require authentication you must also\nspecify a username, which can also be provided in the command-line with\nthe ``--username`` flag.\n\nTo avoid having to specify the server URL and the username on every\ninvocation of ``pybz``, these and other settings can be stored in an\ninitialization file stored at ``~/.pybz``.\n\nExample ``~/.pybz`` file:\n\n::\n\n [core]\n url = bugzilla.mozilla.org\n username = alice@pybz.org\n use_keyring = True\n insecure = False\n\nAlthough possible, it is discouraged to store the password in the\ninitialization file or to provide it through the command-line. When a\nusername is specified but no password is provided, it will be requested\nthrough the standard input. If the ``use_keyring`` option is enabled,\npasswords will be securely stored and retrieved using the system\nkeyring.\n\nUsage\n=====\n\nUse the ``-h`` or ``--help`` flags to get information about all the\ncalling options. pybz supports the following commands\n\ncommand \\| description\n-----------------\\|------------------------------------------ new \\|\ncreate new bug get \\| get bug information set \\| set bug information\nlist-fields \\| list all available bug fields list-products \\| list all\navailable bug products list-components \\| list all components for a\ngiven product\n\nCommands like ``new``, ``get`` and ``set`` accept fields as parameters.\n\nCreating bugs\n-------------\n\nWhen creating new bugs the fields ``product``, ``component``,\n``version`` and ``summary`` are mandatory, all other fields are\noptional. Fields which accept a list of values like ``cc`` can be\npopulated by specifying each value individual, i.e.\n``cc:alice@pybz.org cc:bob@pybz.org``, much like searching.\n\nSearching for bugs\n------------------\n\nThe ``get`` command is used to search for bugs, in the simplest form you\nsimply enter a list of numeric bug id's to retrieve from the server.\n\nYou can also use fields to create more complex queries. Fields must be\nof the form ``name:value``, if your value must contain spaces then you\nmust quote the whole field as follows ``\"name:value with spaces\"``.\n\nWhen searching different field names are searched as an AND, and if the\nsame field name appears multiple times then it is used as an OR. So\nsearching for \"priority:P1 priority:P2\" returns all bugs of priority P1\nOR P2, while searching for \"status:OPEN priority:P1\" returns bugs of\nwith an OPEN status AND priority P1.\n\nPerforming OR operations across different fields is not supported (for\ninstance, if you wanted to find all bugs which have either a status OPEN\nor are have priority P1). For this you can use the quicksearch field,\nand follow the `quicksearch\nAPI `_\n\nUpdating bugs\n-------------\n\nUpdating bugs uses the same field syntax as searching. The only\ndifference is that some fields are treated specially, in particular the\nfields ``blocks``, ``depends_on``, ``see_also``, ``groups``, ``cc`` and\n``keywords``. This is because these fields do not contain a single\nvalue, but instead contain an array of values.\n\nIf you want to specify that a is blocked by bug 12345 and 12346 then you\nwould do ``blocks:=12345 blocks:=12346``. If instead you wanted to add\nbug 12346 to the list of blocking bugs, then you would use\n``blocks:+12346``, and if you wanted to remove bug 12346 from the\nblocking list you would use ``blocks:-12346``.\n\nAll array like fields support the ``+`` and ``-``, but not all of them\nsupport setting with the ``=`` operator. This is a limitation of the\nbugzilla API and not bugz. To see which fields support it simply try it\nout and pybz will notify you of unsupported operations.\n\nExamples\n========\n\nIn the interest of succinctness, the examples below omit the bugzilla\nURL as well as the username. The configuration section of this document\nprovides more details on these options.\n\nBasic\n-----\n\nGet info about bug number 12345\n\n::\n\n pybz get -n 12345\n\nGet info about bug numbers 12345, 12346 and 12347\n\n::\n\n pybz get -n 12345 12346 12347\n\nSearch for all bugs assigned to alice@pybz.org\n\n::\n\n pybz get -f assigned_to:alice@pybz.org\n\nSearch for all bugs assigned to alice@pybz.org with priority P1\n\n::\n\n pybz get -f assigned_to:alice@pybz.org priority:P1\n\nSearch for all open bugs with priority P1 or P2\n\n::\n\n pybz get -f status:OPEN priority:P1 priority:P2\n\n(Re-)assign bug number 12345 to bob@pybz.org and make it a P2\n\n::\n\n pybz set -n 12345 -f assigned_to:bob@pybz.org priority:P2\n\nUpgrade bug number 12345 to have priority P1\n\n::\n\n pybz set -n 12345 -f priority:P1\n\nAdd charlie@pybz.org to the CC list of bug 12345, and remove\nalice@pybz.org from the CC list.\n\n::\n\n pybz set -n 12345 -f cc:+charlie@pybz.org cc:-alice@pybz.org\n\nReport a new bug\n\n::\n\n pybz new -f \"summary:new and terrible bug\" product:pybz priority:P2 assigned_to:alice@pybz.org\n\nAdvanced\n--------\n\nReassign all bugs from bob@pybz.org to charlie@pybz.org\n\n::\n\n pybz get -f assigned_to:bob@pybz.org -s id | xargs pybz set -f assigned_to:charlie@pybz.org -n\n\nDisplay a list of developers sorted by the number of open P1 bugs\nassigned to them\n\n::\n\n pybz get -f priority:P1 status:OPEN -s asigned_to | sort | uniq -c | sort", "description_content_type": null, "docs_url": null, "download_url": null, "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/acornejo/pybz", "keywords": null, "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "pybz", "package_url": "https://pypi.org/project/pybz/", "platform": "all", "project_url": "https://pypi.org/project/pybz/", "project_urls": { "Homepage": "http://github.com/acornejo/pybz" }, "release_url": "https://pypi.org/project/pybz/0.1.5/", "requires_dist": null, "requires_python": null, "summary": "Python Bugzilla Console Utility", "version": "0.1.5" }, "last_serial": 1699537, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "3c79d72946ec508641257e0b1b60637d", "sha256": "f43149b233d4690c92ad5c1cbf509a71cb43cecfbf096ecfed45ac55bcd95f84" }, "downloads": -1, "filename": "pybz-0.1.0.tar.gz", "has_sig": false, "md5_digest": "3c79d72946ec508641257e0b1b60637d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3979, "upload_time": "2015-08-27T05:07:07", "url": "https://files.pythonhosted.org/packages/6a/52/b1f4aa0bf47cbbdb74f2b640304830c0824d9e025cd8b008c374993b8531/pybz-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "de4330fda1f991cdb477b968fcbee4f3", "sha256": "60798c79959a178b4bddae42262ad2f4597ade992f58ebe8fa89916bc9c09c7f" }, "downloads": -1, "filename": "pybz-0.1.1.tar.gz", "has_sig": false, "md5_digest": "de4330fda1f991cdb477b968fcbee4f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4126, "upload_time": "2015-08-27T05:12:30", "url": "https://files.pythonhosted.org/packages/7e/87/4892b5a283119022d7dbe7d9fa9920de392e9e70828cada7667c93849dc8/pybz-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "6859dadb40d3b1e61da8bf7098748027", "sha256": "1d1e3bf332cd307b3f8a3644ac7d459ecb81592309abe3f73b2c5cbe8d397a03" }, "downloads": -1, "filename": "pybz-0.1.2.tar.gz", "has_sig": false, "md5_digest": "6859dadb40d3b1e61da8bf7098748027", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5312, "upload_time": "2015-08-27T15:56:31", "url": "https://files.pythonhosted.org/packages/1e/98/080c448bf3c2dfff0f4b14c3599f4efea3d1bbd44d54eb3f8ab29f40f161/pybz-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "c7bb8cfc44e556058de3ea10c073ab05", "sha256": "fc74038128c6c9a83624ad18e1ab81be6dff224e2ce7f6d3832e7015cf288f67" }, "downloads": -1, "filename": "pybz-0.1.3.tar.gz", "has_sig": false, "md5_digest": "c7bb8cfc44e556058de3ea10c073ab05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5306, "upload_time": "2015-08-27T16:08:12", "url": "https://files.pythonhosted.org/packages/16/4a/c872603cc7a5baef7058d097828fe10d46130b9860d29eaec617fdc0b070/pybz-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "dbb589f23f04bf279b414740b7301ea4", "sha256": "5a387abf9d087b9dfcd885f6989f9978bd14a98cb6479a90293683da0a036e09" }, "downloads": -1, "filename": "pybz-0.1.4.tar.gz", "has_sig": false, "md5_digest": "dbb589f23f04bf279b414740b7301ea4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7797, "upload_time": "2015-08-28T16:05:13", "url": "https://files.pythonhosted.org/packages/9a/99/9658753b9cefdd75cd7498b5df90f1f2d42a13881959c86192b8896ebde0/pybz-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "5197f35bc51e94071ab2adff516c70d6", "sha256": "5001a4bde98518b40036a74c1af092ac1760b053e6abf81f27fd9b98c754e116" }, "downloads": -1, "filename": "pybz-0.1.5.tar.gz", "has_sig": false, "md5_digest": "5197f35bc51e94071ab2adff516c70d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10377, "upload_time": "2015-08-29T18:46:49", "url": "https://files.pythonhosted.org/packages/de/9a/e9a73bc8913a4166f2b8f7fc0b22089dc01e5de6afe7e6dfde1ae0122c33/pybz-0.1.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5197f35bc51e94071ab2adff516c70d6", "sha256": "5001a4bde98518b40036a74c1af092ac1760b053e6abf81f27fd9b98c754e116" }, "downloads": -1, "filename": "pybz-0.1.5.tar.gz", "has_sig": false, "md5_digest": "5197f35bc51e94071ab2adff516c70d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10377, "upload_time": "2015-08-29T18:46:49", "url": "https://files.pythonhosted.org/packages/de/9a/e9a73bc8913a4166f2b8f7fc0b22089dc01e5de6afe7e6dfde1ae0122c33/pybz-0.1.5.tar.gz" } ] }