Syncing RAML edits with SCM


Hi all,

I am sure I can’t be the only one that would like to store my RAML (and related) files in a SCM and have a way to sync it in the Designer such that multiple people could work on the same file, but still work off of a shared file. In other words, some way to integrate SCM get/put requests along with “out of sync” notifications should someone else update the same file while another person is editing it. It seems to me this is a pretty common way to work, and if RAML is going to be a single source of truth document, it’s likely more than one person on a team might work on the same RAML file at the same time. Also, while there is the RAML Store (and the updated approach where there is the Designer integrated with Mongo and a project drop down list), there is still no good way to take the mongo stored files and stick them into the SCM and then get them back out and make sure they are in sync when multiple people work on the same file. Right now I am using the modified Designer + mongo setup and it works, but we’re definitely worried about losing our mongo stored files accidentally or otherwise. Using SCM gives a nice history capture of changes besides a good storage medium.


If you want to simple synch Github and API Designer - this notebook @usarid developed could be of interest. It’s based on our Javascript client generator tool and my guess, if you don’t want to use API Notebook, you can take to make it an automatic process.


I was looking to use the API Designer with the changes made to work with mongodb, to sync documents to perforce and back. However, I am thinking if there was a SCM workflow with the designer that would be better. Rather than use mongo… just store the files directly in to SCM and work on them there, complete with checkin/out details (if possible). Or, perhaps being HTML5, use local files, and allow developers to manage the SCM files manually, but load/save the files in the designer from local. In fact, if the designer could just add the ability to actually load or save file (or directory) to local file system, it would solve this problem for the most part.