Distributing materials to users with nbgitpuller#


A very common need when using JupyterHub is to easily distribute study materials / lab notebooks to students.

Students should be able to:

  1. Easily get the latest version of materials, including any updates the instructor has made to materials the student already has a copy of.

  2. Be confident they won’t lose any of their work. If an instructor has modified something the student has also modified, the student’s modification should never be overwritten.

  3. Not have to deal with manual merge conflicts or other complex operations.

Instructors should be able to:

  1. Use modern collaborative version control tools to author & store their materials. This currently means using Git.

nbgitpuller is a Jupyter server extension that helps achieve these goals. This tutorial will walk you through the process of creating a magic nbgitpuller link that users of your JupyterHub can click to fetch the latest version of materials from a git repo.


  1. A JupyterHub set up with The Littlest JupyterHub

  2. A git repository containing materials to distribute