Reminder to all repository users: Please do not add , commit and push any data files to your remote git repositories. The disk space the Git server is limited, it wasn't dimensioned to host anything else than code. Solely your code files need versioning. The data inputs/outputs don't. A good idea is to do "git add" individually on each file you want to commit, to avoid versioning unwanted content.

Validate the .gitlab-ci.yml (API)

[Introduced][ce-5953] in GitLab 8.12.

Checks if your .gitlab-ci.yml file is valid.

POST ci/lint
Attribute Type Required Description
content string yes the .gitlab-ci.yaml content
curl --header "Content-Type: application/json" https://gitlab.example.com/api/v4/ci/lint --data '{"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\"]}}"}'

Be sure to copy paste the exact contents of .gitlab-ci.yml as YAML is very picky about indentation and spaces.

Example responses:

  • Valid content:

    {
      "status": "valid",
      "errors": []
    }
  • Invalid content:

    {
      "status": "invalid",
      "errors": [
        "variables config should be a hash of key value pairs"
      ]
    }
  • Without the content attribute:

    {
      "error": "content is missing"
    }