正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

プロジェクトレベルの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-Za-z0-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を持っている場合、GETPUT 、または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"