群组级别变量 API

列出群组变量

获取群组变量列表。

GET /groups/:id/variables
参数 类型 是否必需 描述
id integer/string Yes 群组 ID 或 URL 编码的群组路径
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/variables"
[
    {
        "key": "TEST_VARIABLE_1",
        "variable_type": "env_var",
        "value": "TEST_1",
        "protected": false,
        "masked": false,
        "raw": false,
        "environment_scope": "*",
        "description": null
    },
    {
        "key": "TEST_VARIABLE_2",
        "variable_type": "env_var",
        "value": "TEST_2",
        "protected": false,
        "masked": false,
        "raw": false,
        "environment_scope": "*",
        "description": null
    }
]

显示变量详细信息

  • filter 参数自极狐GitLab 16.9 引入。

获取群组特定变量的详细信息。

GET /groups/:id/variables/:key
参数 类型 是否必需 描述
id integer/string Yes 群组 ID 或 URL 编码的群组路径
key string Yes 变量的 key
filter hash No 可用的过滤器: [environment_scope]。查看 filter 参数详情
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/1/variables/TEST_VARIABLE_1"
{
  "key": "TEST_VARIABLE_1",
  "variable_type": "env_var",
  "value": "TEST_1",
  "protected": false,
  "masked": false,
  "raw": false,
  "environment_scope": "*",
  "description": null
}

创建变量

  • masked_and_hiddenhidden 属性自极狐GitLab 17.4 引入。

创建新变量。

POST /groups/:id/variables
参数 类型 是否必需 描述
id integer/string Yes 群组 ID 或 URL 编码的群组路径
key string Yes 变量的 key;不能超过 255 个字符,只允许 A-Za-z0-9_
value string Yes 变量的 value
variable_type string No 变量的类型。可用类型为 env_var(默认)和 file
masked_and_hidden boolean No 变量是否被掩盖并隐藏。默认:false
protected boolean No 变量是否受保护
masked boolean No 变量是否隐藏
raw boolean No 变量是否被视为原始字符串。默认值:false。当为 true 时,值中的变量不会展开
environment_scope string No 变量的环境范围
description string No 变量的 description。默认值:null
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
     "https://gitlab.example.com/api/v4/groups/1/variables" --form "key=NEW_VARIABLE" --form "value=new value"
{
    "key": "NEW_VARIABLE",
    "value": "new value",
    "variable_type": "env_var",
    "protected": false,
    "masked": false,
    "hidden": false,
    "raw": false,
    "environment_scope": "*",
    "description": null
}

更新变量

  • filter 变量自极狐GitLab 16.9 引入。

更新群组变量。

PUT /groups/:id/variables/:key
参数 类型 是否必需 描述
id integer/string Yes 群组 ID 或 URL 编码的群组路径
key string Yes 变量的 key
value string Yes 变量的 value
variable_type string No 变量的类型。可用类型为 env_var(默认)和 file
protected boolean No 变量是否受保护
filter hash No 可用的过滤器:[environment_scope]。查看filter 参数详情
masked boolean No 变量是否隐藏
raw boolean No 变量是否被视为原始字符串。默认值:false。当为 true 时,值中的变量不会展开
environment_scope string No 变量的环境范围
description string No 变量的描述。默认值为 null。引入于 16.2
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" \
     "https://gitlab.example.com/api/v4/groups/1/variables/NEW_VARIABLE" --form "value=updated value"
{
    "key": "NEW_VARIABLE",
    "value": "updated value",
    "variable_type": "env_var",
    "protected": true,
    "masked": true,
    "hidden": false,
    "raw": true,
    "environment_scope": "*",
    "description": null
}

移除变量

移除群组的变量。

DELETE /groups/:id/variables/:key
参数 类型 是否必需 描述
id integer/string Yes 群组 ID 或 URL 编码的群组路径
key string Yes 变量的 key
filter hash No 可用的过滤器:[environment_scope]。查看 filter 参数详情
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" \
     "https://gitlab.example.com/api/v4/groups/1/variables/VARIABLE_1"

filter 参数

  • 自极狐GitLab 16.9 引入。

当多个变量具有相同的 ke 时,GETPUTDELETE 请求可能会返回:

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/groups/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/groups/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/groups/1/variables/SCOPED_VARIABLE_1?filter[environment_scope]=production"