正式なドキュメントは英語版であり、この日本語訳は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 --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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文字列はい変数のキー。
filterハッシュいいえ複数の変数が同じキーを共有している場合に、結果をフィルタリングします。使用可能な値: [environment_scope]

リクエスト例:

curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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
}

filterを含むリクエストの例:

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

変数を作成する

新しい変数を作成します。同じ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>" \
  --url "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文字列はい変数のキー。
value文字列はい変数の値。
description文字列いいえ変数の説明。GitLab 16.2で導入されました。デフォルトはnullです。
environment_scope文字列いいえ変数の環境スコープ。
filterハッシュいいえ複数の変数が同じキーを共有している場合に、結果をフィルタリングします。使用可能な値: [environment_scope]
maskedブール値いいえtrueの場合、変数はマスクされます。
protectedブール値いいえtrueの場合、変数は保護されます。
rawブール値いいえtrueの場合、変数はraw文字列として扱われます。falseの場合、変数の値は展開されます。デフォルトはtrueです。
variable_type文字列いいえ変数のタイプ。利用可能なタイプは: env_var (デフォルト) とfile

リクエスト例:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "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を含むリクエストの例:

curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/1/variables/SCOPED_VARIABLE_1" \
  --form "value=updated value" \
  --form "environment_scope=production" \
  --form "filter[environment_scope]=production"

変数を削除する

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

DELETE /projects/:id/variables/:key
属性必須説明
id整数または文字列はいプロジェクトのIDまたはURLエンコードされたパス
key文字列はい変数のキー。
filterハッシュいいえ複数の変数が同じキーを共有している場合に、結果をフィルタリングします。使用可能な値: [environment_scope]

リクエスト例:

curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>"
  --url "https://gitlab.example.com/api/v4/projects/1/variables/VARIABLE_1"

filterを含むリクエストの例:

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