Connect a learning management system to GitHub Classroom

You can configure an LTI-compliant learning management system (LMS) to connect to GitHub Classroom so that you can import a roster for your classroom.

About configuration of your LMS

You can connect a learning management system (LMS) to GitHub Classroom, and GitHub Classroom can import a roster of student identifiers from the LMS. To connect your LMS to GitHub Classroom, you must enter configuration credentials for GitHub Classroom in your LMS.

Prerequisites

To configure an LMS to connect to GitHub Classroom, you must first create a classroom. For more information, see "Manage classrooms."

Supported LMSes

GitHub Classroom supports import of roster data from LMSes that implement Learning Tools Interoperability (LTI) standards.

  • LTI version 1.0 and/or 1.1
  • LTI Names and Roles Provisioning 1.X

Using LTI helps keep your information safe and secure. LTI is an industry-standard protocol and GitHub Classroom's use of LTI is certified by the Instructional Management System (IMS) Global Learning Consortium. For more information, see Learning Tools Interoperability and About IMS Global Learning Consortium on the IMS Global Learning Consortium website.

GitHub has tested import of roster data from the following LMSes into GitHub Classroom.

  • Canvas
  • Google Classroom
  • Moodle
  • Sakai

Currently, GitHub Classroom doesn't support import of roster data from Blackboard or Brightspace.

Generating configuration credentials for your classroom

  1. Sign into GitHub Classroom.
  2. In the list of classrooms, click the classroom you want to view. Classroom in list of classrooms for an organization
  3. Under the classroom name, click Students. "Students" tab for classroom
  4. If your classroom already has a roster, you can either update the roster or delete the roster and create a new roster.
  5. In the list of LMSes, click your LMS. If your LMS is not supported, click Other LMS. List of LMSes
  6. Read about connecting your LMS, then click Connect to LMS.
  7. Copy the "Consumer Key", "Shared Secret", and "Launch URL" for the connection to the classroom. Copy credentials

Configuring a generic LMS

You must configure the privacy settings for your LMS to allow external tools to receive roster information.

  1. Navigate to your LMS.
  2. Configure an external tool.
  3. Provide the configuration credentials you generated in GitHub Classroom.
    • Consumer key
    • Shared secret
    • Launch URL (sometimes called "tool URL" or similar)

Configuring Canvas

You can configure GitHub Classroom as an external app for Canvas to import roster data into your classroom. For more information about Canvas, see the Canvas website.

  1. Sign into Canvas.

  2. Select the Canvas course to integrate with GitHub Classroom.

  3. In the left sidebar, click Settings.

  4. Click the Apps tab.

  5. Click View app configurations.

  6. Click +App.

  7. Select the Configuration Type drop-down menu, and click By URL.

  8. Paste the configuration credentials from GitHub Classroom. For more information, see "Generating configuration credentials for your classroom."

    Field in Canvas app configurationValue or setting
    Consumer KeyConsumer key from GitHub Classroom
    Shared SecretShared secret from GitHub Classroom
    Allow this tool to access the IMS Names and Role Provisioning ServiceEnabled
    Configuration URLLaunch URL from GitHub Classroom

    Note: If you don't see a checkbox in Canvas labeled "Allow this tool to access the IMS Names and Role Provisioning Service", then your Canvas administrator must contact Canvas support to enable membership service configuration for your Canvas account. Without enabling this feature, you won't be able to sync the roster from Canvas. For more information, see How do I contact Canvas Support? on the Canvas website.

  9. Click Submit.

  10. In the left sidebar, click Home.

  11. To prompt Canvas to send a confirmation email, in the left sidebar, click GitHub Classroom. Follow the instructions in the email to finish linking GitHub Classroom.

Configuring Moodle

You can configure GitHub Classroom as an activity for Moodle to import roster data into your classroom. For more information about Moodle, see the Moodle website.

You must be using Moodle version 3.0 or greater.

  1. Sign into Moodle.

  2. Select the Moodle course to integrate with GitHub Classroom.

  3. Click Turn editing on.

  4. Wherever you'd like GitHub Classroom to be available in Moodle, click Add an activity or resource.

  5. Choose External tool and click Add.

  6. In the "Activity name" field, type "GitHub Classroom".

  7. In the Preconfigured tool field, to the right of the drop-down menu, click +.

  8. Under "External tool configuration", paste the configuration credentials from GitHub Classroom. For more information, see "Generating configuration credentials for your classroom."

    Field in Moodle app configurationValue or setting
    Tool nameGitHub Classroom - YOUR CLASSROOM NAME

    Note: You can use any name, but we suggest this value for clarity.
    Tool URLLaunch URL from GitHub Classroom
    LTI versionLTI 1.0/1.1
    Default launch containerNew window
    Consumer keyConsumer key from GitHub Classroom
    Shared secretShared secret from GitHub Classroom
  9. Scroll to and click Services.

  10. To the right of "IMS LTI Names and Role Provisioning", select the drop-down menu and click Use this service to retrieve members' information as per privacy settings.

  11. Scroll to and click Privacy.

  12. To the right of Share launcher's name with tool and Share launcher's email with tool, select the drop-down menus to click Always.

  13. At the bottom of the page, click Save changes.

  14. In the Preconfigure tool menu, click GitHub Classroom - YOUR CLASSROOM NAME.

  15. Under "Common module settings", to the right of "Availability", select the drop-down menu and click Hide from students.

  16. At the bottom of the page, click Save and return to course.

  17. Navigate to anywhere you chose to display GitHub Classroom, and click the GitHub Classroom activity.

Importing a roster from your LMS

For more information about importing the roster from your LMS into GitHub Classroom, see "Manage classrooms."

Disconnecting your LMS

  1. Sign into GitHub Classroom.
  2. In the list of classrooms, click the classroom you want to view. Classroom in list of classrooms for an organization
  3. Under the classroom name, click Settings. "Settings" tab for classroom
  4. Under "Connect to a learning management system (LMS)", click Connection Settings. "Connection settings" link in classroom settings
  5. Under "Delete Connection to your learning management system", click Disconnect from your learning management system. "Disconnect from your learning management system" button in connection settings for classroom

Did this doc help you?

Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Or, learn how to contribute.