(Leave comments or discuss this post on the jupyter discourse)
nbgitpuller is my most favorite way to distribute content (notebooks, data files, etc) to students on a JupyterHub. The student mental model is ‘I click a link, and can start working on my notebook’, which is as close to ideal as we have today. That is possible since all the information required for this workflow is embedded in the link itself - so it can be distributed easily via your pre-existing communication channel (like email, course website, etc), rather than requiring your students to use yet another tool.
However, creating these links often been a bit clunky and error prone. The current
link generator is pretty awesome, but requires
a lot of manual copy pasting, and is prone to errors. Particularly problematic was the GitHub
switching of the default branch from
main, which really caused problems for many
To make life easier, I’ve now written a browser extension that lets you create these links straight from the GitHub interface!
On the GitHub page for files, folders and repositories, it adds an ‘nbgitpuller’ button.
On clicking this, you can enter a JupyterHub URL and the application you want to use to open this file, folder or repository. Then you can just copy the nbgitpuller URL, and share it with your students!
The JupyterHub URL and application you choose are remembered, so you do not need to enter it over and over again.
How to install?
On Mozilla Firefox
I ❤️ Mozilla Firefox, and you can install the extension there easily from the official addons store. You’ll also get automatic updates with new features and bug fixes this way.
On Google Chrome
On Google Chrome / Chromium, I have submitted the extension to the Chrome Web Store - but apparently there is a manual review process, and it can take weeks. In the meantime, you can install it with the following steps
- Download the
.zipversion of the latest release of the extension. You want the file named
- Extract the
.zipfile you downloaded.
- In your Google Chrome / Chromium, go to chrome://extensions.
- Enable the Developer Mode toggle in the top right. This should make a few options visible in a new toolbar.
- Select Load Unpacked, and select the directory into which the downloaded
.zipfile was extracted to. This directory should contain at least a
manifest.jsonfile that was part of the
The extension is written as a WebExtension, so should work easily in other browsers - Safari, Edge, etc. However, since I do not use them myself, I don’t have instructions on how to add them there. However, if you do use those browsers, I’d love contributions on how to install the extension there!
The extension was a overnight hack, and it made me very happy to get it shipped. There is a lot of room for improvement - I would love for you to provide feedback and contribute in any way possible on GitHub
Author Yuvi Panda