mcpField
G
gitlab-variable

gitlab-variable

github.com/grandcamelクラウド・DevOps489 回インストール40 週間前に更新
リポジトリ

gitlab-variable について

glab CLIで GitLab の CI/CD 変数を管理するスキルです。ビルドやデプロイの設定向けに、変数の照会、設定、更新、削除、エクスポートと操作リスクの目安を提供します。

主な機能

  1. 01変数の一覧表示と取得
  2. 02変数の設定と更新
  3. 03変数の削除
  4. 04dotenv 形式でのエクスポート
  5. 05スコープ、種類、保護設定の指定

活用シーン

  1. 01環境別のデプロイ変数の設定
  2. 02CI/CD シークレットのローテーション
  3. 03ローカルやスクリプト向けの変数エクスポート

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/grandcamel/gitlab-assistant-skills --skill gitlab-variable

インストール後、Claude Code で/gitlab-variableを入力して読み込まれたか確認します。

詳細

CI/CD 変数スキル

glab CLI を使用した GitLab の CI/CD 変数管理操作です。

クイックリファレンス

操作コマンドリスク
変数の一覧表示glab variable list-
変数の取得glab variable get <key>-
変数の設定glab variable set <key> <value>⚠️
変数の更新glab variable update <key> <value>⚠️
変数の削除glab variable delete <key>⚠️⚠️
変数のエクスポートglab variable export-

リスクの凡例:- 安全 | ⚠️ 注意 | ⚠️⚠️ 警告 | ⚠️⚠️⚠️ 危険

このスキルを使用する場面

必ず使用する場合:

  • ユーザーが CI/CD 変数の管理を希望している
  • ユーザーが「variable」、「secret」、「env var」、「CI variable」、「environment variable」と言及している
  • ユーザーがビルド/デプロイの設定を希望している

使用しない場合:

  • ユーザーがパイプラインの実行を希望している(gitlab-ci を使用)
  • ユーザーがローカルの .env ファイルの管理を希望している(ファイル操作を使用)

使用可能なコマンド

変数の一覧表示
glab variable list [options]

オプション:

フラグ説明
-g, --group=<group>グループレベルの変数を一覧表示
-P, --per-page=<n>1 ページあたりの結果数

使用例:

# List project variables
glab variable list

# List group variables
glab variable list -g mygroup
変数の取得
glab variable get <key> [options]

オプション:

フラグ説明
-g, --group=<group>グループレベルから取得
-s, --scope=<scope>変数のスコープ/環境

使用例:

# Get variable value
glab variable get API_KEY

# Get scoped variable
glab variable get DATABASE_URL --scope=production
変数の設定
glab variable set <key> <value> [options]

オプション:

フラグ説明
-g, --group=<group>グループレベルで設定
-m, --maskedログ内で値をマスク
-p, --protected保護されたブランチでのみ使用可能
-r, --raw値をそのまま使用(展開なし)
-s, --scope=<scope>変数のスコープ/環境
-t, --type=<type>変数の種類:env_var、file

使用例:

# Set simple variable
glab variable set API_URL "https://api.example.com"

# Set masked secret
glab variable set API_KEY "secret123" --masked

# Set protected variable (only on protected branches)
glab variable set DEPLOY_KEY "key123" --protected --masked

# Set scoped variable for production
glab variable set DATABASE_URL "postgres://prod..." --scope=production

# Set file type variable
glab variable set CONFIG_FILE "$(cat config.json)" --type=file

# Set group variable
glab variable set SHARED_SECRET "secret" -g mygroup --masked
変数の更新
glab variable update <key> <value> [options]

set と同じオプションです。既存の変数を更新します。

使用例:

# Update variable value
glab variable update API_KEY "new-secret" --masked

# Update and change scope
glab variable update DATABASE_URL "new-url" --scope=staging
変数の削除
glab variable delete <key> [options]

オプション:

フラグ説明
-g, --group=<group>グループレベルから削除
-s, --scope=<scope>変数のスコープ

警告: 変数は完全に削除されます。

使用例:

# Delete variable
glab variable delete OLD_API_KEY

# Delete scoped variable
glab variable delete DATABASE_URL --scope=staging
変数のエクスポート
glab variable export [options]

変数を dotenv 形式でエクスポートします。

使用例:

# Export to stdout
glab variable export

# Export to file
glab variable export > .env.ci

# Export and source
eval $(glab variable export)

変数の種類

種類用途
env_var環境変数(デフォルト)
file値をファイルに書き込み、パスを変数として公開

変数フラグ

フラグ効果
maskedジョブログ内で値を非表示にする
protected保護されたブランチ/タグでのみ使用可能
raw変数を展開しない(JSON などに使用)

よくあるワークフロー

ワークフロー 1:デプロイ用変数の設定
# Set production secrets
glab variable set PROD_API_KEY "xxx" --protected --masked --scope=production
glab variable set PROD_DB_URL "postgres://..." --protected --masked --scope=production

# Set staging secrets
glab variable set STAGING_API_KEY "xxx" --masked --scope=staging
glab variable set STAGING_DB_URL "postgres://..." --masked --scope=staging
ワークフロー 2:シークレットのローテーション
# 1. List current variables
glab variable list

# 2. Update the secret
glab variable update API_KEY "new-secret-value" --masked

# 3. Trigger a new pipeline to use new secret
glab ci run
ワークフロー 3:サービスアカウントの設定
# Store credentials as masked file
glab variable set SERVICE_ACCOUNT_JSON "$(cat service-account.json)" \
  --type=file --protected --masked

# In CI/CD, use $SERVICE_ACCOUNT_JSON as path to the credentials file
ワークフロー 4:複数環境の設定
# Production (protected + masked)
glab variable set DATABASE_URL "postgres://prod..." --scope=production --protected --masked
glab variable set API_KEY "prod-key" --scope=production --protected --masked

# Staging
glab variable set DATABASE_URL "postgres://staging..." --scope=staging --masked
glab variable set API_KEY "staging-key" --scope=staging --masked

# Development
glab variable set DATABASE_URL "postgres://dev..." --scope=development
glab variable set API_KEY "dev-key" --scope=development

セキュリティのベストプラクティス

  1. シークレットは必ずマスクする:機密性の高い値には --masked を使用します
  2. 本番環境のシークレットを保護する:本番環境の認証情報には --protected を使用します
  3. スコープを使用する:環境ごとに変数を分けます
  4. 定期的にローテーションする:シークレットを定期的に更新します
  5. ログ出力を避ける:CI スクリプトで変数の値を絶対にエコーしないでください
  6. 複雑なシークレットには file 型を使用する:JSON、証明書など

トラブルシューティング

問題原因解決策
認証に失敗するトークンが無効または期限切れglab auth login を実行
変数が見つからないキーまたはスコープが正しくないglab variable list で確認
値を確認できない変数がマスクされているマスクされた値は取得できません
アクセスが拒否されるメンテナーではない変数にはメンテナー以上のロールが必要
値が途中で切れる特殊文字が含まれている複雑な値には --raw フラグを使用

関連ドキュメント

コメント