gh-release-create - Create a new release
Contents
Description
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 point to a different branch or commit for the automatic tag creation.
Use --verify-tag to abort the release if the tag doesn't already exist. To fetch the new tag locally
after the release, do gitfetch--tagsorigin.
To create a release from an annotated git tag, first create one locally with git, push the tag to GitHub,
then run this command. Use --notes-from-tag to automatically generate the release notes from the
annotated git tag.
When using automatically generated release notes, a release title will also be automatically generated
unless a title was explicitly passed. Additional release notes can be prepended to automatically
generated notes by using the --notes flag.
Example
Interactively create a release
$ gh release create
Interactively create a release from specific tag
$ gh release create v1.2.3
Non-interactively create a release
$ gh release create v1.2.3 --notes "bugfix release"
Use automatically generated release notes
$ gh release create v1.2.3 --generate-notes
Use release notes from a file
$ gh release create v1.2.3 -F changelog.md
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/asset.zip#My display label'
Create a release and start a discussion
$ gh release create v1.2.3 --discussion-category "General"
Name
gh-release-create - Create a new release
Options
--discussion-category<string>
Start a discussion in the specified category
-d, --draft
Save the release as a draft instead of publishing it
--generate-notes
Automatically generate title and notes for the release
--latest
Mark this release as "Latest" (default [automatic based on date and version])
-n, --notes<string>
Release notes
-F, --notes-file<file>
Read release notes from file (use "-" to read from standard input)
--notes-from-tag
Automatically generate notes from annotated tag
--notes-start-tag<string>
Tag to use as the starting point for generating release notes
-p, --prerelease
Mark the release as a prerelease
--target<branch>
Target branch or full commit SHA (default [main branch])
-t, --title<string>
Release title
--verify-tag
Abort in case the git tag doesn't already exist in the remote repository
Options Inherited From Parent Commands
-R, --repo<[HOST/]OWNER/REPO>
Select another repository using the [HOST/]OWNER/REPO format
See Also
gh-release(1) Jan 2025 GH-RELEASE-CREATE(1)
Synopsis
ghreleasecreate[<tag>][<files>...]
