Skip to main content

Tools for data wrangling in github releases

Project description

Release Tools PyPI - Latest Version GitHub Tag

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-lists
  • upload-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 to yes to 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gh_release_tools-0.1.0.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gh_release_tools-0.1.0-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

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

Hashes for gh_release_tools-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4bbb2883fd35e5de983ca5844cc57aa7bfaeb774dc47e6adecc627e5a05a4bc8
MD5 acd15c83eb2ebcb8c4b6c0fe643fd39f
BLAKE2b-256 246b227d2701005a847cf4f5773a754414e6e09da16c282ba3c021e6a0dad286

See more details on using hashes here.

File details

Details for the file gh_release_tools-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for gh_release_tools-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 575454147686b382482b515f21eb2685e1b36d5315f7efb174cf859f175567f9
MD5 2c9d5fd21a8840c7fe72153c036dedd3
BLAKE2b-256 591d564112b61809755aa98b0f8a209b0321a8059cecfe4d4bc4af64cee4fdd2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page