{"id":20918806,"url":"https://github.com/thegamecracks/github-release-downloader","last_synced_at":"2025-12-24T20:52:43.038Z","repository":{"id":168835225,"uuid":"614054407","full_name":"thegamecracks/github-release-downloader","owner":"thegamecracks","description":"A Python CLI application for downloading GitHub release assets.","archived":false,"fork":false,"pushed_at":"2023-07-25T04:18:51.000Z","size":267,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-19T16:50:48.225Z","etag":null,"topics":["github","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thegamecracks.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-14T19:53:19.000Z","updated_at":"2023-09-19T15:11:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"15e54e46-2d28-4f24-bee2-f3b15a924fc1","html_url":"https://github.com/thegamecracks/github-release-downloader","commit_stats":null,"previous_names":["thegamecracks/github-release-downloader"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thegamecracks%2Fgithub-release-downloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thegamecracks%2Fgithub-release-downloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thegamecracks%2Fgithub-release-downloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thegamecracks%2Fgithub-release-downloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thegamecracks","download_url":"https://codeload.github.com/thegamecracks/github-release-downloader/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243312923,"owners_count":20271167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github","python"],"created_at":"2024-11-18T16:40:00.890Z","updated_at":"2025-12-24T20:52:42.984Z","avatar_url":"https://github.com/thegamecracks.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# github-release-downloader\n\n![A demonstration of the program in bash](/images/demo-2023-03-15.png)\n\nA command-line program written in Python for downloading GitHub release assets.\n\n## Notice\n\n[github-release-downloader on PyPI](https://pypi.org/project/github-release-downloader/)\nis a completely distinct project authored by MaxBQb.\nCheck out [their repository](https://github.com/MBQbUtils/GithubReleaseDownloader)\nif you are interested in a library+CLI for the same purpose!\n\n## Features\n\n### Authenticated API requests\n\nA [Personal Access Token] can be provided to the program using the `grd auth`\ncommand. This allows for making authenticated API requests, which are not\nlimited to the usual [60 requests/hour] rate limit. This application only\nrequires read permission for whatever repositories you will be downloading\nfrom (for classic tokens, they should have the `repo:public_repo` permission).\n\n[Personal Access Token]: https://github.com/settings/tokens\n[60 requests/hour]: https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting\n\n### API response caching\n\nAPI responses are cached in an [SQLite] database to reduce API requests that\nwould count against your current rate limit.\n\n[SQLite]: https://sqlite.org/index.html\n\n### Encryption-at-rest support\n\nIf the [SQLite] library used by your Python installation has encryption support\n(for example [SEE], [SQLCipher], and [SQLiteMultipleCiphers]), the `grd encrypt`\ncommand can be used to add a custom passphrase, protecting your access token from\nbeing misused. Each time the database needs to be opened, you will be prompted\nfor your passphrase.\n\n[SEE]: https://sqlite.org/see/doc/release/www/readme.wiki\n[SQLCipher]: https://github.com/sqlcipher/sqlcipher\n[SQLiteMultipleCiphers]: https://github.com/utelle/SQLite3MultipleCiphers/\n\n## Dependencies\n\n- [Python 3.11] or higher\n\n[Python 3.11]: https://www.python.org/downloads/\n\n## Usage\n\n1. Install github-release-downloader.\n\n   If you have Git installed, you can run the following command:\n\n   ```sh\n   pip install git+https://github.com/thegamecracks/github-release-downloader\n   ```\n\n   For users without Git, you can download the repository [as a zip], then\n   extract it, open a terminal inside the directory, and run:\n\n   ```sh\n   pip install .\n   ```\n\n   Several dependencies are required by this project so installing in\n   a [virtual environment] is recommended. If you prefer to not handle\n   the virtual environment yourself, installing this through [pipx] is\n   a good alternative:\n\n   ```sh\n   pip install pipx  # see their proper installation instructions on PyPI\n   pipx install git+https://github.com/thegamecracks/github-release-downloader\n   ```\n\n2. (Optional) Create and add a [Personal Access Token](#authenticated-api-requests).\n\n3. Run `grd download \u003cowner\u003e \u003crepo\u003e` to download an asset from that repository,\n   or alternatively `python -m grd download \u003cowner\u003e \u003crepo\u003e`.\n\n[as a zip]: https://github.com/thegamecracks/github-release-downloader/archive/refs/heads/main.zip\n[virtual environment]: https://docs.python.org/3/library/venv.html\n[pipx]: https://pypi.org/project/pipx/\n\n## Development\n\n### Project Structure\n\n- src/\n   - alembic/ - Contains the [alembic] database migration scripts.\n   - cli/ - Implements the command-line interface with [Click].\n   - client/ - Provides the API client and [Pydantic] models to interact with GitHub.\n   - database/ - Defines the [SQLAlchemy] models and connections to the SQLite database.\n\n[alembic]: https://alembic.sqlalchemy.org/\n[Click]: https://click.palletsprojects.com/\n[Pydantic]: https://docs.pydantic.dev/\n[SQLAlchemy]: https://docs.sqlalchemy.org/en/20/\n\n### Todo-list\n\n- [ ] `list \u003cowner\u003e \u003crepo\u003e` - list available releases for a repository\n- [ ] Allow downloading tar/zip archives\n\n### Wishlist\n\n- [ ] Terminal user interface (perhaps with [textual]?)\n\n[textual]: https://github.com/Textualize/textual\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthegamecracks%2Fgithub-release-downloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthegamecracks%2Fgithub-release-downloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthegamecracks%2Fgithub-release-downloader/lists"}