On September 1, 2022, GitHub Learning Lab will shut down.
Read more on the GitHub blog and check out GitHub Skills for courses backed by GitHub Actions.

Building: Create the course

GitHub Learning Lab is no longer accepting new public courses from outside of GitHub.

Learning Lab courses are created and maintained in GitHub repositories. Learning Lab registers these repositories as courses and manages the course delivery.

The quickest (and easiest) way to create a course or Learning Path is through the course creation page. Select an owner and enter the form information. After you click Create course, Learning Lab will create a draft course (or path) on Learning Lab and the following repositories on GitHub:

Type Description
Course Learning Lab will create a course repository and template repository on the selected GitHub account. The course repository will include some template text to get you started.
Learning Path Learning Lab will create a path repository on the selected GitHub account.

Please note:

  • Learning Lab must be installed on the account you select
  • The name of each course and learning path must be unique to your account

You're then ready to get started. Need advice on where to go from here? We'll cover that below.

Creating a Learning Path?

The information below is specific to courses. See Learning Paths for instructions on creating a Learning Path.

Manual repository setup

The course creation page is the quickest and simplest way to create a course's repositories. However, if you'd like to create these manually, you can follow the steps below. Read more about a course's required repositories in Course and template repositories, or jump right in with the course boilerplate.

1. Set up the course repository (manual option)

Let's create the required elements for a course:

  1. Create a repository that will house your course logic and metadata.
  2. In course repository, create a file titled config.yml.
  3. In the course repository, create a file titled course-details.yml and fill it with a short description of your course.
  4. In your course repository, create a folder titled responses.
Type Name Description
File config.yml Stores your courses metadata and logic, written in YAML.
File course-details.md The full description of your course. This is what learners will use to decide whether or not they should take your course.
Folder responses/ Markdown files powering the bot's responses.

2. Designate the template repository (manual option)

  1. The template repository must be owned by the same organization or user as the course repository.
  2. The template repository should contain the starter code for your learners.
  3. In the course repository's config.yml file, specify the template repository's title by editing the repo: key inside of template: (see an example).

3. Create the course on Learning Lab (manual option)

Until this step, you'll have two repositories that Learning Lab won't know about. Now, we'll tell Learning Lab to read these repositories and create a course from them. Missing elements from the course repository might result in errors during this step, so we recommend adding the required elements to the config.yml before creating the course. The minimum required elements are those contained in the boilerplate.

  1. If you haven't already done so, install Learning Lab on the account that owns the course and template repositories.
  2. Navigate to https://lab.github.com/:owner/new.
  3. Enter the title of your course repository.
  4. Click Create course.

Once the course is created, you can continue to edit it manually.

GitHub Learning Lab's mascot A course on GitHub Learning Lab can guide you through this step.