edx/edx-platform — pull request #718 by ichuang (2013-08-16 21:14:47+00:00)
Title: Let a Studio user export course to git (and via git, to elsewhere, eg LMS)

One of the challenges of using Studio is that no history of changes is recorded. Also, switching content between "public" and "private" leads to an inconsistent student experience; while an author is editing content, it must be "private" and thus inaccessible to students. Students may thus see modules disappear from the Edge server, while it is being edited.

Instead of using Edge, at MIT we are exporting content from Studio, and importing this into an LMS (with mongo modulestore). Studio users are presented with a "Push to LMS" page, via which they can initiate an export from Studio to github. The export goes to the `giturl` with which the course is configured. The github instance can then be configured with a web hook to trigger the LMS to pull the repo and update.

Studio authors only see this option if the string `"allow_push_to_lms"` is in the `advanced_modules` settings list.

This workflow has the added advantage that a history of student-facing changes is recorded in github each time content is pushed to the LMS from Studio.

This feature is enabled by `MITX_FEATURES['ENABLE_PUSH_TO_LMS']=True`