Add support for linting based on schemas in WebIDE

Merged Himanshu Kapoor requested to merge 218472-gitlab-ci-linting into master

What does this MR do?

Issue: #218472 (closed)

  1. Adds support for linting based on schemas in the Web IDE. Now we can easily add schemas to lint any json or yaml files.
  2. Adds support for linting .gitlab-ci.yml files.
  3. Updates monaco-editor to 0.20.0 and monaco-editor-webpack-plugin to 1.9.0. (An upgrade was required since in order to get monaco-yaml needed a higher version (0.19.x) of monaco-editor than what we currently had (0.18.x).)

Known Issues

When closing the .gitlab-ci.yml file, there is an error in the console:

console error

This is a known issue and is an issue in the monaco-yaml library. I've raised a PR in the upstream repo to fix it. The console error doesn't cause visible issues in the Web IDE though.

Screenshots

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by Himanshu Kapoor