# 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.

- **Type:** Skill
- **Install:** `agentstack add skill-grandcamel-gitlab-assistant-skills-gitlab-release`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [grandcamel](https://agentstack.voostack.com/s/grandcamel)
- **Installs:** 0
- **Category:** [Cloud & Infrastructure](https://agentstack.voostack.com/c/cloud-infrastructure)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [grandcamel](https://github.com/grandcamel)
- **Source:** https://github.com/grandcamel/GitLab-Assistant-Skills/tree/main/skills/gitlab-release

## Install

```sh
agentstack add skill-grandcamel-gitlab-assistant-skills-gitlab-release
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 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 ` | - |
| Create release | `glab release create ` | ⚠️ |
| Upload assets | `glab release upload  ` | ⚠️ |
| Download assets | `glab release download ` | - |
| Delete release | `glab release delete ` | ⚠️⚠️ |

**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=` | 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  [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  [options]
```

**Options:**
| Flag | Description |
|------|-------------|
| `-n, --notes=` | Release notes |
| `-F, --notes-file=` | Read release notes from file |
| `-N, --name=` | Release name (defaults to tag) |
| `-r, --ref=` | Git ref to create tag from (if tag doesn't exist) |
| `-a, --assets-links=` | JSON array of asset links |
| `--milestone=` | 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  ... [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  [options]
```

**Options:**
| Flag | Description |
|------|-------------|
| `-D, --dir=` | Download directory |
| `-n, --asset-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  [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)

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [grandcamel](https://github.com/grandcamel)
- **Source:** [grandcamel/GitLab-Assistant-Skills](https://github.com/grandcamel/GitLab-Assistant-Skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-grandcamel-gitlab-assistant-skills-gitlab-release
- Seller: https://agentstack.voostack.com/s/grandcamel
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
