OtterDog is a tool to manage GitHub organizations at scale using a configuration as code approach. It is actively used by the Eclipse Foundation to manage its numerous projects hosted on GitHub.
The main reason to use jsonnet is to have a default configuration that is used to build the final resulting json document for a specific organization. The setup is a bit cumbersome (definition of templates), and when moving to a GitHub App this might not be working as expected.
If we split up the configuration in separate json documents and use json merge patch processing we would basically achieve the same with the benefit of having orthogonal configurations for different resources of an organisation. Another option would be to use yaml configuration format, as this seems to be the standard for GitHub configurations, so people are used to that.
This is also basically what allstar does under the hood.
In GitLab by @netomi on Apr 1, 2023, 11:58
The main reason to use jsonnet is to have a default configuration that is used to build the final resulting json document for a specific organization. The setup is a bit cumbersome (definition of templates), and when moving to a GitHub App this might not be working as expected.
If we split up the configuration in separate json documents and use json merge patch processing we would basically achieve the same with the benefit of having orthogonal configurations for different resources of an organisation. Another option would be to use yaml configuration format, as this seems to be the standard for GitHub configurations, so people are used to that.
This is also basically what allstar does under the hood.
There is also a (very basic) python module for json merge patching: https://pypi.org/project/json-merge-patch/
Could serve as an entry point.