{ "info": { "author": "Raphael Pierzina", "author_email": "raphael@hackebrot.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Utilities" ], "description": "# labels\n\nPython 3.6 CLI app to manage GitHub issue labels \ud83d\udcdd\n\n## Installation\n\n**labels** is available for download from [PyPI][PyPI] via [pip][pip]:\n\n```text\n$ pip install labels\n```\n\n## Authentication\n\nThe labels CLI connects to the GitHub API to modify issue labels for a GitHub\nrepository. Please [create your own personal API token][create token] and\nchoose the correct token scope based on whether you want to manage issue\nlabels for a public or a private repository. Then set up two environment\nvariables in your terminal:\n\n```bash\n$ export LABELS_USERNAME=\"\"\n$ export LABELS_TOKEN=\"\"\n```\n\n## Usage\n\nOnce you've installed **labels** and set up the environment variables, you're\nready to use the **labels** CLI to manage issue labels for a GitHub\nrepository. The CLI comes with two commands: ``fetch`` and ``sync``.\n\nBoth require you to specify the owner and the name of the GitHub repository\nusing CLI options:\n\n```text\n-o, --owner TEXT GitHub owner name\n-r, --repo TEXT GitHub repository name\n```\n\n### Fetch\n\nWhen you're using **labels** for the first time, you want to fetch\ninformation about the existing labels for your GitHub project. The CLI will\nthen write a [TOML][toml] file to your computer with the retrieved\ninformation. The default filename for this file is ``labels.toml`` in your\ncurrent working directory and can be changed by passing the\n``-f, --filename PATH`` option followed by a path.\n\n```text\n$ labels fetch -o hackebrot -r pytest-emoji\n```\n\n```toml\n[bug]\ncolor = \"ea707a\"\ndescription = \"Bugs and problems with pytest-emoji\"\nname = \"bug\"\n\n[\"code quality\"]\ncolor = \"fcc4db\"\ndescription = \"Tasks related to linting, coding style, type checks\"\nname = \"code quality\"\n\n[dependencies]\ncolor = \"43a2b7\"\ndescription = \"Tasks related to managing dependencies\"\nname = \"dependencies\"\n\n[docs]\ncolor = \"2abf88\"\ndescription = \"Tasks to write and update documentation\"\nname = \"docs\"\n\n[\"good first issue\"]\ncolor = \"bfdadc\"\ndescription = \"Tasks to pick up by newcomers to the project\"\nname = \"good first issue\"\n```\n\n### Sync\n\nNow that you have a file on your computer that represents your GitHub issue\nlabels, you can edit this file and then run **labels sync** to update the\nremote repository. But first let's look into how that works... \ud83d\udd0d\n\nRepresentation of a GitHub issue label in the written TOML file:\n\n```toml\n[docs]\ncolor = \"2abf88\"\ndescription = \"Tasks to write and update documentation\"\nname = \"docs\"\n```\n\nThe section name (``[docs]`` in the example above) represents the name of the\nlabel for that repository and is identical to the ``name`` field when running\n``labels fetch``. Do not edit the section name of existing labels yourself!\nThe fields ``color``, ``description`` and ``name`` are parameters that you\ncan edit with the **labels** CLI.\n\n- ``name`` - The name of the label\n- ``description`` - A short description of the label\n- ``color`` - The hexadecimal color code for the label, without the leading ``#``\n\nYou can make the following changes to issue labels for your repo:\n\n- You can **delete** a label by removing the corresponding section from the\nlabels file \ud83d\uddd1\n- You can **edit** a label by changing the value for one or more parameters for\nthat label \ud83c\udfa8\n- You can **create** a new label by adding a new section with your desired\nparameters \ud83d\udcdd\n\nWhen creating labels choose a section name identical to the ``name``\nparameter.\n\nCheck your label changes before syncing by using the ``dryrun`` CLI option:\n\n```text\n-n, --dryrun Do not modify remote labels\n```\n\nExample usage:\n\n```text\n$ labels sync -n -o hackebrot -r pytest-emoji\n```\n\n```text\nThis would delete the following labels:\n - dependencies\nThis would update the following labels:\n - bug\n - good first issue\nThis would create the following labels:\n - duplicate\nThis would NOT modify the following labels:\n - code quality\n - docs\n```\n\nRunning ``labels sync`` without the ``dryrun`` option also updates the labels\nfile, so that section names match the ``name`` parameter.\n\nIf **labels** encounters any errors while sending requests to the GitHub API,\nit will print information about the failure and continue with the next\nlabel until it processed all of the labels.\n\n## Community\n\nAre you interested in contributing to the **labels** CLI app, or helping us\nimprove our documentation, or have ideas for how to improve the project?\n\nRead our [contributing guide][contributing] and check out the\n[good first issue][first] label for tasks, that are good candidates for your\nfirst contribution to **labels**. Your contributions are greatly\nappreciated! Every little bit helps, and credit will always be given!\n\nPlease note that **labels** is released with a\n[Contributor Code of Conduct][code of conduct]. By participating in this\nproject you agree to abide by its terms.\n\n## License\n\nDistributed under the terms of the MIT license, **labels** is free and open\nsource software.\n\n[code of conduct]: https://github.com/hackebrot/labels/blob/master/.github/CODE_OF_CONDUCT.md\n[contributing]: https://github.com/hackebrot/labels/blob/master/.github/CONTRIBUTING.md\n[create token]: https://blog.github.com/2013-05-16-personal-api-tokens/\n[first]: https://github.com/hackebrot/labels/labels/good%20first%20issue\n[toml]: https://github.com/toml-lang/toml\n[PyPI]: https://pypi.org/\n[pip]: https://pypi.org/project/pip/\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": "https://github.com/hackebrot/labels", "keywords": "github,command-line", "license": "MIT", "maintainer": "Raphael Pierzina", "maintainer_email": "raphael@hackebrot.de", "name": "labels", "package_url": "https://pypi.org/project/labels/", "platform": "", "project_url": "https://pypi.org/project/labels/", "project_urls": { "Homepage": "https://github.com/hackebrot/labels" }, "release_url": "https://pypi.org/project/labels/0.1.0/", "requires_dist": [ "click", "requests", "pytoml", "attrs" ], "requires_python": ">=3.6", "summary": "Python 3.6 CLI app to manage GitHub issue labels", "version": "0.1.0" }, "last_serial": 4057946, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "ab09a775ba4100c9b1d24a1301498632", "sha256": "1d990d7338e32243b84d7cbd23c40e91d0036a881cdcfaf03916c52a32a0c403" }, "downloads": -1, "filename": "labels-0.1.0-py36-none-any.whl", "has_sig": false, "md5_digest": "ab09a775ba4100c9b1d24a1301498632", "packagetype": "bdist_wheel", "python_version": "py36", "requires_python": ">=3.6", "size": 9011, "upload_time": "2018-07-13T13:40:08", "url": "https://files.pythonhosted.org/packages/1e/8b/a45f98a2815b8c6181a05ab409da9978255169a3c753804bca1128cf5d44/labels-0.1.0-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9fe28adf8b4bc605a4a5da0f49890571", "sha256": "c98a924f78f02a29e1f39d3c12071388338ded2d66bef390284961f52d46c5cf" }, "downloads": -1, "filename": "labels-0.1.0.tar.gz", "has_sig": false, "md5_digest": "9fe28adf8b4bc605a4a5da0f49890571", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8992, "upload_time": "2018-07-13T13:40:09", "url": "https://files.pythonhosted.org/packages/7c/d6/ce0e8760d431d66be9f0cb46667fcb194af0b3a6a174f0e3cf0fd5d4f473/labels-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ab09a775ba4100c9b1d24a1301498632", "sha256": "1d990d7338e32243b84d7cbd23c40e91d0036a881cdcfaf03916c52a32a0c403" }, "downloads": -1, "filename": "labels-0.1.0-py36-none-any.whl", "has_sig": false, "md5_digest": "ab09a775ba4100c9b1d24a1301498632", "packagetype": "bdist_wheel", "python_version": "py36", "requires_python": ">=3.6", "size": 9011, "upload_time": "2018-07-13T13:40:08", "url": "https://files.pythonhosted.org/packages/1e/8b/a45f98a2815b8c6181a05ab409da9978255169a3c753804bca1128cf5d44/labels-0.1.0-py36-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9fe28adf8b4bc605a4a5da0f49890571", "sha256": "c98a924f78f02a29e1f39d3c12071388338ded2d66bef390284961f52d46c5cf" }, "downloads": -1, "filename": "labels-0.1.0.tar.gz", "has_sig": false, "md5_digest": "9fe28adf8b4bc605a4a5da0f49890571", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8992, "upload_time": "2018-07-13T13:40:09", "url": "https://files.pythonhosted.org/packages/7c/d6/ce0e8760d431d66be9f0cb46667fcb194af0b3a6a174f0e3cf0fd5d4f473/labels-0.1.0.tar.gz" } ] }