gitlab-release
npx machina-cli add skill grandcamel/GitLab-Assistant-Skills/gitlab-release --openclawRelease Skill
Release operations for GitLab using the glab CLI.
Quick Reference
| Operation | Command | Risk |
|---|---|---|
| List releases | glab release list | - |
| View release | glab release view <tag> | - |
| Create release | glab release create <tag> | ⚠️ |
| Upload assets | glab release upload <tag> <files> | ⚠️ |
| Download assets | glab release download <tag> | - |
| Delete release | glab release delete <tag> | ⚠️⚠️ |
Risk Legend: - Safe | ⚠️ Caution | ⚠️⚠️ Warning | ⚠️⚠️⚠️ Danger
When to Use This Skill
ALWAYS use when:
- User wants to work with releases
- User mentions "release", "version", "changelog", "tag" (for releases)
- User wants to publish or distribute software versions
NEVER use when:
- User wants to manage git tags directly (use git commands)
- User wants CI/CD operations (use gitlab-ci instead)
Available Commands
List Releases
glab release list [options]
Options:
| Flag | Description |
|---|---|
-P, --per-page=<n> | Results per page |
--all | Get all releases |
Examples:
# List all releases
glab release list
# List with more results
glab release list --per-page=50
View Release Details
glab release view <tag> [options]
Options:
| Flag | Description |
|---|---|
-w, --web | Open release in browser |
Examples:
# View release details
glab release view v1.0.0
# Open release in browser
glab release view v1.0.0 --web
Create Release
glab release create <tag> [options]
Options:
| Flag | Description |
|---|---|
-n, --notes=<notes> | Release notes |
-F, --notes-file=<file> | Read release notes from file |
-N, --name=<name> | Release name (defaults to tag) |
-r, --ref=<ref> | Git ref to create tag from (if tag doesn't exist) |
-a, --assets-links=<json> | JSON array of asset links |
--milestone=<titles> | Milestone titles to associate |
Examples:
# Create simple release
glab release create v1.0.0
# Create with release notes
glab release create v1.0.0 -n "## What's New
- Feature A
- Bug fix B"
# Create with notes from file
glab release create v1.0.0 -F CHANGELOG.md
# Create with name and milestone
glab release create v1.0.0 -N "Version 1.0.0" --milestone="Sprint 5"
# Create from specific commit
glab release create v1.0.0 -r abc123def
Upload Assets
glab release upload <tag> <file>... [options]
Upload files as release assets.
Examples:
# Upload single file
glab release upload v1.0.0 ./dist/app.zip
# Upload multiple files
glab release upload v1.0.0 ./dist/*.tar.gz
# Upload with custom name
glab release upload v1.0.0 ./build/app.exe#windows-binary
Download Assets
glab release download <tag> [options]
Options:
| Flag | Description |
|---|---|
-D, --dir=<dir> | Download directory |
-n, --asset-name=<name> | Download specific asset by name |
Examples:
# Download all assets
glab release download v1.0.0
# Download to specific directory
glab release download v1.0.0 -D ./downloads/
# Download specific asset
glab release download v1.0.0 -n "app.zip"
Delete Release
glab release delete <tag> [options]
Options:
| Flag | Description |
|---|---|
-y, --yes | Skip confirmation |
--with-tag | Also delete the associated tag |
Warning: This permanently deletes the release.
Examples:
# Delete release (prompts for confirmation)
glab release delete v1.0.0
# Delete release and tag
glab release delete v1.0.0 --with-tag
# Delete without confirmation
glab release delete v1.0.0 --yes
Common Workflows
Workflow 1: Standard Release
# 1. Ensure all changes are merged
glab mr list --state=opened
# 2. Verify CI passes
glab ci status --branch=main
# 3. Create release with changelog
glab release create v1.2.0 -F CHANGELOG.md -N "Version 1.2.0"
# 4. Upload binaries
glab release upload v1.2.0 ./dist/*
Workflow 2: Pre-release
# Create pre-release version
glab release create v2.0.0-beta.1 \
-n "Beta release for testing. Not for production use."
Workflow 3: Hotfix Release
# 1. Create release from hotfix branch
glab release create v1.0.1 -r hotfix/critical-fix \
-n "Hotfix release:
- Fixed critical security issue"
# 2. Upload patched binaries
glab release upload v1.0.1 ./dist/*
Release Notes Best Practices
Structure your release notes:
## What's New
- Feature descriptions
## Bug Fixes
- Fix descriptions
## Breaking Changes
- Migration notes
## Contributors
- @username
Troubleshooting
| Issue | Cause | Solution |
|---|---|---|
| Authentication failed | Invalid/expired token | Run glab auth login |
| Tag already exists | Duplicate release | Use different tag or delete existing |
| Release not found | Invalid tag | Verify tag with glab release list |
| Upload failed | File not found | Check file path exists |
Related Documentation
Source
git clone https://github.com/grandcamel/GitLab-Assistant-Skills/blob/main/skills/gitlab-release/SKILL.mdView on GitHub Overview
This skill automates GitLab release management using the glab CLI. It covers listing releases, viewing details, creating new releases with notes, uploading assets, and deleting releases, helping you version and distribute software efficiently.
How This Skill Works
The skill translates user intent into glab release commands. It uses glab release list to fetch releases, glab release view <tag> to inspect details, glab release create <tag> with notes and optional assets to publish a release, glab release upload to attach assets, and glab release delete <tag> to remove a release. Options like -n, -F, -a, and -w control notes, files, assets, and browser view respectively.
When to Use It
- When you want to list all releases or inspect a specific release's details
- When the user mentions release, version, changelog, or tag in the context of releases
- When publishing or distributing a new software version with notes or assets
- When you want to view release details in the browser for quick review
- When you need to permanently remove a release (use with caution)
Quick Start
- Step 1: Decide the release tag you are working with (for example, v1.0.0).
- Step 2: Run the appropriate glab release command (list, view, create, upload, delete) with needed options (notes, files, assets).
- Step 3: Confirm the result and optionally open the release in a browser with --web if needed.
Best Practices
- Verify that the target release tag exists before creating or editing
- Provide release notes with -n or from a file with -F to keep changelogs clear
- Attach assets using -a for links or glab release upload for files
- Use --web to quickly view a release page in your browser when needed
- Be cautious with deletion; prefer explicit confirmation or the -y flag when appropriate
Example Use Cases
- List all releases: glab release list
- View details for v1.0.0: glab release view v1.0.0
- Create a simple release: glab release create v1.0.0
- Upload assets to a release: glab release upload v1.0.0 ./dist/app.zip
- Delete a release: glab release delete v1.0.0