glab-variable について
glab-variable は、GitLab のプロジェクトやグループの CI/CD 変数を管理する glab コマンドラインスキルです。継承検索や変数の入出力に対応し、更新時に指定されていない属性を維持します。
主な機能
- 01継承変数の検索
- 02変数の作成と更新
- 03変数データのエクスポートとインポート
- 04グループ変数のマスクと非表示設定
活用シーン
- 01プロジェクトや親グループの変数検索
- 02プロジェクトやグループ間の変数移行
- 03未指定属性を保った変数更新
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ vince-winkintel/ gitlab-cli-skills --skill glab-variableインストール後、Claude Code で/glab-variableを入力して読み込まれたか確認します。
同梱ファイルreferences/commands.md
詳細
glab variable
継承される値の取得と部分更新
variable get KEY --inherited は、選択したプロジェクトまたはグループを確認し、次に最も近い親グループから順に確認して、最後にインスタンス変数を確認します。存在しない、または読み取りできない階層(404/401/403)はスキップされ、それ以外のエラーは返されます。--scope はプロジェクト/グループ変数を絞り込みますが、インスタンス変数には適用されません。これは保存された定義の検索であり、すべての CI 変数の優先順位ルールを完全に再現するものではありません。テキスト出力と JSON 出力のどちらにもシークレット値が含まれる可能性があるため、承認された利用先にのみ送信してください。
variable update は、指定されていない限り、任意属性を保持します。省略した --protected、--masked、--raw、--type、--description は既存の値を保持します。そのポリシー変更が承認されている場合にのみ、--protected=false のように明示的なブール値を使用してください。値は引き続き位置引数、--value、または標準入力から指定します。値が空文字列に置き換わる可能性があるため、標準入力が空の状態でメタデータのみを更新する目的で実行しないでください。--scope は既存の対象指定の動作を保持します。
概要
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.
クイックスタート
glab variable --help
変数のエクスポートとインポート
glab variable import は、glab variable export --output json が出力するものと同じ JSON 配列形式を受け取ります。デフォルトでは標準入力を読み取ります。または、--input-file / -i で指定したファイルを読み取ります。
# 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
--skip-existing を設定しない場合、インポートは対象の変数がすでに存在すると停止します。非表示の変数値はエクスポートから省略されるため、インポート時に警告とともにスキップされます。承認されたシークレットソースから glab variable set --hidden を使って、それらの値を明示的に再作成してください。エクスポートファイルは機密情報として扱い、バージョン管理に含めず、インポート前に対象のプロジェクトまたはグループを確認してください。
マスクされたグループ変数と非表示のグループ変数
glab variable set は、グループレベルの変数に対して --masked と --hidden を正しく送信するようになりました。明示的なフラグを使用し、対象のグループを確認し、確認時に値を表示しないでください。
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}'
マスクと非表示はサーバーによって強制されるプロパティであり、最小権限やローテーションの代わりにはなりません。GitLab がマスクのルールを満たしていないとして値を拒否した場合、設定を黙って緩和しないでください。値の形式を修正するか、別のポリシーについてオペレーターの明示的な承認を得てください。
サブコマンド
--help の出力全体については、references/commands.md を参照してください。