プロジェクトレベルのCI/CD変数API

プロジェクト変数の一覧

プロジェクトの変数の一覧を取得します。

GET /projects/:id/variables
属性種類必須説明
id整数/文字列はい プロジェクトのIDまたはURLエンコードされたパス
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/variables"
[
    {
        "variable_type": "env_var",
        "key": "TEST_VARIABLE_1",
        "value": "TEST_1",
        "protected": false,
        "masked": true,
        "raw": false,
        "environment_scope": "*",
        "description": null
    },
    {
        "variable_type": "env_var",
        "key": "TEST_VARIABLE_2",
        "value": "TEST_2",
        "protected": false,
        "masked": false,
        "raw": false,
        "environment_scope": "*",
        "description": null
    }
]

単一の変数の取得

単一の変数の詳細を取得します。同じキーを持つ変数が複数ある場合は、filter を使用して正しいenvironment_scopeを選択します。

GET /projects/:id/variables/:key
属性種類必須説明
id整数/文字列はい プロジェクトのIDまたはURLエンコードされたパス
key文字列です。はい変数のkey
filterハッシュなし利用可能なフィルター:[environment_scope].filter パラメーターの詳細を参照.
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/variables/TEST_VARIABLE_1"
{
    "key": "TEST_VARIABLE_1",
    "variable_type": "env_var",
    "value": "TEST_1",
    "protected": false,
    "masked": true,
    "raw": false,
    "environment_scope": "*",
    "description": null
}

変数の作成

新しい変数を作成します。同じkey を持つ変数が既に存在する場合、新しい変数は異なるenvironment_scopeを持つ必要があります。そうでない場合、GitLab は以下のようなメッセージを返します:VARIABLE_NAME has already been taken.

POST /projects/:id/variables
属性種類必須説明
id整数/文字列はい プロジェクトのIDまたはURLエンコードされたパス
key文字列です。はい変数のkey; 255 文字以下でなければなりません;A-Z,a-z,0-9,_ のみ可能です。
value文字列です。はい変数のvalue
variable_type文字列です。なし変数の型。使用可能な型は env_var (デフォルト) およびfile
protectedbooleanなし変数が保護されているかどうか。デフォルト:false
maskedbooleanなし変数をマスクするかどうか。デフォルト:false
rawbooleanなし変数を生の文字列として扱うかどうか。デフォルト:falsetrueの場合、値の変数は展開されません。
environment_scope文字列です。なし変数のenvironment_scope 。デフォルト:*
description文字列です。なし変数の説明。デフォルト:null.GitLab 16.2 で導入
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
     "https://gitlab.example.com/api/v4/projects/1/variables" --form "key=NEW_VARIABLE" --form "value=new value"
{
    "variable_type": "env_var",
    "key": "NEW_VARIABLE",
    "value": "new value",
    "protected": false,
    "masked": false,
    "raw": false,
    "environment_scope": "*",
    "description": null
}

変数の更新

プロジェクトの変数を更新します。同じキーを持つ変数が複数ある場合は、filter を使って正しいenvironment_scopeを選択してください。

PUT /projects/:id/variables/:key
属性種類必須説明
id整数/文字列はい プロジェクトのIDまたはURLエンコードされたパス
key文字列です。はい変数のkey
value文字列です。はい変数のvalue
variable_type文字列です。なし変数の型。使用可能な型は env_var (デフォルト) およびfile
protectedbooleanなし変数が保護されているかどうか
maskedbooleanなし変数がマスクされているかどうか
rawbooleanなし変数を生の文字列として扱うかどうか。デフォルト:falsetrueの場合、値の変数は展開されません。
environment_scope文字列です。なし変数のenvironment_scope
filterハッシュなし利用可能なフィルター:[environment_scope].filter パラメーターの詳細を参照.
description文字列です。なし変数の説明。デフォルト:null.GitLab 16.2 で導入
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
     "https://gitlab.example.com/api/v4/projects/1/variables/NEW_VARIABLE" --form "value=updated value"
{
    "variable_type": "env_var",
    "key": "NEW_VARIABLE",
    "value": "updated value",
    "protected": true,
    "masked": false,
    "raw": false,
    "environment_scope": "*",
    "description": "null"
}

変数の削除

プロジェクトの変数を削除します。同じキーを持つ変数が複数ある場合は、filter を使って、正しいenvironment_scopeを選択してください。

DELETE /projects/:id/variables/:key
属性種類必須説明
id整数/文字列はい プロジェクトのIDまたはURLエンコードされたパス
key文字列です。はい変数のkey
filterハッシュなし利用可能なフィルター:[environment_scope].filter パラメーターの詳細を参照.
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/variables/VARIABLE_1"

filter パラメータ

複数の変数が同じkey を持つ場合、GET,PUT,DELETEリクエストが返されることがありました:

There are multiple variables with provided parameters. Please use 'filter[environment_scope]'.

environment_scope 属性と一致する変数を選択するにはfilter[environment_scope] を使います。

使用例:

  • GET:

     curl --globoff --header "PRIVATE-TOKEN: <your_access_token>" \
          "https://gitlab.example.com/api/v4/projects/1/variables/SCOPED_VARIABLE_1?filter[environment_scope]=production"
    
  • PUT:

     curl --request PUT --globoff --header "PRIVATE-TOKEN: <your_access_token>" \
          "https://gitlab.example.com/api/v4/projects/1/variables/SCOPED_VARIABLE_1?value=scoped-variable-updated-value&environment_scope=production&filter[environment_scope]=production"
    
  • DELETE

     curl --request DELETE --globoff --header "PRIVATE-TOKEN: <your_access_token>" \
          "https://gitlab.example.com/api/v4/projects/1/variables/SCOPED_VARIABLE_1?filter[environment_scope]=production"