.nh .TH "glab" "1" "May 2026" "Auto generated by spf13/cobra" "" .SH NAME glab-release-create - Create a new GitLab release, or update an existing one. .SH SYNOPSIS \fBglab release create [\&...] [flags]\fP .SH DESCRIPTION Create a new GitLab release for a repository, or update an existing one. Requires at least the Developer role. .PP An existing release is updated with the new information you provide. .PP To create a release from an annotated Git tag: .IP " 1." 5 Create the tag locally with Git, and push the tag to GitLab. .IP " 2." 5 Run this command. .IP " 3." 5 If the Git tag you specify doesn't exist, the command creates a release from the latest state of the default branch, and tags it with the tag name you specify. .PP To override this behavior, use \fB--ref\fR\&. The \fBref\fR can be a commit SHA, another tag name, or a branch name. 4. Optional. To fetch the new tag locally after the release, run \fBgit fetch --tags origin\fR\&. .SH OPTIONS \fB-a\fP, \fB--assets-links\fP="" JSON string representation of assets links. See documentation for example. .PP \fB-m\fP, \fB--milestone\fP=[] The title of each milestone the release is associated with. Multiple milestones can be comma-separated or specified by repeating the flag. .PP \fB-n\fP, \fB--name\fP="" The release name or title. .PP \fB--no-close-milestone\fP[=false] Prevent closing milestones after creating the release. .PP \fB--no-update\fP[=false] Prevent updating the existing release. .PP \fB-N\fP, \fB--notes\fP="" The release notes or description. Accepts Markdown. .PP \fB-F\fP, \fB--notes-file\fP="" Read release notes 'file'. To read from stdin, use '-'. .PP \fB--package-name\fP="release-assets" The package name, when uploading assets to the generic package release with --use-package-registry. .PP \fB--publish-to-catalog\fP=false \[la]EXPERIMENTAL\[ra] Publish the release to the GitLab CI/CD catalog. .PP \fB-r\fP, \fB--ref\fP="" If the specified tag doesn't exist, create a release from the ref and tag it with the specified tag name. Accepts a commit SHA, tag name, or branch name. .PP \fB-D\fP, \fB--released-at\fP="" ISO 8601 datetime when the release was ready. Defaults to the current datetime. .PP \fB-T\fP, \fB--tag-message\fP="" Message to use if creating a new annotated tag. .PP \fB--use-package-registry\fP[=false] Upload release assets to the generic package registry of the project. Overrides the GITLAB_RELEASE_ASSETS_USE_PACKAGE_REGISTRY environment variable. .SH OPTIONS INHERITED FROM PARENT COMMANDS \fB-h\fP, \fB--help\fP[=false] Show help for this command. .PP \fB-R\fP, \fB--repo\fP="" Select another repository. You can use either OWNER/REPO or GROUP/NAMESPACE/REPO. The full URL or Git URL is also accepted. .SH EXAMPLE .EX # Create a release interactively glab release create v1.0.1 # Create a release non-interactively by specifying a note glab release create v1.0.1 --notes "bugfix release" # Use release notes from a file glab release create v1.0.1 -F changelog.md # Update an existing release (e.g., change the release date) without modifying notes glab release create v1.0.1 --released-at "2024-01-15T10:00:00Z" # Upload a release asset with a display name (type will default to 'other') glab release create v1.0.1 '/path/to/asset.zip#My display label' # Upload a release asset with a display name and type glab release create v1.0.1 '/path/to/asset.png#My display label#image' # Upload all assets in a specified folder (types default to 'other') glab release create v1.0.1 ./dist/* # Upload all tarballs in a specified folder (types default to 'other') glab release create v1.0.1 ./dist/*.tar.gz # Create a release with assets specified as JSON object glab release create v1.0.1 --assets-links=' [ { "name": "Asset1", "url":"https:///some/location/1", "link_type": "other", "direct_asset_path": "path/to/file" } ]' # (EXPERIMENTAL) Create a release and publish it to the GitLab CI/CD catalog # Requires the feature flag `ci_release_cli_catalog_publish_option` to be enabled # for this project in your GitLab instance. Do NOT run this manually. Use it as part # of a CI/CD pipeline with the "release" keyword: # # - It retrieves components from the current repository by searching for # `yml` files within the "templates" directory and its subdirectories. # - It fails if the feature flag `ci_release_cli_catalog_publish_option` # is not enabled for this project in your GitLab instance. # Components can be defined: # - In single files ending in `.yml` for each component, like `templates/secret-detection.yml`. # - In subdirectories containing `template.yml` files as entry points, # for components that bundle together multiple related files. For example, # `templates/secret-detection/template.yml`. glab release create v1.0.1 --publish-to-catalog .EE .SH SEE ALSO \fBglab-release(1)\fP