vince-winkintel/gitlab-cli-skills/glab-variable

Claude Code and agent skill by vince-winkintel/gitlab-cli-skills

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Manage CI/CD variables at project and group level including create, update, import, export, list, and delete operations. Use when setting environment variables for pipelines, managing secrets, migrating variables, or configuring CI/CD variables. Triggers on variable, CI variable, environment variable, secrets, variable import, CI/CD config.

Install

npx vskill@latest install vince-winkintel/gitlab-cli-skills/glab-variable

SKILL.md

glab variable

Inherited reads and partial updates

variable get KEY --inherited tries the selected project or group, then parent groups closest first, then instance variables. Missing or unreadable levels (404/401/403) are skipped; other failures are returned. --scope filters project/group variables, but not instance variables. This is a lookup of stored definitions, not a full simulation of every CI variable precedence rule. Both text and JSON output can expose secret values; send them only to an approved consumer.

variable update preserves optional attributes unless supplied. Omitted --protected, --masked, --raw, --type, and --description retain their existing values. Use an explicit boolean such as --protected=false only when that policy change is approved. The value is still supplied positionally, through --value, or from stdin; do not invoke this as a metadata-only update with empty stdin, which can replace the value with an empty string. --scope retains its existing targeting behavior.

Overview

Variables store configuration and secrets used by CI/CD pipelines.
Each subcommand acts on the current project by default. Use
`--group` to manage a group's variables instead.
USAGE
glab variable [command] [--flags]
COMMANDS
delete <key> [--flags] Delete a variable for a project or group.
export [--flags] Export variables from a project or group.
get <key> [--flags] Get a variable for a project or group.
import [--flags] Import variables from a JSON file or standard input.
list [--flags] List variables for a project or group.
set <key> <value> [--flags] Create a new variable for a project or group.
update <key> <value> [--flags] Update an existing variable for a project or group.
FLAGS
-h --help Show help for this command.
-R --repo Select another repository. Can use either `OWNER/REPO` or `GROUP/NAMESPACE/REPO` format. Also accepts full URL or Git URL.

Quick start

bash
glab variable --help

Export and import variables

glab variable import consumes the same JSON array shape emitted by glab variable export --output json. It reads standard input by default or a file passed with --input-file / -i.

bash
# Preview and preserve an export before importing it elsewhere
glab variable export --output json > variables.json
glab variable import --input-file variables.json -R group/target-project
# Pipe between groups
glab variable export --group source-group |
glab variable import --group target-group
# Continue when target variables already exist
glab variable import --input-file variables.json --skip-existing

Import stops when a target variable already exists unless --skip-existing is set. Hidden variable values are omitted from exports, so those entries are skipped with a warning during import; recreate their values explicitly with glab variable set --hidden from an approved secret source. Treat export files as sensitive, keep them out of version control, and verify the target project or group before importing.

Masked and hidden group variables

glab variable set now sends --masked and --hidden correctly for group-level variables. Use explicit flags, verify the target group, and never print the value during confirmation:

bash
glab variable set DEPLOY_TOKEN "$DEPLOY_TOKEN" \
--group group/subgroup \
--masked \
--hidden \
--protected
# Inspect only approved metadata; the raw JSON includes the value
glab variable get DEPLOY_TOKEN --group group/subgroup --output json \
--jq '{key, protected, masked, hidden, environment_scope}'

Masking and hiding are server-enforced properties, not substitutes for least privilege or rotation. If GitLab rejects a value because it does not satisfy masking rules, do not weaken the setting silently; fix the value format or get explicit operator approval for a different policy.

Subcommands

See references/commands.md for full --help output.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
49
Repository forks
6
7-day trend score
19

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/vince-winkintel/gitlab-cli-skills/glab-variable/badge)](https://verified-skill.com/skills/vince-winkintel/gitlab-cli-skills/glab-variable)

Something wrong with this skill or its page? Tell us.