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
|
# Validate the .gitlab-ci.yml
> [Introduced][ce-5953] in GitLab 8.12.
Check whether your .gitlab-ci.yml file is valid.
```
POST ci/lint
```
| Attribute | Type | Required | Description |
| ---------- | ------- | -------- | -------- |
| `content` | hash | yes | the .gitlab-ci.yaml content|
```bash
curl --request POST "https://gitlab.example.com/api/v3/ci/lint?content={
image: "ruby:2.1",
services: ["postgres"],
before_script: ["gem install bundler", "bundle install", "bundle exec rake db:create"],
variables: {"DB_NAME": "postgres"},
types: ["test", "deploy", "notify"],
rspec: {
script: "rake spec",
tags: ["ruby", "postgres"],
only: ["branches"]
},
spinach: {
script: "rake spinach",
allow_failure: true,
tags: ["ruby", "mysql"],
except: ["tags"]
},
staging: {
variables: {KEY1: "value1", KEY2: "value2"},
script: "cap deploy stating",
type: "deploy",
tags: ["ruby", "mysql"],
except: ["stable"]
},
production: {
variables: {DB_NAME: "mysql"},
type: "deploy",
script: ["cap deploy production", "cap notify"],
tags: ["ruby", "mysql"],
only: ["master", "/^deploy-.*$/"]
},
dockerhub: {
type: "notify",
script: "curl http://dockerhub/URL",
tags: ["ruby", "postgres"],
only: ["branches"]
}
}"
```
Be sure to copy paste the exact contents of `.gitlab-ci.yml` as YAML is very picky with indentation and spaces.
Example responses:
* Valid content:
```json
{
"status": "valid",
"errors": []
}
```
* Invalid content:
```json
{
"status": "invalid",
"errors": [
"variables config should be a hash of key value pairs"
]
}
```
* Without the content attribute:
```json
{
"error": "content is missing"
}
```
|