9.0 KiB
		
	
	
	
	
	
			
		
		
	
	
			9.0 KiB
		
	
	
	
	
	
| stage | group | info | type | 
|---|---|---|---|
| Verify | Pipeline Authoring | To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments | reference, api | 
Project-level Variables API (FREE)
List project variables
Get list of a project's variables.
GET /projects/:id/variables
| Attribute | Type | Required | Description | 
|---|---|---|---|
| id | integer/string | yes | The ID of a project or URL-encoded NAMESPACE/PROJECT_NAME of the project owned by the authenticated user | 
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,
        "environment_scope": "*"
    },
    {
        "variable_type": "env_var",
        "key": "TEST_VARIABLE_2",
        "value": "TEST_2",
        "protected": false,
        "masked": false,
        "environment_scope": "*"
    }
]
Show variable details
Get the details of a project's specific variable.
GET /projects/:id/variables/:key
| Attribute | Type | Required | Description | 
|---|---|---|---|
| id | integer/string | yes | The ID of a project or URL-encoded NAMESPACE/PROJECT_NAME of the project owned by the authenticated user | 
| key | string | yes | The keyof a variable | 
| filter | hash | no | Available filters: [environment_scope]. See thefilterparameter details. | 
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,
    "environment_scope": "*"
}
Create variable
Create a new variable.
POST /projects/:id/variables
| Attribute | Type | Required | Description | 
|---|---|---|---|
| id | integer/string | yes | The ID of a project or URL-encoded NAMESPACE/PROJECT_NAME of the project owned by the authenticated user | 
| key | string | yes | The keyof a variable; must have no more than 255 characters; onlyA-Z,a-z,0-9, and_are allowed | 
| value | string | yes | The valueof a variable | 
| variable_type | string | no | The type of a variable. Available types are: env_var(default) andfile | 
| protected | boolean | no | Whether the variable is protected. Default: false | 
| masked | boolean | no | Whether the variable is masked. Default: false | 
| environment_scope | string | no | The environment_scopeof the variable. Default:* | 
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,
    "environment_scope": "*"
}
Update variable
Update a project's variable.
PUT /projects/:id/variables/:key
| Attribute | Type | Required | Description | 
|---|---|---|---|
| id | integer/string | yes | The ID of a project or URL-encoded NAMESPACE/PROJECT_NAME of the project owned by the authenticated user | 
| key | string | yes | The keyof a variable | 
| value | string | yes | The valueof a variable | 
| variable_type | string | no | The type of a variable. Available types are: env_var(default) andfile | 
| protected | boolean | no | Whether the variable is protected | 
| masked | boolean | no | Whether the variable is masked | 
| environment_scope | string | no | The environment_scopeof the variable | 
| filter | hash | no | Available filters: [environment_scope]. See thefilterparameter details. | 
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,
    "environment_scope": "*"
}
Remove variable
Remove a project's variable.
DELETE /projects/:id/variables/:key
| Attribute | Type | Required | Description | 
|---|---|---|---|
| id | integer/string | yes | The ID of a project or URL-encoded NAMESPACE/PROJECT_NAME of the project owned by the authenticated user | 
| key | string | yes | The keyof a variable | 
| filter | hash | no | Available filters: [environment_scope]. See thefilterparameter details. | 
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/variables/VARIABLE_1"
The filter parameter
- Introduced in GitLab 13.2.
- Feature flag removed in GitLab 13.4.
This parameter is used for filtering by attributes, such as environment_scope.
Example usage:
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/variables/VARIABLE_1?filter[environment_scope]=production"