Allow alternative file types for configuring GitLab (e.g. TypeScript instead of YAML)

Based on this Tweet.

Thanks to CDK I can share common tools like linters, formatters or even test runners (like Jest) not just in my frontend and backend code, but also with my infrastructure code. Looking at what would be the most complex remaining code without such tooling I’d say it’s the .gitlab-ci.yml. Was it ever considered to allow for different config file types like TypeScript?

It could

  • avoid some YAML gotchas (like multiline strings)
  • avoid some custom features (like https://docs.gitlab.com/ee/ci/yaml/#extends by just using require/import and assigning)
  • type checking (to see inside your IDE while typing, if the config is correct)
  • allow to share logic between the config file and other parts of your project (e.g. maybe branch pattern matching regexs’?)