Support JSonnet format as alternative to YAML for CI configuration
Problem to solve
JSonnet can be used to provide an alternative/simplified syntax to implement your .gitlab-ci.yml because it supports YAML as an output type (see Kubernetes example which generates YAML from JSON).
Intended users
Maintainers of .gitlab-ci.yml who are managing a lot of complexity in their configuration.
Further details
This could be an intermediary step for issues like https://gitlab.com/gitlab-org/gitlab-ce/issues/45828 which allow for more flexibility in generating the .gitlab-ci.yml.
Drone.io implemented support for this in their 1.0 release.
Proposal
We would implement a JSonnet parser to invoke that would generate the .gitlab-ci.yml, which would then be run. This would be a new intermediary step to execute prior to starting execution but would give teams a lot of flexibility around how they manage complexity in their config.
This feature won't be for everyone, but for a certain class of user it will give them a powerful tool for use with GitLab.
Permissions and Security
Permissions for editing the JSonnet templates should follow permissions for editing the .gitlab-ci.yml.