Skip to content

Discovery: gitlab instance with SSO auth, maybe LTI

Story

"As a learner in the MOOC-FLOSS course, I want it to be easy to authenticate and use the course's gitlab instance so that I can complete coding exercises and learn how to use git, merge requests, and communicate on open source repositories."

"As a teacher in the MOOC-FLOSS course, I want to reduce friction and make it easy for learners to create an account/login for GitLab exercises, and be able to track which Open edX account is linked to which GitLab account."

Full description

Set up a GitLab instance for the MOOC-FLOSS course on a small OVH VM, and investigate/prototype a way to authenticate to it using single-sign-on from the MOOC-FLOSS dev course, e.g. with:

LTI would require development, but could allow GitLab to be embedded in the course content in an iframe.

Other authentication mechanisms are perfectly fine, though may require more complex setup for teachers. For example, the unit could be an HTML block with a particular link that starts the learner on the login/register SSO process in GitLab.

To link the Open edX and GitLab accounts, it's probably easiest to create the GitLab account using the Open edX username.

Completion criteria

  • GitLab instance created and setup process automated and documented. Any terraform or ansible playbooks used should be added to the mooc-floss repo, along with a README explaining how to use them. Any secrets or authentication credentials should be added to a secure repo in the mooc-floss project, cf #57 (closed)
  • Determine a plausible SSO option for creating accounts and signing into GitLab via the MOOC-FLOSS course. Comment on this issue to indicate the best candidate option. If LTI is the most plausible, this will require development, so provide an implementation plan.
  • Stretch goal: Prototype the chosen SSO integration on the MOOC-FLOSS dev course, and document the setup process. Add a "Demo" section/subsection/unit to the course structure to demonstrate the SSO integration.

Behavioral specifications

  • When the logged-in user visits the MOOC-FLOSS dev course and views a GitLab unit, the user can easily sign in/sign up to a GitLab account using SSO from their MOOC-FLOSS course account.
  • When the user is logged into GitLab via SSO, they can navigate the course's repos on the course GitLab instance, create merge requests, etc. using GitLab.

Documentation updates & improvements criteria

  • Setup instructions for GitLab should be documented.
  • The "Demo" section should be self-documenting to help teachers create similar units where the course requires.

Review timeline

Timeline up to assignee and reviewer.

Edited by Jillian Vogel