summaryrefslogtreecommitdiff
path: root/docs/gl_objects/variables.rst
blob: cbb5c8a5f70d847faf66e2855b3d550ed66a3d33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
###############
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.

.. _rules for CI/CD variables: https://docs.gitlab.com/ee/ci/variables/#add-a-cicd-variable-to-a-project

Instance-level variables
========================

This endpoint requires admin access.

Reference
---------

* v4 API

  + :class:`gitlab.v4.objects.Variable`
  + :class:`gitlab.v4.objects.VariableManager`
  + :attr:`gitlab.Gitlab.variables`

* GitLab API

  + https://docs.gitlab.com/ce/api/instance_level_ci_variables.html

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
---------

* v4 API

  + :class:`gitlab.v4.objects.ProjectVariable`
  + :class:`gitlab.v4.objects.ProjectVariableManager`
  + :attr:`gitlab.v4.objects.Project.variables`
  + :class:`gitlab.v4.objects.GroupVariable`
  + :class:`gitlab.v4.objects.GroupVariableManager`
  + :attr:`gitlab.v4.objects.Group.variables`

* GitLab API

  + https://docs.gitlab.com/ce/api/instance_level_ci_variables.html
  + https://docs.gitlab.com/ce/api/project_level_variables.html
  + https://docs.gitlab.com/ce/api/group_level_variables.html

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')

Create a variable::

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

Update a variable value::

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

Remove a variable::

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