Feature request: Add drone_config_url option

Current repo level “Config: .drone.yml” or the jsonnet equivalent is fine.

However, I would like to serve the file from an external source instead of from the git repo itself. Main use-case is where large number of repositories use exactly same .drone.yml and have large number of active branches. Any changes to .drone.yaml from DevOps / CICD pipeline gurus have to be propagated to all of these branches. This can be really painful in a de-centralized engineering organization where some teams follow instructions and some teams don’t resulting in pipeline divergences.

If I am able to set either a DRONE_CONFIG_URL in the Server or using drone repo update --config-url and have Drone do a HTTP GET to retrieve the .drone.yml or jsonnet file, then I can totally control the life-cycle of .drone.yml.

If there is another way to do this today, please provide specific example. I looked at Jsonnet but didn’t see how it can retrieve the jsonnet from a http url.

It would be also useful if the URL can contain environment variables that are evaluated before doing HTTP GET e.g. https://example.com/getdrone?repo={{ DRONE_REPO_NAME }}&repo_owner={{ DRONE_REPO_OWNER }}

or whatever syntax for templating makes sense.

Drone supports this capability through configuration plugins [1]. In fact, the starter project for creating a configuration plugin includes a sample that does exactly what you are looking for [2].

[1] https://github.com/drone/drone/issues/1021#issuecomment-417819643
[2] https://github.com/drone/drone-config-plugin-starter/blob/master/plugin/plugin.go