- 10 Sep 2024
- 7 Minutes to read
- Print
GitHub Repository
- Updated on 10 Sep 2024
- 7 Minutes to read
- Print
Skillable Studio allows you to set GitHub as an instruction source, using an external GitHub repository. Choosing to leverage this feature means moving all of your content management (including editing) for a lab into GitHub. Once you have enabled this instruction source for a lab, the content in that lab will automatically be updated based on the content in the external repository.
Github Repository Security & Permissions
Skillable supports connecting both Public and Private GitHub repositories. However, users must be a full admin of the repository.
Repos where you are a contributor or have read-only access will not be available for integration.
External Management Benefits
Offline editing - With external instruction management, content is created/edited as part of a structured Markdown file, that can be edited offline using one of the many free or commercial Markdown editors that are available for all mainstream platforms/devices being used today, including Windows, macOS, Linux, iOS, and Android.
Revision control - GitHub natively supports revision control, which means you get revision control for your content in labs that leverage the integration feature. This allows you to compare revisions, roll back changes, view revision history, etc.
Multi-author support - By managing your content in a lab that leverages external instruction source, you can support multiple content authors contributing to the content for one lab at the same time.
External Management Disadvantages
Skillable Studio Custom Syntax Unavailable in External Repository - when using an external repository as an instruction source, custom Skillable Studio markdown syntax will not render in the external system. These markdown elements can still be used and rendered in a lab.
These include:Knowledge block/link
Alert block/link
Help block/link
Hint block/link
Note block
Copyable text
Type text
code block modifiers
@lab replacement tokens Intellisense
Best Practices
When using an external instruction source, there are a few things to consider.
The overall size of the repository cannot exceed 500MB.
Keep your repository as small as possible. Large repositories can possibly present problems. For example, if your repository is approaching the size limit and then multiple commits are made very quickly, some of the commits may not be displayed in the lab instructions.
We highly recommend using repositories dedicated to your lab content and not mixing other content within these repositories.
You are able to host content for multiple lab profiles within the same repository, but keep in mind you could eventually need to break this up into multiple repositories if the lab content exceeds the maximum file size per repository. A good rule of thumb would be one repository per course or lab series.
Getting started
For external instruction sources, you will need to have an account in GitHub and will be prompted to login. If
you do not have one yet, you can create an account.
Your repository will need a markdown (.md) file that defines the lab content in Markdown. This file will contain the lab instructions for your lab.
Image Files
Any images that are used in the instructions need to be at the same level in the repository as the .md file, or in a folder that is at the same level as the .md file. If your images are not structured like this, they will not display correctly in labs.
When you configure a lab profile to use an external instruction source, you will be directed to a login page, where you will be asked to allow Skillable Studio permission to access your repositories. Skillable Studio will need access to your email address for push notifications, repository access, and admin permissions to modify web hooks.
File Size Limit
The overall size of the repository cannot exceed 500MB. Once the repo reaches the file size limit, the lab profile will stop syncing with the repository until the repository size is below the file size limit.
GitHub Configuration
If you do not have a GitHub account set up yet, you can create an account here.
Create a new GitHub repository where you will manage your lab content.
Create a folder to store your lab instructions and any other files used in the lab.
Create a new file in the folder called content.md.
If you want to store screenshots for your lab in GitHub, create a media folder, inside of the folder created on step 2.
If you want to store videos for your lab in GitHub, these can be stored in the media folder as well.
If you are moving content for a lab that has content in GitHub, see the Copying Existing Lab Content section below to start that way instead.
Managing Multiple Labs
You can manage more than one lab profile from a single GitHub repository by separating the lab profiles with folders in your repository.
When doing this, bear in mind the 500MB file size limit across the whole repository. If there is a chance this may be hit by having multiple labs in a repository, consider splitting them up.
It is important to find a balance for your organization between all of:
Number of labs
Number of repos to manage
Overall repo size
Security of user assignment & access
Copying Existing Lab Content
If you have a lab that already has IDLx content in Skillable Studio, you can use GitHub to manage that content as well. To get this set up you must do the following:
In Skillable Studio, navigate to the lab profile that you want to
manage in GitHub.Select Export.
In the Export window, select Lab Metadata: Instructions Only and select
OK.In the Save dialog, navigate to the location where you want to save the archive file.
The archive file that is saved will contain a content.md file as well as folders for screenshots and videos if either of these were present in the original lab profile. Add these files to the GitHub repository that you want to use to manage your lab content, and then proceed to the configure the lab profile to use an external instruction source for GitHub.
Skillable Studio Configuration
To use the markdown document in your GitHub repository as the instruction source with a lab profile, navigate to the lab profile you want to configure, then follow these steps:
From your lab profile page, select Edit.
Select on the Advanced tab, then select Instruction Source.
Select GitHub Repository.
If you're not logged in already, you be will prompted to log in to the GitHub account that has a repository containing lab content you want to use as an instruction source in the lab profile.
Once you are logged into GitHub, you will be asked to authorize Skillable Studio to have access to your GitHub account. This access is only used to create a webhook so that Skillable Studio can be notified whenever the
content in your GitHub repository changes. Select Authorize application to
continue with the integration.At this point you will be presented with a list of repositories that are associated with your GitHub account. Select select next the repository containing the markdown file to be used as the instructions source.
When you complete the following step, any existing content in your lab profile will be overwritten, and anything lost will be unrecoverable. If you have content in the lab profile, you can export the lab instructions by selecting the export button at the top of the lab profile details page.
After choosing your repository, you need to identify the markdown file that defines the lab content within that repository. Select Select next to the markdown file to use as the source of your lab content.
Once you select the Markdown file that defines the lab content, Skillable Studio will process all lab content referenced by that markdown file and add it into the lab profile instructions. At any point that the GitHub content changes, the lab profile will be updated automatically.
Once the synchronization process is complete, you will have completed your
integration. Select Close to finish the Integration wizard.
1.Your lab profile now shows that instructions are sourced from your GitHub repository. Select the Save button at the bottom of your lab profile window to exit the lab profile editor.
Activities
Automated and question activities can be used when using an external repository as an instruction source. Activities must be added to the Lab profile and then the Activity Replacement Token added to the lab instructions in the external repository.
To add an Activity to a Lab Profile that uses an external instruction source:
Navigate to the Lab profile.
Select Edit Instructions in the upper-right corner.
Select the Activities menu.
Select + New Question or + New Automated Activity.
After creating the Activity, copy the Token for the Activity.
Navigate to your external repository, and edit the file that is used for the lab instructions.
Paste the token in the file, where you want the Activity to be displayed.
The Activity is now part of your lab instructions. Repeat these steps to add additional Activities.