When working with Git or Mercurial repositories, you need to connect to the Codebase system using SSH. To authenticate, your SSH request you need to add your SSH public key to your user account or a project.
You an use any of the API urls below to retrieve information about repositories within individual projects. You need to pass the project's permalink into the URL for all requests.
|All public keys for a user||GET||/users/username/public_keys|
|All public keys for a user (as text)||GET||/users/username/public_keys.txt|
|All deployment keys for a project||GET||/project/public_keys|
|All deployment keys for a repository **new**||GET||/project/repository/public_keys|
|All deployment keys for a project (as text)||GET||/project/public_keys.txt|
|Adding a new user key||POST||/users/username/public_keys|
|Adding a new project deployment key||POST||/project/public_keys|
|Adding a new repository deployment key **new**||POST||/project/repository/public_keys|
The XML output below shows the properties which are returned by default when accessing project details.
<public-key-join> <description>My Example Key</description> <key>ssh-rsa AAAAB3NzaC1yAAAQEAsAOV[...]Vs2TrWJkRNq5eJVw==</key> </public-key-join>
descriptionis the description of the key entered when the key was added
keythe full SSH public key (without any comments, comments are stripped and not saved when the key is added)
Adding a new key
When creating a new key, you should simply send the object definition (as shown above) to the URLs listed in the API URLs table.
To generate a new SSH keypair on your local machine, you can issue
ssh-keygen on any machine running SSH. The contents
id_rsa.pub file should be copied into the
key field when adding to Codebase.
Note: When adding a key, your root level element should be
<public-key-join>. For example:
<public-key> <description>My Example Key</description> <key>ssh-rsa AAAAB3NzaC1yAAAQEAsAOV[...]Vs2TrWJkRNq5eJVw==</key> </public-key>