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.

Testing your course

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

Follow the instructions in Manual repository setup before testing.

To test:

  1. Navigate to your course by going to https://lab.github.com/:owner/:title, replacing :owner with the login of the owner and :title with the slugified title of course.
  • To see all versions of our course, navigate to https://lab.github.com/:owner/:title/admin.
  1. Verify the course description.
  2. Register for the course.
  3. Verify the repo was created for you as a learner.
  4. Complete the steps in your course.
  5. Click on all links in your course.

Debugging your course

While testing your course, you may find it helpful to see the information being sent by the events triggered in the course repository. Smee.io is a free service you can use to inspect the payloads for the GitHub events.

After you've registered for your course and a repository is generated, use the following steps to add Smee.io to the repository created by Learning Lab:

  1. Visit https://smee.io/new. This will redirect you to a new URL - copy the URL to use in the next step.
  2. Visit https://github.com/:owner/:repo/settings/hooks/new
  3. For Payload URL, use the smee.io channel from step one.
  4. Set Content type to application/json.
  5. Choose the Send me everything option for which events you want to listen for.

As you complete the steps in your course, keep your Smee URL open in a separate tab. The GitHub events triggered during your course will be added to the list of payloads in Smee.

It is important to note that these instructions configure the repository to send Smee every webhook you trigger, but Learning Lab ignores any webhooks that do not match the selected step event.

Making updates to your course

As you test your course, it is likely that you'll want to make updates. Pushing any changes to your course repository's default branch will automatically update the course. See Keep in sync for more information.

Error handling

As you test your course, you'll run into errors and bugs. Sometimes, recognizing where you got stuck and giving a close look at the config.yml will show you exactly where you've run into issues.

Other times, you might need some extra context. Once a course repository has been updated (even for draft versions), the Learning Lab app will report a status back to that repository indicating whether your course was properly updated. This will be visible in the repository's commit history, or in pull requests.

screenshot of the Learning Lab bot CI