GithubHelp home page GithubHelp logo

isabella232 / releasekit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from zestia/releasekit

0.0 0.0 0.0 819 KB

๐ŸŒ Command-line app to create GitHub releases

License: BSD 3-Clause "New" or "Revised" License

Makefile 2.95% Go 97.05%

releasekit's Introduction

releasekit

CLI app to create GitHub releases based on issues and pull requests.

Installation

To get the most up to date binaries, check the releases for the pre-built binary for your system.

You can also go get to install from source.

go get -u github.com/tombell/releasekit/cmd/releasekit

On macOS you can use Homebrew to install.

brew tap tombell/formulae && brew install tombell/formulae/releasekit

Usage

Use the -h/--help flag to see all the available flags when running releasekit.

You will need a GitHub API token when running releasekit. It's advised you create a token specifically for releasekit.

Generating a New GitHub API Token

Visit the Developer Settings and click to generate a new Personal access token. If your repository is private, select the repo scope, otherwise public_repo will do just fine.

Creating a Release

To create a new release, the tag you want to cut a release for should be pushed to GitHub.

releasekit -t $GITHUB_TOKEN -o tombell -r releasekit -p v0.1.0 -n v0.2.0 --dry

This will print then release notes for v0.2.0, and will generate the notes from closed issues and merged pull requests between v0.1.0 and v0.2.0.

If you're happy with the release notes, you can rerun the command omitting the --dry flag. This will go ahead and create the release on the GitHub repository.

Updating a Release

To update an existing release, you can rerun the command again, including any additional flags.

releasekit -t $GITHUB_TOKEN -o tombell -r releasekit -p v0.1.0 -n v0.2.0 --attachment docs/api.md

This will update the existing v0.2.0 release created above, it will also attach the docs/api.md file as a release asset when updating.

Draft and Pre-Release Releases

To mark a release as a draft you can use the --draft flag. This will create the release as a draft, and not associate it with a tag name.

releasekit -t $GITHUB_TOKEN -o tombell -r releasekit -p v0.1.0 -n v0.2.0 --draft

There are some limitations when using the --draft flag, if you rerun the command without the --draft flag, it will create a new release but not remove the old draft.

To mark a release as a pre-release you can use the --prerelease flag. This will create or update a release as a pre-release.

releasekit -t $GITHUB_TOKEN -o tombell -r releasekit -p v0.1.0 -n v0.2.0 --prerelease

You can rerun the command without the --prerelease flag, to remove the pre-release mark from the release.

Including Labels

If you would like to highlight specific labels on pull requests/issues in the release notes, you can use the --label flag.

releasekit -t $GITHUB_TOKEN -o tombell -r releasekit -p v0.1.0 -n v0.2.0 --label bug

The release on GitHub would then have bug next to any item that had the bug label.

Attaching Release Assets

When you create or update a release, you can attach any files as release assets using the --attachment flag. This flag can be used multiple times to attach multiple release assets.

releasekit -t $GITHUB_TOKEN -o tombell -r releasekit -p v0.1.0 -n v0.2.0 --attachment docs/file1 --attachment docs/file2

The release on GitHub would then have file1 and file2 as assets available to download.

Watching Specific Files

If you would like to include in the release notes if a specific file has changed in this release, you can use the --watch flag. This flag can be used multiple times to watch multiple files.

releasekit -t $GITHUB_TOKEN -o tombell -r releasekit -p v0.1.0 -n v0.2.0 --watch cmd/releasekit/main.go --watch releasekit.go

This will include an additional section at the bottom of the release listing these files if they've changed, and a link to the compare page on GitHub.

releasekit's People

Contributors

bobek-balinek avatar tombell avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.