Skip to main content

ghrelease – a GitHub release helper

Author:

Stefan Eletzhofer

Abstract

This is a little tool to help me with releasing stuff to GitHub.

Synopsis

ghrelease - a GitHub release helper

Usage:
    ghrelease --version
    ghrelease [options] list <reponame>
    ghrelease [options] create --tag=TAG [--name=RELEASE_NAME] [--body=FILE] [--draft | --prerelease] <reponame> [<file>...]
    ghrelease [options] upload --tag=TAG <reponame> <file>...
    ghrelease [options] open (--tag=TAG | --latest) <reponame>

The `list` command lists available releases.

The `create` command creates new releases, optionally uploading some assets.

The `upload` command uploads assets to a existing release.  It's not possible to
replace assets -- the command will complain if you're trying to upload an existing
asset.

The `open` command opens the release's web page in the system default browser.

Options:
    -h --help           show this help
    -u --user=USER      github login name
    -p --password=PASS  github password
    --password-env=ENV  read password from system environment [default: GHRELEASE_PASS]
    --user-env=ENV      read user name from system environment [default: GHRELEASE_USER]
    --owner=OWNER       github owner [defaults to the user name]
    --debug             debug logging
    -v, --verbose       print more text

Examples

Listing all releases of a given repository:

$ ghrelease --user fred --pass s3kr17 list some-repo
RELEASE    release-name (v0.3) @ https://github.com/fred/some-repo/releases/tag/v0.3
PRERELEASE release-name (v0.2) @ https://github.com/fred/some-repo/releases/tag/v0.2
PRERELEASE release-name (v0.1) @ https://github.com/fred/some-repo/releases/tag/v0.1

Passing credentials via command line is insecure and ugly:

$ export GHRELEASE_USER=fred
$ export GHRELEASE_PASS=s3kr71
$ ghrelease list some-repo
RELEASE    release-name (v0.3) @ https://github.com/fred/some-repo/releases/tag/v0.3
PRERELEASE release-name (v0.2) @ https://github.com/fred/some-repo/releases/tag/v0.2
PRERELEASE release-name (v0.1) @ https://github.com/fred/some-repo/releases/tag/v0.1

Creating a new release for tag v0.4 named super-duper, using the local file docs/changelog.rst as release notes, uploading some zip file:

$ ghrelease create some-repo v0.4 --name super-duper --body docs/changelog.rst super-duper-0-4.zip
Release created:
RELEASE    super-duper (v0.4) @ https://github.com/fred/some-repo/releases/tag/v0.4
uploading super-duper-0-4.zip (application/octet-stream) ...

Open the web page of that release:

$ ghrelease open --tag v0.4 some-repo

Uploading assets to an existing release:

$ ghrelease upload some-repo --tag v0.4 super-duper-0-4-docs.zip LICENSE
uploading file super-duper-0-4-docs.zip (application/octet-stream) ...
uploading file LICENSE (application/octet-stream) ...

Release files for ghrelease 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for ghrelease 0.1.2
File Interpreter ABI Platform
ghrelease-0.1.2-py2.7.egg Legacy Egg format - - Details

Release files / ghrelease-0.1.2-py2.7.egg

Download URL ghrelease-0.1.2-py2.7.egg
Size 2.4 kB
Tags Egg
SHA-256 checksum
How to use checksums
ede01c7e01c5880e9e7e83e04d223f5f6be442ec604caab2ae86905d9d06a7fc
BLAKE2b-256 checksum
How to use checksums
d260a7dd569113576809f59b72bbe97bea411142683a834e0e18b7484901dc4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1.2 This release

1 release file

0.1.1

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page