mcpField
G
glab-variable

glab-variable

github.com/vince-winkintelクラウド・DevOps49107 回インストール1 日前に更新
リポジトリ

glab-variable について

glab-variable は、GitLab のプロジェクトやグループの CI/CD 変数を管理する glab コマンドラインスキルです。継承検索や変数の入出力に対応し、更新時に指定されていない属性を維持します。

主な機能

  1. 01継承変数の検索
  2. 02変数の作成と更新
  3. 03変数データのエクスポートとインポート
  4. 04グループ変数のマスクと非表示設定

活用シーン

  1. 01プロジェクトや親グループの変数検索
  2. 02プロジェクトやグループ間の変数移行
  3. 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 を参照してください。

コメント