プロジェクトレベルのCI/CD変数API
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
このAPIを使用して、プロジェクトのCI/CD変数を操作します。
プロジェクト変数をリストする
プロジェクトの変数のリストを取得します。結果のページネーションを制御するには、pageおよびper_page ページネーションパラメータを使用します。
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,
"hidden": false,
"raw": false,
"environment_scope": "*",
"description": null
},
{
"variable_type": "env_var",
"key": "TEST_VARIABLE_2",
"value": "TEST_2",
"protected": false,
"masked": false,
"hidden": 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,
"hidden": false,
"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。 |
description | 文字列 | いいえ | 変数の説明。デフォルトはnullです。GitLab 16.2で導入されました。 |
environment_scope | 文字列 | いいえ | 変数のenvironment_scope。デフォルトは*です。 |
masked | ブール値 | いいえ | 変数がマスクされるかどうかを指定します。デフォルトはfalseです。 |
masked_and_hidden | ブール値 | いいえ | 変数がマスクされ、非表示になるかどうかを指定します。デフォルトはfalseです。 |
protected | ブール値 | いいえ | 変数が保護されるかどうかを指定します。デフォルトはfalseです。 |
raw | ブール値 | いいえ | 変数がraw文字列として扱われるかどうかを指定します。デフォルトはtrueです。falseの場合、値の変数は展開されます。 |
variable_type | 文字列 | いいえ | 変数の型。利用可能な型は、env_var(デフォルト)とfileです。 |
リクエスト例:
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,
"hidden": false,
"raw": false,
"environment_scope": "*",
"description": null
}変数を更新する
プロジェクトの変数を更新します。同じキーを持つ変数が複数ある場合は、filterを使用して、正しいenvironment_scopeを選択します。
PUT /projects/:id/variables/:key| 属性 | 型 | 必須 | 説明 |
|---|---|---|---|
id | 整数または文字列 | はい | プロジェクトのIDまたはURLエンコードされたパス。 |
key | 文字列 | はい | 変数のkey。 |
value | 文字列 | はい | 変数のvalue。 |
description | 文字列 | いいえ | 変数の説明。デフォルトはnullです。GitLab 16.2で導入されました。 |
environment_scope | 文字列 | いいえ | 変数のenvironment_scope。 |
filter | ハッシュ | いいえ | 利用可能なフィルターは[environment_scope]です。filterパラメータの詳細を参照してください。 |
masked | ブール値 | いいえ | 変数がマスクされるかどうかを指定します。 |
protected | ブール値 | いいえ | 変数が保護されるかどうかを指定します。 |
raw | ブール値 | いいえ | 変数がraw文字列として扱われるかどうかを指定します。デフォルトはtrueです。falseの場合、値の変数は展開されます。 |
variable_type | 文字列 | いいえ | 変数の型。利用可能な型は、env_var(デフォルト)とfileです。 |
リクエスト例:
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,
"hidden": 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]'.このような場合は、filter[environment_scope]を使用して、一致する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"