Repository Providers (or RepoProviders) are locations where repositories are stored (e.g., GitHub). BinderHub supports a number of providers out of the box, and can be extended to support new providers. For a complete listing of the provider classes, see repoproviders.
Currently supported providers, their prefixes and specs are:
Adding a new repository provider¶
It is possible to add new repository providers to BinderHub, allowing a BinderHub deployment to fetch repositories from new locations on the web. Doing so involves defining your own RepoProvider sub-class and modifying a set of methods/attributes to interface with the online provider to which you are providing access. It also often involves building a new repo2docker content provider.
In order to extend the supported repository providers,
follow these instructions. We’ll provide example links for each step to a
recent BinderHub pull-request
that implements the
Review the repoprovider module. This shows a number of example repository providers.
Check whether repo2docker has a ContentProvider class that will work with your repository provider. If not, then you’ll need to create one first.
Create a new class that sub-classes the
RepoProviderclass. Define your own methods for actions that are repository provider-specific. For example, here is the DataverseProvider class.
Add this class to the list of default RepoProviders in BinderHub.
Add a test for your repoprovider to ensure that it properly resolves and fetches a repository URL.