At the moment all of our grafana dashboards are hand-edited, with some committed to puppet as per T133392.
The manual editing approach is ok but tedious and error prone especially when editing multiple dashboards. I've come across https://github.com/weaveworks/grafanalib before and it seems it could be a useful starting point to be able to write grafana dashboards as code instead.
Other alternatives include a jsonnet-based one: https://github.com/grafana/grafonnet-lib
And yaml based: https://github.com/jakubplichta/grafana-dashboard-builder or https://docs.openstack.org/infra/grafyaml/index.html
Javascript based: https://github.com/uber/grafana-dash-gen