gh release create

Create a new release


Create a new GitHub Release for a repository.

A list of asset files may be given to upload to the new release. To define a display label for an asset, append text starting with # after the file name.

If a matching git tag does not yet exist, one will automatically get created from the latest state of the default branch. Use --target to override this. To fetch the new tag locally after the release, do git fetch --tags origin.

To create a release from an annotated git tag, first create one locally with git, push the tag to GitHub, then run this command.

gh release create <tag> [<files>...]


Interactively create a release
$ gh release create v1.2.3

Non-interactively create a release
$ gh release create v1.2.3 --notes "bugfix release"

Use release notes from a file
$ gh release create v1.2.3 -F

Upload all tarballs in a directory as release assets
$ gh release create v1.2.3 ./dist/*.tgz

Upload a release asset with a display label
$ gh release create v1.2.3 '/path/to/ display label'

Create a release and start a discussion
$ gh release create v1.2.3 --discussion-category "General"


      --discussion-category string   Start a discussion of the specified category
  -d, --draft                        Save the release as a draft instead of publishing it
  -n, --notes string                 Release notes
  -F, --notes-file file              Read release notes from file
  -p, --prerelease                   Mark the release as a prerelease
      --target branch                Target branch or full commit SHA (default: main branch)
  -t, --title string                 Release title

Options inherited from parent commands

      --help                     Show help for command
  -R, --repo [HOST/]OWNER/REPO   Select another repository using the [HOST/]OWNER/REPO format