For detailed installation instructions, please refer to the plugin installation guide.
Installation required in:
- Studio (CMS)
Enable the following FEATURES flags in the config file in Open edX. For any release after Juniper, that config file is
/edx/etc/cms.yml. If you're usingprivate.py, you will need to enable these FEATURES incms/envs/private.py."FEATURES": { "ENABLE_EXPORT_GIT": true, "ENABLE_AUTO_GITHUB_REPO_CREATION": true # Optional, to auto create github repo for new courses } # Set when ENABLE_AUTO_GITHUB_REPO_CREATION is true GITHUB_ORG_API_URL = "https://api.github.com/orgs/<GITHUB_ORG_NAME>" # For GitHub Enterprise, change the URL accordingly GITHUB_ACCESS_TOKEN = "<GITHUB_PERSONAL_ACCESS_TOKEN>" # Token must have 'repo - Full control of private repositories' permissionSet your commit user in
cms/envs/common.py, if you don't want to use the default oneGIT_EXPORT_DEFAULT_IDENT = { 'name': 'STUDIO_EXPORT_TO_GIT', 'email': 'STUDIO_EXPORT_TO_GIT@example.com' }Restart the server using
make studio-restarton Devstack ortutor dev/local restart openedxon Tutor.For Tutor installations, these values can also be managed through a custom tutor plugin.
If you're testing from a docker machine running devstack setup github authentication for plugin, you'll need to generate SSH keys in that machine and add them to your Github account (https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/ - https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account)
- Open studio admin at
/admin/ol_openedx_git_auto_export/contentgitrepository/ - Add your course_id and in the GIT URL, add your OLX git repo. For example
git@github.com:<GITHUB_USERNAME>/edx4edxlite.git. - Make a change to the course content and publish.
- When using Tutor, attach with the CMS container using
tutor dev/local start cmsand enteryesto the prompt to add the GitHub to known hosts. - You should see a new commit in your OLX repo.
- Commit user should be the one that published the change.
- If user is not available, it should be the default one set in
GIT_EXPORT_DEFAULT_IDENT.
- When using Tutor, attach with the CMS container using
- Test commit count increase on your OLX repo.
This plugin supports automatic git export for both courses and content libraries.
Library Key Format: library-v1:org+library
Supported Operations:
- ✅ Auto-export on update: When you update/publish a library v1, changes are automatically exported to git
- ✅ Auto-repo creation: Library v1 does NOT have a creation signal in Open edX, so the GitHub repository is automatically created on the first library update signal
Setup for Library v1:
Enable the library feature flags in your config:
"FEATURES": { "ENABLE_GIT_AUTO_LIBRARY_EXPORT": true, "ENABLE_AUTO_GITHUB_LIBRARY_REPO_CREATION": true }Make changes to your library and publish
Library Key Format: lib:org:slug
Supported Operations:
- ✅ Auto-export on update: When you update a library v2, changes are automatically exported to git
- ✅ Auto-repo creation: When you create a new library v2, a GitHub repository can be automatically created
Setup for Library v2:
Enable the library feature flags in your config:
"FEATURES": { "ENABLE_GIT_AUTO_LIBRARY_EXPORT": true, "ENABLE_AUTO_GITHUB_LIBRARY_REPO_CREATION": true }When creating a new library v2, if
ENABLE_AUTO_GITHUB_LIBRARY_REPO_CREATIONis enabled, a GitHub repository will be created automaticallyUpdates to the library will be automatically exported to git
Important Notes:
- Library v1 does not emit a creation signal, so the GitHub repository is automatically created on the first library update
- Library v2 uses the new event architecture and supports both creation and update signals for immediate repository creation
- Both library types support automatic git export on updates once configured