project_level_variables.md 4,8 КБ
Newer Older
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
1
# Project-level Variables API
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
2
3
4

## List project variables

Shinya Maeda's avatar
Shinya Maeda включено в состав коммита
5
Get list of a project's variables.
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
6
7
8
9
10

```
GET /projects/:id/variables
```

Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
11
12
| Attribute | Type    | required | Description         |
|-----------|---------|----------|---------------------|
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
13
| `id`      | integer/string | yes      | The ID of a project or [urlencoded NAMESPACE/PROJECT_NAME of the project](README.md#namespaced-path-encoding) owned by the authenticated user |
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
14
15

```
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
16
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/variables"
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
17
```
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
18
19
20
21
22

```json
[
    {
        "key": "TEST_VARIABLE_1",
Krasimir Angelov's avatar
Krasimir Angelov включено в состав коммита
23
        "variable_type": "env_var",
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
24
25
26
27
        "value": "TEST_1"
    },
    {
        "key": "TEST_VARIABLE_2",
Krasimir Angelov's avatar
Krasimir Angelov включено в состав коммита
28
        "variable_type": "env_var",
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
29
30
31
32
33
34
35
        "value": "TEST_2"
    }
]
```

## Show variable details

Shinya Maeda's avatar
Shinya Maeda включено в состав коммита
36
Get the details of a project's specific variable.
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
37
38
39
40
41

```
GET /projects/:id/variables/:key
```

Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
42
43
| Attribute | Type    | required | Description           |
|-----------|---------|----------|-----------------------|
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
44
| `id`      | integer/string | yes      | The ID of a project or [urlencoded NAMESPACE/PROJECT_NAME of the project](README.md#namespaced-path-encoding) owned by the authenticated user   |
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
45
| `key`     | string  | yes      | The `key` of a variable |
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
46
47

```
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
48
curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/variables/TEST_VARIABLE_1"
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
49
50
```

Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
51
52
53
```json
{
    "key": "TEST_VARIABLE_1",
Krasimir Angelov's avatar
Krasimir Angelov включено в состав коммита
54
    "variable_type": "env_var",
Mathieu Parent's avatar
Mathieu Parent включено в состав коммита
55
56
57
    "value": "TEST_1",
    "protected": false,
    "masked": true
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
58
59
60
61
62
}
```

## Create variable

Shinya Maeda's avatar
Shinya Maeda включено в состав коммита
63
Create a new variable.
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
64
65
66
67
68

```
POST /projects/:id/variables
```

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
69
70
71
72
73
74
75
76
| Attribute           | Type    | required | Description           |
|---------------------|---------|----------|-----------------------|
| `id`                | integer/string | yes      | The ID of a project or [urlencoded NAMESPACE/PROJECT_NAME of the project](README.md#namespaced-path-encoding) owned by the authenticated user   |
| `key`               | string  | yes      | The `key` of a variable; must have no more than 255 characters; only `A-Z`, `a-z`, `0-9`, and `_` are allowed |
| `value`             | string  | yes      | The `value` of a variable |
| `variable_type`     | string  | no       | The type of a variable. Available types are: `env_var` (default) and `file` |
| `protected`         | boolean | no       | Whether the variable is protected |
| `masked`            | boolean | no       | Whether the variable is masked |
Hordur Freyr Yngvason's avatar
Hordur Freyr Yngvason включено в состав коммита
77
| `environment_scope` | string  | no       | The `environment_scope` of the variable |
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
78
79

```
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
80
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"
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
81
82
```

Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
83
84
85
```json
{
    "key": "NEW_VARIABLE",
Lin Jen-Shin's avatar
Lin Jen-Shin включено в состав коммита
86
    "value": "new value",
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
87
    "protected": false,
Krasimir Angelov's avatar
Krasimir Angelov включено в состав коммита
88
    "variable_type": "env_var",
Mathieu Parent's avatar
Mathieu Parent включено в состав коммита
89
    "protected": false,
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
90
91
    "masked": false,
    "environment_scope": "*"
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
92
93
94
95
96
}
```

## Update variable

Shinya Maeda's avatar
Shinya Maeda включено в состав коммита
97
Update a project's variable.
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
98
99
100
101
102

```
PUT /projects/:id/variables/:key
```

Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
103
104
105
106
107
108
109
110
| Attribute           | Type    | required | Description             |
|---------------------|---------|----------|-------------------------|
| `id`                | integer/string | yes      | The ID of a project or [urlencoded NAMESPACE/PROJECT_NAME of the project](README.md#namespaced-path-encoding) owned by the authenticated user     |
| `key`               | string  | yes      | The `key` of a variable   |
| `value`             | string  | yes      | The `value` of a variable |
| `variable_type`     | string  | no       | The type of a variable. Available types are: `env_var` (default) and `file` |
| `protected`         | boolean | no       | Whether the variable is protected |
| `masked`            | boolean | no       | Whether the variable is masked |
Hordur Freyr Yngvason's avatar
Hordur Freyr Yngvason включено в состав коммита
111
| `environment_scope` | string  | no       | The `environment_scope` of the variable |
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
112
113

```
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
114
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/variables/NEW_VARIABLE" --form "value=updated value"
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
115
116
```

Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
117
118
119
```json
{
    "key": "NEW_VARIABLE",
Lin Jen-Shin's avatar
Lin Jen-Shin включено в состав коммита
120
    "value": "updated value",
Krasimir Angelov's avatar
Krasimir Angelov включено в состав коммита
121
    "variable_type": "env_var",
Mathieu Parent's avatar
Mathieu Parent включено в состав коммита
122
    "protected": true,
Marcel Amirault's avatar
Marcel Amirault включено в состав коммита
123
124
    "masked": false,
    "environment_scope": "*"
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
125
126
127
128
129
}
```

## Remove variable

Shinya Maeda's avatar
Shinya Maeda включено в состав коммита
130
Remove a project's variable.
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
131
132
133
134
135

```
DELETE /projects/:id/variables/:key
```

Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
136
137
| Attribute | Type    | required | Description             |
|-----------|---------|----------|-------------------------|
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
138
| `id`      | integer/string | yes      | The ID of a project or [urlencoded NAMESPACE/PROJECT_NAME of the project](README.md#namespaced-path-encoding) owned by the authenticated user     |
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
139
| `key`     | string  | yes      | The `key` of a variable |
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
140
141

```
Achilleas Pipinellis's avatar
Achilleas Pipinellis включено в состав коммита
142
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/variables/VARIABLE_1"
Tomasz Maczukin's avatar
Tomasz Maczukin включено в состав коммита
143
```