@Andrew Watson
Ambari APIs seem like the right way to go about this. As for getting started, you could explore the output of:
http://<ambari_server>:8080/api/v1/clusters/<cluster_name>/configurations/service_config_versions
Some of the fields in the output of above call that could fit with your requirement:
"service_name" - Name of each service
"service_config_version_note" - List the comments made against each config change
"tag" - Version# associated with the service config changes
"user" - context under which config change was done
"stack_id" - stack version against which change was done (esp. useful if you want to track against upgrades too)
This link has some information -https://cwiki.apache.org/confluence/display/AMBARI/Service+Config+Versions+API+usage
Thanks,
Vivek