gitlab-release
GitLab release operations. ALWAYS use this skill when user wants to: (1) list releases, (2) view release details, (3) create new releases, (4) upload assets, (5) delete releases.
What this skill does
# Release 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 ```bash glab release list [options] ``` **Options:** | Flag | Description | |------|-------------| | `-P, --per-page=<n>` | Results per page | | `--all` | Get all releases | **Examples:** ```bash # List all releases glab release list # List with more results glab release list --per-page=50 ``` ### View Release Details ```bash glab release view <tag> [options] ``` **Options:** | Flag | Description | |------|-------------| | `-w, --web` | Open release in browser | **Examples:** ```bash # View release details glab release view v1.0.0 # Open release in browser glab release view v1.0.0 --web ``` ### Create Release ```bash 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:** ```bash # 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 ```bash glab release upload <tag> <file>... [options] ``` Upload files as release assets. **Examples:** ```bash # 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 ```bash glab release download <tag> [options] ``` **Options:** | Flag | Description | |------|-------------| | `-D, --dir=<dir>` | Download directory | | `-n, --asset-name=<name>` | Download specific asset by name | **Examples:** ```bash # 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 ```bash 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:** ```bash # 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 ```bash # 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 ```bash # 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 ```bash # 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: ```markdown ## 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 - [Safeguards](../shared/docs/SAFEGUARDS.md) - [Quick Reference](../shared/docs/QUICK_REFERENCE.md)
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.