Tools for data wrangling in github releases
Project description
Release Tools

This project provides a set of tools for managing files in GitHub releases. This assumes that gh (the GitHub CLI) is installed and configured on your system, as it is used to interact with GitHub releases.
Features
- Generate file lists: Create a CSV file containing a list of all files in a GitHub release.
- Upload files to a release: Upload files from a local directory to a GitHub release, with an option to overwrite existing files.
Installation
This project is packaged using Hatch. To install the tools, you can run the following command:
pip install .
This will install the release-tools package and make the following command-line tools available:
generate-listsupload-to-release
Usage
It is recommended to run the tools using uvx to avoid dependency conflicts with other installed packages.
uvx
uvx --from gh_release_tools generate-lists <release_base> <extension>
uvx --from gh_release_tools upload-to-release <tag> <folder> <extension_without_the_leading_dot> [yes_to_overwrite]
generate-lists
This tool generates a CSV file named listing_files.csv containing a list of assets from a specified GitHub release and its associated -extra releases. The CSV file includes the file name, size, and download URL for each asset.
Usage:
generate-lists <release_base> <extension>
Arguments:
<release_base>: The base name of the GitHub release (e.g.,v1.0.0).<extension>: The file extension of the assets to include in the list (e.g.,.zip).
Example:
generate-lists v1.0.0 .zip
This command will generate a listing_files.csv file with a list of all .zip files from the v1.0.0 release and any releases named v1.0.0-extra<number>.
upload-to-release
This tool uploads files from a local folder to a GitHub release. It can be configured to skip files that already exist in the release or to overwrite them.
Usage:
upload-to-release <tag> <folder> <extension_without_the_leading_dot> [yes_to_overwrite]
Arguments:
<tag>: The git tag of the release to upload to.<folder>: The local folder containing the files to upload.<extension_without_the_leading_dot>: The file extension of the files to upload (e.g.,zip).[yes_to_overwrite]: (Optional) Set toyesto overwrite existing assets in the release.
Example:
upload-to-release v1.0.0 /path/to/files zip
This command will upload all .zip files from the /path/to/files directory to the v1.0.0 release. If a file with the same name already exists in the release, it will be skipped. To overwrite existing files, use the following command:
upload-to-release v1.0.0 /path/to/files zip yes
Note: These tools are being used for my personal projects and are not meant for general public use.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gh_release_tools-0.1.0.tar.gz.
File metadata
- Download URL: gh_release_tools-0.1.0.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4bbb2883fd35e5de983ca5844cc57aa7bfaeb774dc47e6adecc627e5a05a4bc8
|
|
| MD5 |
acd15c83eb2ebcb8c4b6c0fe643fd39f
|
|
| BLAKE2b-256 |
246b227d2701005a847cf4f5773a754414e6e09da16c282ba3c021e6a0dad286
|
File details
Details for the file gh_release_tools-0.1.0-py3-none-any.whl.
File metadata
- Download URL: gh_release_tools-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.8.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
575454147686b382482b515f21eb2685e1b36d5315f7efb174cf859f175567f9
|
|
| MD5 |
2c9d5fd21a8840c7fe72153c036dedd3
|
|
| BLAKE2b-256 |
591d564112b61809755aa98b0f8a209b0321a8059cecfe4d4bc4af64cee4fdd2
|