CI/CD Variables

You can configure variables at the instance-level (admin only), or associate variables to projects and groups, to modify pipeline/job scripts behavior.

Warning

Please always follow GitLab’s rules for CI/CD variables, especially for values in masked variables. If you do not, your variables may silently fail to save.

Instance-level variables

This endpoint requires admin access.

Reference

Examples

List all instance variables:

variables = gl.variables.list()

Get an instance variable by key:

variable = gl.variables.get('key_name')

Create an instance variable:

variable = gl.variables.create({'key': 'key1', 'value': 'value1'})

Update a variable value:

variable.value = 'new_value'
variable.save()

Remove a variable:

gl.variables.delete('key_name')
# or
variable.delete()

Projects and groups variables

Reference

Examples

List variables:

p_variables = project.variables.list()
g_variables = group.variables.list()

Get a variable:

p_var = project.variables.get('key_name')
g_var = group.variables.get('key_name')

Note

If there are multiple variables with the same key, use filter to select the correct environment_scope. See the GitLab API docs for more information.

Create a variable:

var = project.variables.create({'key': 'key1', 'value': 'value1'})
var = group.variables.create({'key': 'key1', 'value': 'value1'})

Note

If a variable with the same key already exists, the new variable must have a different environment_scope. Otherwise, GitLab returns a message similar to: VARIABLE_NAME has already been taken. See the GitLab API docs for more information.

Update a variable value:

var.value = 'new_value'
var.save()
# or
project.variables.update("key1", {"value": "new_value"})

Note

If there are multiple variables with the same key, use filter to select the correct environment_scope. See the GitLab API docs for more information.

Remove a variable:

project.variables.delete('key_name')
group.variables.delete('key_name')
# or
var.delete()

Note

If there are multiple variables with the same key, use filter to select the correct environment_scope. See the GitLab API docs for more information.