Skip to main content

github-binary-upload is a utility for publishing releases from tags with attached files on GitHub.

Project description

GitHub Binary Upload

Introduction

github-binary-upload is a script for creating GitHub releases from Git tags with attached assets.

Installation

  • From PyPI:

    python3 -m pip install github-binary-upload
    
  • Self-contained executables for Linux x86_64 with glibc >= 2.17 (any recent Linux distribution) and macOS High Sierra and newer are available on the releases page.

  • AUR package for Arch Linux users: python-github-binary-upload

Usage

After installation you can run github-binary-upload:

usage: github-binary-upload [-h] [-g GITHUB_SERVER] [-c CREDENTIALS_FILE] [-l]
                            [-n] [-u USERNAME] [-V]
                            [project] [tag] [assets [assets ...]]

github-binary-upload is a utility for publishing releases from tags with attached files on GitHub.

positional arguments:
  project               GitHub project in the format "<user>/<project name>"
  tag                   tag that will be published as a release, ignored if '
                        --latest' is given
  assets                files that will be attached to the release

optional arguments:
  -h, --help            show this help message and exit
  -g GITHUB_SERVER, --github-server GITHUB_SERVER
                        GitHub server hostname (default: github.com)
  -c CREDENTIALS_FILE, --credentials-file CREDENTIALS_FILE
                        path to a file containing username and password/access
                        token (on two separate lines, default: ~/.github-
                        binary-uploadrc)
  -l, --latest          get the latest tag from the GitHub API
  -n, --dry-run         only print which releases would be published
  -u USERNAME, --user USERNAME
                        user account for querying the GitHub API; the password
                        is read from stdin
  -V, --version         print the version number and exit

Example

Run

github-binary-upload -u ExampleUser -l ExampleUser/ExampleProject MyFirstAsset.zip MySecondAsset.whl

to create a release from the latest tag in the GitHub project ExampleUser/ExampleProject. The files MyFirstAsset.zip and MySecondAsset.whl will be attached as downloadable files.

github-binary-upload can be called multiple times on the same tag. The release will be recreated each time. This is especially useful to CI pipelines which can run more than once.

Python API

github-binary-upload defines a function publish_release_from_tag which can be called from Python code:

from github_binary_upload import publish_release_from_tag


publish_release_from_tag(
    project, tag, assets, github_server, username, password, dry_run
)

If tag is None, the latest tag will be converted to a GitHub release. dry_run is an optional parameter which defaults to False.

Contributing

Please open an issue on GitHub if you experience bugs or miss features. Please consider to send a pull request if you can spend time on fixing the issue yourself. This project uses pre-commit to ensure code quality and a consistent code style. Run

make git-hooks-install

to install all linters as Git hooks in your local clone of github-binary-upload.

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

github-binary-upload-0.1.8.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

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

github_binary_upload-0.1.8-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file github-binary-upload-0.1.8.tar.gz.

File metadata

  • Download URL: github-binary-upload-0.1.8.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for github-binary-upload-0.1.8.tar.gz
Algorithm Hash digest
SHA256 92d5261762af7e88c6c6de0d63b237ea48aefec9398062bb9e97bbdadad05040
MD5 de0f3a7a55e8d9e0717d05a447c9fb42
BLAKE2b-256 e6310f3e3db2e88ee9d115e2ab4942577dfe0a182daa7abc3a236c6c8f152948

See more details on using hashes here.

File details

Details for the file github_binary_upload-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: github_binary_upload-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for github_binary_upload-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 e442b75ad46619a3b5606478f45a1927d8446f81b973905004e480002afeecf6
MD5 88325e6e889d6180c9de1f5e777585e0
BLAKE2b-256 56c094db96705adf19956127e3fe0ae8279d528e1e4bbf246d6d78514e5406f6

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