Using Git Repositories in Saturn Cloud
This article describes how use existing git repositories with your Saturn Cloud resources. While you always can always clone repositories from within a Jupyter server using the command line, by using the Saturn Cloud UI you can more easily see which repositories are connected to which resources, have repository settings shared when resources are cloned, and set the repositories to automatically pull the latest versions of branches.
This document first covers setting up SSH credentials then goes into adding git repositories to Saturn Cloud and finally adding those to resources. When the document refers to git hosts it means services like GitHub, Bitbucket, and GitLab which host git repositories for you.
Set up SSH Keys
Saturn Cloud supports using SSH keys as a protocol to connect to git repositories, which requires a public key and private key pair shared with Saturn Cloud and your git host. So the first step is sharing the right keys. Thankfully, Saturn Cloud will automatically generate a public/private key pair for you by default, but you can change it as needed.
Go to the Git Repositories tab in Saturn Cloud, at the bottom you’ll see an SSH Keys area, which will first request you create a key with a new Saturn Cloud account. You can generate a public/private key pair within Saturn Cloud or upload your own:
After you have a key pair, take the SSH public key and add it to your git Host to create the secure connection. Refer to your git host for how to do this (for example, here are the directions for GitHub).
There are several adjustments you can make for the SSH key:
- If you’d like to change the key (either upload a new one or regenerate a key pair in Saturn Cloud), press the Replace Key button.
- Normally Saturn Cloud will use a single private key for all your repositories. If you have different keys for different repositories, like if you’re using multiple git hosts, you can Set the private keys on a per-repo basis by sliding the Allow Multiple Keys toggle.
Add a Git Repository to Saturn Cloud
Once you’ve set up your SSH keys, in the same Git Repositories tab you can add a repository. Click the Add repository button to add a new repository to Saturn Cloud. A new dialog will pop up and you will need to fill in several options:
- Host: Where the git repo is stored. Don’t see your hosting location on this list? Contact us.
- Remote URL: The SSH URL for the repository in the git host (this is the link you’d use when running
git cloneat terminal). It must be the SSH link, not an HTTPS link.
- Name: the name to use for the repo
- Restart behavior: When a resource restarts, what should happen to the repository? Either have it stay in its current state (good for tasks like exploratory analysis), or have it reset to the default reference (good for systems like deployments where you want to use the latest version). This can be set on a per-resource level.
- Default reference: The default state of the git repo. Can be a branch, commit, or tag. This can be set on a per-resource level.
Add Repository to a Resource
Once a git repository is in Saturn Cloud you can then connect to a resource. From the particular resource page go to the Git Repositories section and click the Add new repository button. This will let you chose one of the repositories you’ve added to Saturn Cloud (or add a new one). You can also change the reference and restart behavior for the repo within the particular resource.
Now, when you log in to your Jupyter server, at the top level of your file system, you’ll see the folder
git-repos which contains all the repositories you have attached to this resource. If you’re using a deployment or job resource, the git repo will be in the correct location when the resource is started.
Using git in within your Jupyter Server
To do git commands within Jupyter Server like pushing, pulling, and committing, you can use one of two methods: either from the command line or by using the GUI provided by a JupyterLab plugin:
You can open a terminal window from within the Jupyter server and use git from the command line. First open the launcher by pressing the “+” button:
Then select “terminal” to go to the command line of the resource:
Alternatively, you can also use the git functionality built into JupyterLab with a GUI, using the plugin on the left of the screen:
Need help, or have more questions? Contact us at:
- On Intercom, using the icon at the bottom right corner of the screen
We'll be happy to help you and answer your questions!