Skip to main content

Simple Github CLI release helper

Project description

Creating releases from browser can be a bit tedious if you already wrote the release notes and prepared packages in your beloved terminal. But fear not my friend, this simple wrapper makes it possible to do the finishing touches without having to switch to the browser.

Quickstart

Installing this package is as simple as running:

$ pip install release-me

This being out of the way, we must now obtain the personal access token that this client will use to interact with Github’s API. How to get one is neatly described on Github’s personal access token page.

Now that we created the token, we must inform our tool about it. We do this by setting RELEASEME_TOKEN environment variable that contains the token:

$ export RELEASEME_TOKEN=our-token-from-github

Now we are ready to create some releases (and then delete them once we discover that our code sucks and create them again once we fix most of the bugs). But before we can proceed, we must write down release notes:

$ cd /home/tadej/personal/release-me
$ cat <<EOF > release.notes
> This is the initial release of release-me package.
>
> I would like to say thank you to my kids for being a good sports and
> getting to bed early, which gives me time to write dummy release notes.
> EOF

That should do it. Now, we would also like to host our python package on release page, just because we can. So we will build a tarball that will be added to release. You can leave out this step if adding assets to release is not something you would like to do. So, building a package:

$ python setup.py sdist
running sdist
[pbr] Writing ChangeLog
[pbr] Generating ChangeLog
[pbr] ChangeLog complete (0.0s)
...
Creating tar archive
removing 'release-me-0.3.0' (and everything under it)

Now we can finally promote 0.3.0 tag in tadeboro/release-me repository to full release named The best release ever:

$ releaseme create -r tadeboro/release-me -t 0.3.0 -n release.notes \
>   -l "The best release ever" -a dist/release-me-0.3.0.tar.gz
[INFO] - Creating release for tag tadeboro/release-me 0.3.0
[INFO] - Uploading asset dist/release-me-0.3.0.tar.gz for 5837083

And this is it. We are done.

We can have a look at the fruits of our labor by running get command. Yep, we have a get command to:

$ releaseme get -r tadeboro/release-me -t 0.3.0
[INFO] - Getting release for tag 0.3.0
{
  "created_at": "2016-07-17T16:58:03Z",
...
  "url": "https://api.github.com/repos/tadeboro/release-me/releases/5837083",
  "zipball_url": "https://api.github.com/repos/tadeboro/release-me/zipball/0.3.0"
}

And when we realize that releasing our code after drinking n beers was not the brightest idea we had this week, we can remove the release by running:

$ releaseme delete -r tadeboro/release-me -t 0.3.0
[INFO] - Getting release for tag 0.3.0
[INFO] - Deleting release for tag 0.3.0

More documentation

There is no more documentation. If you feel you need more information, feel free to read the sources.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

release_me-0.3.1-py2.py3-none-any.whl (9.6 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file release_me-0.3.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for release_me-0.3.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5961332ade9b96f3517776bf2d23a1a41236ea0838bf533bcdcd25d16ecca7d6
MD5 fd10c3f22716b33f8e15fa10b95d1127
BLAKE2b-256 27a9e2cd402c96e9df3afaa6e71ed1b9f6af2d7b369c935822d8b89eae8c433a

See more details on using hashes here.

Supported by

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