Git Repositories
In CodeCanvas, Git repositories live inside namespaces. There can be a number of repositories contained within a single namespace.
CodeCanvas doesn't host repositories itself but lets you connect your existing repositories hosted elsewhere: GitHub, GitLab, Bitbucket, or any other Git hosting service.
Only namespace administrators can connect repositories to a namespace.
How CodeCanvas works with Git repositories
CodeCanvas doesn't host repositories itself. Instead, it directly interacts with your Git hosting service to clone the repository to user dev environments.
To make a repository available in dev environments, a namespace administrator must configure the repository connection in CodeCanvas. This includes providing authentication settings, for example, providing an SSH key. When providing the key, the namespace administrator must use a secure mechanism like deploy keys in GitHub (or similar mechanisms in other Git hosting services, e.g., Gitlab deploy keys or Bitbucket access keys). Using personal SSH keys for this purpose is not secure and is not recommended.
CodeCanvas uses these authentication settings (e.g., a public deploy key) only to clone the Git repository to warm-up and user dev environments. Users don't have access to these settings in their dev environments.
When a user tries to pull from or push to the repository for the first time, they will be asked to authenticate in the repository. This means that the users must have access to the repository on the Git server. Learn more
Here is a short summary on what SSH keys are used for:
SSH keys | Created by | Used for | Stored in | Access |
---|---|---|---|---|
Deploy Key | Namespace administrator | Cloning the Git repository to warm-up and user dev environments | Public key on the Git server, private key securely stored in CodeCanvas | Only namespace administrators can access the key; No access from dev environments |
User SSH Key | Dev environment user | Individual actions to pull from or push to the repository during sessions | Public key stored on the Git server, private key remains on the user's local machine | Accessed by the user; No access from CodeCanvas |