# Netlify Builds
<p align="center">
<a href="https://github.com/browniebroke/netlify-builds/actions/workflows/ci.yml?query=branch%3Amain">
<img src="https://img.shields.io/github/actions/workflow/status/browniebroke/netlify-builds/ci.yml?branch=main&label=CI&logo=github&style=flat-square" alt="CI Status" >
</a>
<a href="https://codecov.io/gh/browniebroke/netlify-builds">
<img src="https://img.shields.io/codecov/c/github/browniebroke/netlify-builds.svg?logo=codecov&logoColor=fff&style=flat-square" alt="Test coverage percentage">
</a>
<a href="https://results.pre-commit.ci/latest/github/browniebroke/netlify-builds/main">
<img src="https://results.pre-commit.ci/badge/github/browniebroke/netlify-builds/main.svg" alt="pre-commit.ci status">
</a>
</p>
<p align="center">
<a href="https://python-poetry.org/">
<img src="https://img.shields.io/badge/packaging-poetry-299bd7?style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAASCAYAAABrXO8xAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJJSURBVHgBfZLPa1NBEMe/s7tNXoxW1KJQKaUHkXhQvHgW6UHQQ09CBS/6V3hKc/AP8CqCrUcpmop3Cx48eDB4yEECjVQrlZb80CRN8t6OM/teagVxYZi38+Yz853dJbzoMV3MM8cJUcLMSUKIE8AzQ2PieZzFxEJOHMOgMQQ+dUgSAckNXhapU/NMhDSWLs1B24A8sO1xrN4NECkcAC9ASkiIJc6k5TRiUDPhnyMMdhKc+Zx19l6SgyeW76BEONY9exVQMzKExGKwwPsCzza7KGSSWRWEQhyEaDXp6ZHEr416ygbiKYOd7TEWvvcQIeusHYMJGhTwF9y7sGnSwaWyFAiyoxzqW0PM/RjghPxF2pWReAowTEXnDh0xgcLs8l2YQmOrj3N7ByiqEoH0cARs4u78WgAVkoEDIDoOi3AkcLOHU60RIg5wC4ZuTC7FaHKQm8Hq1fQuSOBvX/sodmNJSB5geaF5CPIkUeecdMxieoRO5jz9bheL6/tXjrwCyX/UYBUcjCaWHljx1xiX6z9xEjkYAzbGVnB8pvLmyXm9ep+W8CmsSHQQY77Zx1zboxAV0w7ybMhQmfqdmmw3nEp1I0Z+FGO6M8LZdoyZnuzzBdjISicKRnpxzI9fPb+0oYXsNdyi+d3h9bm9MWYHFtPeIZfLwzmFDKy1ai3p+PDls1Llz4yyFpferxjnyjJDSEy9CaCx5m2cJPerq6Xm34eTrZt3PqxYO1XOwDYZrFlH1fWnpU38Y9HRze3lj0vOujZcXKuuXm3jP+s3KbZVra7y2EAAAAAASUVORK5CYII=" alt="Poetry">
</a>
<a href="https://github.com/ambv/black">
<img src="https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square" alt="black">
</a>
<a href="https://github.com/pre-commit/pre-commit">
<img src="https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=flat-square" alt="pre-commit">
</a>
</p>
<p align="center">
<a href="https://pypi.org/project/netlify-builds/">
<img src="https://img.shields.io/pypi/v/netlify-builds.svg?logo=python&logoColor=fff&style=flat-square" alt="PyPI Version">
</a>
<img src="https://img.shields.io/pypi/pyversions/netlify-builds.svg?style=flat-square&logo=python&logoColor=fff" alt="Supported Python versions">
<img src="https://img.shields.io/pypi/l/netlify-builds.svg?style=flat-square" alt="License">
</p>
---
**Source Code**: <a href="https://github.com/browniebroke/netlify-builds" target="_blank">https://github.com/browniebroke/netlify-builds</a>
---
A command line utility to check build usage across multiple Netlify accounts
## Installation
Recommended to install this via [pipx]:
`pipx install netlify-builds`
## Setup
Create a `.netlify-builds.json` in your home directory with the following shape:
```json
{
"team-name-1": "access-token-1",
"team-name-2": "access-token-2",
...
}
```
To obtain the token for each team, open a private browsing session and login to your team dashboard and copy it from the local storage, it should be located under the key `nf-session`.
DO NOT LOG OUT. Instead, simply close the private browsing session. If you log out, the token will be invalidated.
## Profit
You're good to go, check all your accounts from the comfort of your terminal:
```
➜ netlify-builds
┏━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━┓
┃ Team ┃ Mins ┃ Start Date ┃ End Date ┃ Elapsed ┃ Used ┃
┡━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━┩
│ team-blue │ 5 mins │ 2020-11-16 │ 2020-12-16 │ 11.6% │ 1.7% │
│ team-red │ 182 mins │ 2020-10-27 │ 2020-11-27 │ 75.9% │ 60.7% │
│ team-green │ 46 mins │ 2020-11-02 │ 2020-12-02 │ 58.3% │ 15.3% │
└───────────────────┴──────────┴────────────┴────────────┴─────────┴───────┘
```
If you're likely to exceed the free quota (300 mins) the rows will appear in red, otherwise in green.
## Contributors ✨
Thanks goes to these wonderful people ([emoji key]):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://browniebroke.com/"><img src="https://avatars1.githubusercontent.com/u/861044?v=4?s=80" width="80px;" alt=""/><br /><sub><b>Bruno Alla</b></sub></a><br /><a href="https://github.com/browniebroke/netlify-builds/commits?author=browniebroke" title="Code">💻</a> <a href="https://github.com/browniebroke/netlify-builds/commits?author=browniebroke" title="Documentation">📖</a> <a href="#ideas-browniebroke" title="Ideas, Planning, & Feedback">🤔</a></td>
</tr>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
This project follows the [all-contributors] specification. Contributions of any kind welcome!
## Credits
This package was created with [Cookiecutter] and the [browniebroke/cookiecutter-pypackage][bb-cc-pypkg] project template.
[pipx]: https://pipxproject.github.io/pipx/
[emoji key]: https://allcontributors.org/docs/en/emoji-key
[all-contributors]: https://github.com/all-contributors/all-contributors
[cookiecutter]: https://github.com/audreyr/cookiecutter
[bb-cc-pypkg]: https://github.com/browniebroke/cookiecutter-pypackage
Raw data
{
"_id": null,
"home_page": "https://github.com/browniebroke/netlify-builds",
"name": "netlify-builds",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8,<4.0",
"maintainer_email": "",
"keywords": "",
"author": "Bruno Alla",
"author_email": "alla.brunoo@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/be/01/483860771ef6aee66646f7642569d9ed73298391d38e53ed479dc2698cf2/netlify_builds-1.1.8.tar.gz",
"platform": null,
"description": "# Netlify Builds\n\n<p align=\"center\">\n <a href=\"https://github.com/browniebroke/netlify-builds/actions/workflows/ci.yml?query=branch%3Amain\">\n <img src=\"https://img.shields.io/github/actions/workflow/status/browniebroke/netlify-builds/ci.yml?branch=main&label=CI&logo=github&style=flat-square\" alt=\"CI Status\" >\n </a>\n <a href=\"https://codecov.io/gh/browniebroke/netlify-builds\">\n <img src=\"https://img.shields.io/codecov/c/github/browniebroke/netlify-builds.svg?logo=codecov&logoColor=fff&style=flat-square\" alt=\"Test coverage percentage\">\n </a>\n <a href=\"https://results.pre-commit.ci/latest/github/browniebroke/netlify-builds/main\">\n <img src=\"https://results.pre-commit.ci/badge/github/browniebroke/netlify-builds/main.svg\" alt=\"pre-commit.ci status\">\n </a>\n</p>\n<p align=\"center\">\n <a href=\"https://python-poetry.org/\">\n <img src=\"https://img.shields.io/badge/packaging-poetry-299bd7?style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAASCAYAAABrXO8xAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJJSURBVHgBfZLPa1NBEMe/s7tNXoxW1KJQKaUHkXhQvHgW6UHQQ09CBS/6V3hKc/AP8CqCrUcpmop3Cx48eDB4yEECjVQrlZb80CRN8t6OM/teagVxYZi38+Yz853dJbzoMV3MM8cJUcLMSUKIE8AzQ2PieZzFxEJOHMOgMQQ+dUgSAckNXhapU/NMhDSWLs1B24A8sO1xrN4NECkcAC9ASkiIJc6k5TRiUDPhnyMMdhKc+Zx19l6SgyeW76BEONY9exVQMzKExGKwwPsCzza7KGSSWRWEQhyEaDXp6ZHEr416ygbiKYOd7TEWvvcQIeusHYMJGhTwF9y7sGnSwaWyFAiyoxzqW0PM/RjghPxF2pWReAowTEXnDh0xgcLs8l2YQmOrj3N7ByiqEoH0cARs4u78WgAVkoEDIDoOi3AkcLOHU60RIg5wC4ZuTC7FaHKQm8Hq1fQuSOBvX/sodmNJSB5geaF5CPIkUeecdMxieoRO5jz9bheL6/tXjrwCyX/UYBUcjCaWHljx1xiX6z9xEjkYAzbGVnB8pvLmyXm9ep+W8CmsSHQQY77Zx1zboxAV0w7ybMhQmfqdmmw3nEp1I0Z+FGO6M8LZdoyZnuzzBdjISicKRnpxzI9fPb+0oYXsNdyi+d3h9bm9MWYHFtPeIZfLwzmFDKy1ai3p+PDls1Llz4yyFpferxjnyjJDSEy9CaCx5m2cJPerq6Xm34eTrZt3PqxYO1XOwDYZrFlH1fWnpU38Y9HRze3lj0vOujZcXKuuXm3jP+s3KbZVra7y2EAAAAAASUVORK5CYII=\" alt=\"Poetry\">\n </a>\n <a href=\"https://github.com/ambv/black\">\n <img src=\"https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square\" alt=\"black\">\n </a>\n <a href=\"https://github.com/pre-commit/pre-commit\">\n <img src=\"https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=flat-square\" alt=\"pre-commit\">\n </a>\n</p>\n<p align=\"center\">\n <a href=\"https://pypi.org/project/netlify-builds/\">\n <img src=\"https://img.shields.io/pypi/v/netlify-builds.svg?logo=python&logoColor=fff&style=flat-square\" alt=\"PyPI Version\">\n </a>\n <img src=\"https://img.shields.io/pypi/pyversions/netlify-builds.svg?style=flat-square&logo=python&logoColor=fff\" alt=\"Supported Python versions\">\n <img src=\"https://img.shields.io/pypi/l/netlify-builds.svg?style=flat-square\" alt=\"License\">\n</p>\n\n---\n\n**Source Code**: <a href=\"https://github.com/browniebroke/netlify-builds\" target=\"_blank\">https://github.com/browniebroke/netlify-builds</a>\n\n---\n\nA command line utility to check build usage across multiple Netlify accounts\n\n## Installation\n\nRecommended to install this via [pipx]:\n\n`pipx install netlify-builds`\n\n## Setup\n\nCreate a `.netlify-builds.json` in your home directory with the following shape:\n\n```json\n{\n \"team-name-1\": \"access-token-1\",\n \"team-name-2\": \"access-token-2\",\n ...\n}\n```\n\nTo obtain the token for each team, open a private browsing session and login to your team dashboard and copy it from the local storage, it should be located under the key `nf-session`.\n\nDO NOT LOG OUT. Instead, simply close the private browsing session. If you log out, the token will be invalidated.\n\n## Profit\n\nYou're good to go, check all your accounts from the comfort of your terminal:\n\n```\n\u279c netlify-builds\n\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2533\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503 Team \u2503 Mins \u2503 Start Date \u2503 End Date \u2503 Elapsed \u2503 Used \u2503\n\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2547\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n\u2502 team-blue \u2502 5 mins \u2502 2020-11-16 \u2502 2020-12-16 \u2502 11.6% \u2502 1.7% \u2502\n\u2502 team-red \u2502 182 mins \u2502 2020-10-27 \u2502 2020-11-27 \u2502 75.9% \u2502 60.7% \u2502\n\u2502 team-green \u2502 46 mins \u2502 2020-11-02 \u2502 2020-12-02 \u2502 58.3% \u2502 15.3% \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\nIf you're likely to exceed the free quota (300 mins) the rows will appear in red, otherwise in green.\n\n## Contributors \u2728\n\nThanks goes to these wonderful people ([emoji key]):\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n<!-- prettier-ignore-start -->\n<!-- markdownlint-disable -->\n<table>\n <tr>\n <td align=\"center\"><a href=\"https://browniebroke.com/\"><img src=\"https://avatars1.githubusercontent.com/u/861044?v=4?s=80\" width=\"80px;\" alt=\"\"/><br /><sub><b>Bruno Alla</b></sub></a><br /><a href=\"https://github.com/browniebroke/netlify-builds/commits?author=browniebroke\" title=\"Code\">\ud83d\udcbb</a> <a href=\"https://github.com/browniebroke/netlify-builds/commits?author=browniebroke\" title=\"Documentation\">\ud83d\udcd6</a> <a href=\"#ideas-browniebroke\" title=\"Ideas, Planning, & Feedback\">\ud83e\udd14</a></td>\n </tr>\n</table>\n\n<!-- markdownlint-restore -->\n<!-- prettier-ignore-end -->\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\nThis project follows the [all-contributors] specification. Contributions of any kind welcome!\n\n## Credits\n\nThis package was created with [Cookiecutter] and the [browniebroke/cookiecutter-pypackage][bb-cc-pypkg] project template.\n\n[pipx]: https://pipxproject.github.io/pipx/\n[emoji key]: https://allcontributors.org/docs/en/emoji-key\n[all-contributors]: https://github.com/all-contributors/all-contributors\n[cookiecutter]: https://github.com/audreyr/cookiecutter\n[bb-cc-pypkg]: https://github.com/browniebroke/cookiecutter-pypackage\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A command line utility to check build usage across multiple Netlify accounts",
"version": "1.1.8",
"project_urls": {
"Bug Tracker": "https://github.com/browniebroke/netlify-builds/issues",
"Changelog": "https://netlify-builds.readthedocs.io/changelog.html",
"Homepage": "https://github.com/browniebroke/netlify-builds",
"Mastodon": "https://fosstodon.org/@browniebroke",
"Repository": "https://github.com/browniebroke/netlify-builds",
"Twitter": "https://twitter.com/_BrunoAlla"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3e7f2f6b38990e0a0ce6ce8ced540fad72915bec959909d876ce831d39306b14",
"md5": "dd00370c66dfd16475354b6c8b57193c",
"sha256": "6d3f15560dd51b480fe1f98809c8581db65353c0a87dbcc549ccb3e5102fc640"
},
"downloads": -1,
"filename": "netlify_builds-1.1.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "dd00370c66dfd16475354b6c8b57193c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8,<4.0",
"size": 6570,
"upload_time": "2024-03-01T09:20:48",
"upload_time_iso_8601": "2024-03-01T09:20:48.861870Z",
"url": "https://files.pythonhosted.org/packages/3e/7f/2f6b38990e0a0ce6ce8ced540fad72915bec959909d876ce831d39306b14/netlify_builds-1.1.8-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "be01483860771ef6aee66646f7642569d9ed73298391d38e53ed479dc2698cf2",
"md5": "7223d46e0ed8c06ce56c8b8566ec80bf",
"sha256": "908a6f1bb3a3aa57db5d08da55043a5dd63c3070a09bbd78507a891722886d5a"
},
"downloads": -1,
"filename": "netlify_builds-1.1.8.tar.gz",
"has_sig": false,
"md5_digest": "7223d46e0ed8c06ce56c8b8566ec80bf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8,<4.0",
"size": 6487,
"upload_time": "2024-03-01T09:20:50",
"upload_time_iso_8601": "2024-03-01T09:20:50.541356Z",
"url": "https://files.pythonhosted.org/packages/be/01/483860771ef6aee66646f7642569d9ed73298391d38e53ed479dc2698cf2/netlify_builds-1.1.8.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-03-01 09:20:50",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "browniebroke",
"github_project": "netlify-builds",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "netlify-builds"
}